逆向工程核心原理 pe文件(小试牛刀)小结

在开始这篇pe文件格式时,我阅读到其中的练习时感到比较混乱,在这里我推荐大家先使用PeViews这款软件进行学习。首先应该使用该软件理清思路然后再自己找一遍。PeViews如下图:


首先看着课本能分清楚基本的结构:DOS头——》DOS存根——》NT头(NT文件头和NT可选头)——》各种节区头(其中的.text .data .rsrc等)

1.我更愿意先找到文件的Imagebase


第一个蓝框为NT可选头的起始地址010bh,第二个则为Imagebase,有了Imagebase你就可以在ollyDbg中根据IAT的RVA找到函数。

2.然后各个节区的RVA和RAW(使用课本的记事本.exe)

第一个蓝框为.text的相对虚拟地址00001000h,第二个为.text在文件中的地址00000400h


3.找到IMPORT Directory  Table(导入目录表)

这个IMPORT Directory  Table的地址(第二个蓝框处00007604h)在这里是NT文件头起始约128个字节处,后面那四个字节000000c8h是Size成员。

前面那四个字节00000000h是导出表的字节大小.找到IMPORT Directory  Table的地址即可根据RAW=RVA-VA(地址所属节区的VA)+PointerToRawData(就是节区在表中的实际位置),这里的计算就要根据第一、二步的Imagebase、节区相对虚拟地址和节区在文件中的地址————》00007604h-00001000h+00000400h=00006a04h(IMAGE_IMPORT_DESCRIPTOR的结构数组)如下图:



分别给出该数组中前五个成员的RVA和RAW,这里可以试着计算RAW。例如使用Name成员的RAW即可在文件中找到导入函数所属库的名称。INT记录着调用的API函数,而IAT记录着调用的dll中的函数的位置


而在IAT的调试中,要先去用ollydbg查看条用函数的硬编码(每个系统可能不同),再在本文件的ollydbg中找到该函数


送上思维导图:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值