日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

11.IDA-this指针

發布時間:2024/4/11 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 11.IDA-this指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所有非靜態C++成員函數都使用this指針。任何時候調用這樣一個函數,this都被初始化,指向用于調用該函數的對象.?
最好是把this看成是傳遞到所有非靜態成員函數的第一個隱藏參數.

this存放的地方

1.Visual C++利用thiscall調用約定,并將this傳遞到ECX寄存器中?
2.GNU g++編譯器則把this看做是函數的第一個(最左邊)參數,并在調用該函數之前將用于調用函數的對象的地址作為最后一項壓入棧中

從逆向工程的角度看,在調用函數之前,將一個地址轉移到ECX寄存器中可能意味著兩件事情?
1.該文件使用Visual C++編譯?
2.該函數是一個成員函數?
如果同一個地址被傳遞給兩個或更多函數,我們可以得到結論,這些函數全都屬于同一個類層次結構。?
如果發現一個函數向其他函數傳遞this指針,則這些函數可能和傳遞this的函數屬于同一個類

如下示例:

class A { public:int fun(){return 1;}int Lk(){return fun();} }; int _tmain(int argc, _TCHAR* argv[]) {A a;a.Lk();return 0; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

對應IDA反匯編如下:?

附:

構造函數并未指定返回類型,但由Visual C++生成的構造函數實際上把this指針存在EAX寄存器中并返回?

總結

以上是生活随笔為你收集整理的11.IDA-this指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。