实验环境:Windows 10,LordPE,PEView

PE文件结构:PEview打开PE文件,可观察到PE文件的结构,由MZ文件头、DOS插桩程序、节表头、节(.text,.rdata,.data,.idata,.reloc)组成。

  • PE文件被执行后,PE装载器首先检查MZ头及DOS头是否有签名,从而判定该PE文件是否有效,再读入PE头的总体信息,接着读取节表中的节信息,映射至内存,再根据PE文件中的导入表(IT)读取INT表和IAT表,INT表是存储函数名称、DLL名称信息,IAT表存储函数偏移地址等。PE文件运行时,从INT加载信息,把动态函数地址写入IAT中。


    。这几个表都在.idata节中,通过LordView可查找出.idata的节偏移,如下图所示:

    可计算出.idata节偏移 = 00030000 - 00001000 = 2F000
    再查看IT表的RVA:00030000,IAT表的RVA:00030178

    此时可根据LordPE查看IT表在文件中的偏移地址:0002E000,IAT表的文件偏移地址为:0002E178。




    与PEView中的结果相符:





此处计算出来的节偏移:00030000 - 0002E000 = 2000,00030178 - 0002E178 = 2000与前面所查到的.idata的节偏移(00030000 - 00001000 = 2F000)不符,这里初步判定前面所查询到的节偏移有误(各节表在文件中的偏移地址不是按照递增顺序,且不同节表有相同地址的冲突,因此判断其有误),因此确定.idata的节偏移为2000。
对于IAT表的函数地址也一致,如下图,ExitProcess函数的RVA为:000302C8,根据节偏移为2000,可计算出其在文件中的偏移地址为:002E2C8,与LordPE中结果相符。




由此可进一步确定文件偏移地址 = RVA - 节偏移。

PE文件偏移地址分析相关推荐

  1. 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...

    0 前言 此篇文章想写如何通过工具手查导出表.PE文件代码编程过程中的原理.文笔不是很好,内容也是查阅了很多的资料后整合出来的.希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献.因为了解 ...

  2. 由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...

    0 前言 此篇文章想写如何通过工具手查导出表.PE文件代码编程过程中的原理.文笔不是很好,内容也是查阅了很多的资料后整合出来的.希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献.因为了解 ...

  3. 相对虚拟地址,虚拟地址,文件偏移地址

    相对虚拟地址(RVA,Relative Virtual Address):RVA只是内存中的一个简单相对于PE文件装入地址的偏移位置,它是一个"相对地址",或称"偏移量& ...

  4. 实现虚拟内存地址到文件偏移地址的转换

    写在前面:这是一次实践作业,用c来写似乎好写一点,但我比较熟悉python,也找到了python相关的库,就用python来实现下,用一晚上把前天写的代码变成了图形化界面,自学过程中,学到了许多东西, ...

  5. 蓝奏云文件真实地址分析

    废话不多说,直接上代码 有时候会因为访问次数等原因失败,可多试几次 import requests import re from requests.packages import urllib3 fr ...

  6. [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. 理解文件偏移相对内存偏移节偏移

    问题背景 解决方法 总结 阅读之前注意: 本文阅读建议用时:5min 本文阅读结构如下表: 项目 下属项目 测试用例数量 问题背景 无 0 解决方法 无 0 总结 无 0 问题背景 拜读<0da ...

  8. PE 文件型病毒编写实验(一)

    这个学期终于圆了当年来读渣电的网络安全专业的一个梦:PE病毒编写. 想起了高中那会儿熬夜看看雪论坛瞎搞什么软件破解,可是搞到后面很多东西不理解做的不深入,所以就先一本心思的考上渣电,然后再来深入的学习 ...

  9. [re入门]PE文件小知识

    从PE入手的信息收集,让恶意样本无处可逃 一. PE文件格式的基础知识 1.1 认识PE文件 1.2 整体结构 1.3 基地址 1.4 相对虚拟地址 1.5 文件偏移地址 1.6 结构 1.6.1 D ...

  10. 滴水三期:day41.2-PE阶段所有代码汇总(PE文件分析器基本C代码)

    一.代码汇总 1.功能如下 打印PE头字段 打印节表 将文件读入到FileBuffer,FileBuffer到ImageBuffer到newBuffer,最后存盘 RVA转FOA.FOA转RVA 向代 ...

最新文章

  1. 走在技术前沿,今年最火的top5 +Java开源项目
  2. python网易云_用python爬虫爬取网易云音乐
  3. Python概率编程库PyMC应用案例二则
  4. java object类的方法,JAVA中Object类中 有几个方法?
  5. Maven项目出现web.xml is missing and 《failOnMissingWebXml》is set to true,已解决
  6. JavaScript数组属性与方法
  7. 计算机博弈点格棋规则,点格棋博弈中UCT算法的研究与实现
  8. 新版 AS9100D:2016航空航天质量管理体系标准变化内容
  9. JavaScript JSON的key 下划线格式与驼峰格式互相转换
  10. 【数据结构】【范浩强treap】
  11. Windows引导修复
  12. js获取免费天气api
  13. Qt学习之安装过程中各种问题的解决
  14. 【Java】文如何制作帮助文档
  15. 新手小白学影视剪辑50天日入500,她的方法秘籍全在这里了!【覃小龙课堂】
  16. python不属于ipo模型的是_以下不属于IPO模型的是
  17. VVIC api接口
  18. 存量时代,汽车4S店要通过什么服务来吸引消费者
  19. 目前流行的机器学习算法
  20. tomcat7配置https

热门文章

  1. 像素密度(衡量屏幕显示能力)
  2. Java导出 Excel设置单元格格式
  3. 拉卡拉服务器响应超时,拉卡拉传统POS机11个常见问题及解决方法
  4. Beaver‘s triple(乘法三元组)-秘密共享的乘法计算
  5. excel隐藏行的展现方法
  6. 【Python基础】from pygame.base import * # pylint: disable=wildcard-import; lgtm[py/polluting-import] Mod
  7. 智能颈椎按摩仪的特点和功能
  8. python编程就业_python编程语言就业做什么工作的?python就业方向
  9. single-spa
  10. 智汀指南:如何搭建摄像头远程监控系统?如何用手机远程监控摄像头?