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


    得到RVA相对虚地址

    我们用记事本为例:

    首先用VS2010的命令行输入:

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

    如:image

    找到:OPTIONAL HEADER VALUES 中的entry point

    image

    此时739D就是所谓的RVA。

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

    获得程序入口点的方法

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

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

    image

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

    image

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

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

    3,在用u 命令如:

    0:000> u 01000000+0x739D

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

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

    image

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

  • 相关阅读:
    YbtOJ20030 连珠风暴
    YbtOJ20029 最大权值
    P6859 蝴蝶与花
    P4115 Qtree4
    P2486 [SDOI2011]染色
    P2487 [SDOI2011]拦截导弹
    P5163 WD与地图
    P3733 [HAOI2017]八纵八横
    CF1100F Ivan and Burgers
    P1712 [NOI2016]区间
  • 原文地址:https://www.cnblogs.com/jiguixin/p/2631717.html
Copyright © 2020-2023  润新知