得到RVA相对虚地址

我们用记事本为例:

首先用VS2010的命令行输入:

dumpbin /headers  C:\WINDOWS\system32\notepad.exe

如:如何获得RVA(相对虚地址)的值,从而得到一个程序的入口点

找到:OPTIONAL HEADER VALUES 中的entry point

如何获得RVA(相对虚地址)的值,从而得到一个程序的入口点

此时739D就是所谓的RVA。

至于dumpbin  的其它参数可以参考:http://msdn.microsoft.com/zh-cn/library/c1h23y6c

 

获得程序入口点的方法

1,我们需要用C:\Program Files\Debugging Tools for Windows\ntsd.exe 工具。

还是先说一下这个工具怎么用,要结合CMD,如:

如何获得RVA(相对虚地址)的值,从而得到一个程序的入口点

下一步就会出现调试信息如:

如何获得RVA(相对虚地址)的值,从而得到一个程序的入口点

2,执行一下这2个命令:

0:000> .symfix
0:000> .reload

3,在用u 命令如:

0:000> u 01000000+0x739D

注:01000000 就是上图的第一个地址,0x739D 就是通过刚才的dumpbin得到的RVA。

最后给出一下最终的结果:

如何获得RVA(相对虚地址)的值,从而得到一个程序的入口点

WinMainCRTStartup 就是记事本的程序入口点。

转载于:https://www.cnblogs.com/jiguixin/archive/2012/08/10/2631717.html

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
  • 2021-07-16
  • 2022-12-23
猜你喜欢
  • 2021-04-08
  • 2022-12-23
  • 2022-12-23
  • 2021-12-15
  • 2021-06-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案