首页
社区
课程
招聘
[分享][讨论]通过PE寻找程序的入口点
发表于: 2021-7-7 01:23 3669

[分享][讨论]通过PE寻找程序的入口点

2021-7-7 01:23
3669
  • 以附件中的ASM C.exe为范例

    • 文件是从哪里开始执行的?
    • 用010 edit或者UE打开ASM C.exe程序,观察pe结构图,需要明白0x00对应的是000000h,0x3c对应的是000000dch
    • 3c是十六进制,转换为十进制是60,也就是从00000000h处向后数60个字节,刚好来到0000003c处,观察0x3c后面跟着的Dword e_Mannew,这是一个双字(在内存中占32个bit,也就是4个字节),所以要从3c处开始数4个字节。

    • windows系统存储数据的方式是低位在前高位在后,所以找到的数据是00 00 00 40,所以最终找到的数据是40,所以最终00000040h就是程序存储32位数据信息的起点,但这并不是程序的入口,不是程序运行的起点。

    • 代码存在哪里?

    • 数据存在哪里?
  • 图1,PE结构
  • 图2.第二行文件展开
  • 第三行显示0x18,十六进制的18转化为十进制24,所以要从00000040h的下位置开始往后数24个字节。来到00000058h,也就是0B 01的位置, 此时应该向右偏移,偏移到第三行展开的位置。找到的程序入口地址0x10 Dword(橙色标记笔位置),十六进制的10转化为10进制是16,从0058h的位置往后数16个字节,来到0068h,因为Dword是4个字节,所以应用和程序的入口点是00 01 10 23,后面四个字节(0x14 Dword)就是代码的基址(此处的基址并非是游戏调试中寻找的基址,游戏调试中的基址只不过是一个全局变量,这里的基址可以理解为存储程序代码的七点),在往后四个字节(0x18 Dword)就是数据的基址
  • 图3.第三行文件展开

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回