得到RVA相对虚地址
我们用记事本为例:
首先用VS2010的命令行输入:
dumpbin /headers C:\WINDOWS\system32\notepad.exe
找到:OPTIONAL HEADER VALUES 中的entry point
此时739D就是所谓的RVA。
至于dumpbin 的其它参数可以参考:http://msdn.microsoft.com/zh-cn/library/c1h23y6c
获得程序入口点的方法
1,我们需要用C:\Program Files\Debugging Tools for Windows\ntsd.exe 工具。
还是先说一下这个工具怎么用,要结合CMD,如:
下一步就会出现调试信息如:
2,执行一下这2个命令:
0:000> .symfix
0:000> .reload
3,在用u 命令如:
0:000> u 01000000+0x739D
注:01000000 就是上图的第一个地址,0x739D 就是通过刚才的dumpbin得到的RVA。
最后给出一下最终的结果:
WinMainCRTStartup 就是记事本的程序入口点。