今天,我决定使用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