今天,我決定使用IDA Pro編寫一個用Visual C++編寫的簡單的「Hello world」程序。逆向工程C++
我以前的知識,我相信我會找不到直接調用的可執行文件入口點給printf,我是對的。 我發現了很多代碼,這些代碼在編譯過程中不是由我編寫的,而是由編譯器添加的。
我想更好地理解在編譯過程中添加的代碼。 它是做什麼的? 是否有任何「技巧」快速找到「主」,並跳過反彙編生成的所有不必要的代碼?
我能找到在這個職位的最佳: http://www.codeproject.com/Articles/4210/C-Reverse-Disassembly, 說使用Visual C++編譯的可執行文件的執行順序如下:
CrtlStartUp
主要
CrtlCleanUp
請問我能得到更詳細的答案嗎?
非常的編譯器和平臺特定的。我懷疑你會得到你想要的確切答案。 – Matt 2012-04-19 16:51:28
我推薦[此帖](http://stackoverflow.com/a/9952374/176769)作爲一個路線圖,任何反向工程師導師崇拜者的人。 – karlphillip 2012-04-19 16:53:56
我在逆向工程方面沒有經驗,但是不能簡單地在main的開始處設置調試器斷點以獲取相對地址?或者,也可以在可執行文件的對象轉儲中查找main? – bjhend 2012-04-19 16:55:02