工具:

PETool,MiniHex,PEViewer

以本机notepad.exe为研究对象。本机64位,该notepad.exe是64位应用程序。

1 用peviewer打开

PE文件大体包括四部分,DOS头,NT头,节表以及具体的节。下图展示的是前三部分。

2 DOS头

e_magic:一个WORD类型,值是一个常数0x4D5A,用文本编辑器查看该值位‘MZ’,可执行文件必须都是'MZ'开头。

e_lfanew:为32位可执行文件扩展的域,用来表示DOS头之后的NT头相对文件起始地址的偏移。

看下图左方给出的e_lfanew为0x000000E8,在下图右方找到此地址,如右方000000E0所示行的光标处;

起始四个字节是50 45 00 00,和右图的PE头的Signature相符合;

3 文件头

PE文件头的定义:

typedef struct _IMAGE_FILE_HEADER {  
    WORD    Machine;  
    WORD    NumberOfSections;  
    DWORD   TimeDateStamp;  
    DWORD   PointerToSymbolTable;  
    DWORD   NumberOfSymbols;  
    WORD    SizeOfOptionalHeader;  
    WORD    Characteristics;  
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

Machine:该文件的运行平台,是x86、x64还是I64等等,可以是下面值里的某一个。
NumberOfSections:该PE文件中有多少个节,也就是节表中的项数。
TimeDateStamp:PE文件的创建时间,一般有连接器填写。

对照下图左方显示和右方光标处,其内容相符合;

4 导入表

自己算下导入表的起始地址,比较难算;用工具看下,如下图;导入表起始地址是

0x00000178

peviewer给出的导入表内容;

看16进制文件中的00000178,与peviewer给出的似乎不符,不过此处还不太理解;

16进制文件和PETool给出的内容是相符合的;

5 导入表中的函数名

试着找下导入的SetWindowText函数的名字在16进制文件中的位置;

什么是Thunk RVA,对相关计算尚不太熟悉;

直接找到0000D640处看看,不是SetWindowText;

用搜索功能找SetWindowText;在如下位置;这个RVA的计算是比较复杂;以后再搞;

链接

http://www.pediy.com/kssd/tutorial/chap8-1-6.htm
http://blog.csdn.net/evileagle/article/details/11693499

图解用工具对PE文件格式做初步研究相关推荐

  1. 图解使用PowerTool对Windows内核做初步研究探索

    PowerTool下载 http://pan.baidu.com/s/1skZx4TZ PowerTool_1.6_PortableSoft.7z 1 系统检测 自动检测了如下安全项: 有个 流氓快捷 ...

  2. PE文件格式的一些研究

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 作者:朱 ...

  3. 图解用工具对BHO做初步研究

    一 BHO和浏览器劫持 BHO Browser Helper Objects (也被称为 BHOs) 是com组件,扮演着ie插件的角色.BHOs可以在某种程度上定制IE,如:用户交互的修改,网页过滤 ...

  4. PE文件格式分析-WinHex工具-文件头-32位PE-部分64位PE

    文章目录 1.名称来源 2.PE文件基本结构 3.DOS头 4.DOS存根: 5.NT头 5.1.文件头 5.2.可选头 6.节区头表 7.数据目录详解 7.1.导入函数表 7.2.重定位表 8.作者 ...

  5. “PE文件格式”1.9版 完整译文

    标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者: ah007 时 间: 2006-02-28,13:32 链 接: http://bbs.pediy.com ...

  6. PE文件格式”1.9版 完整译文(附注释)

    没看完,先贴上来,以再看! 标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者:ah007 时 间: 2006-02-28,13:32 链 接: http:// ...

  7. PE文件格式系列译文之

    PE文件格式系列译文之一----           [翻译]"PE文件格式"1.9版 完整译文(附注释) ==================================== ...

  8. 【翻译】“PE文件格式”1.9版 完整译文(附注释)

    标 题: [翻译]"PE文件格式"1.9版 完整译文(附注释) 作 者: ah007 时 间: 2006-02-28,13:32:12 链 接: http://bbs.pediy. ...

  9. PE文件格式”1.9版 完整译文

    2019独角兽企业重金招聘Python工程师标准>>> PE文件格式系列译文之一---- [翻译]"PE文件格式"1.9版 完整译文(附注释) ========= ...

最新文章

  1. Android 动画之TranslateAnimation应用详解
  2. Print All JVM Flags
  3. 中的实践 中兴_中兴通讯5G智慧治水业务在千岛湖畔下姜村成功实践
  4. mos 控制交流_电机控制器母线电容的设计选型
  5. Flex读取XML不刷新问题
  6. mysql全文检索原理与实例分析
  7. mysql close conn_mysql CloseConnection问题
  8. AS3的事件模型 .
  9. layUI禁用select下拉框
  10. autocad型源代码_总结一下可以研究的CAD源代码
  11. 教程:提取微信表情包、给公众号分组、在电脑上看公众号、微信提现免手续费
  12. 告别晦涩难懂的物理,《张朝阳的物理课》了解一下
  13. DRILLNET 2.0------第二十三章 井控压井单模型
  14. java7 调优_JVM故障分析及性能优化系列之七:使用MAT的Histogram和Dominator Tree定位溢出源...
  15. alios thing 信号量_AliOS Things内核API
  16. 桌面支持--skype登陆不上
  17. 小学计算机表格制作教学,《制作表格》~试讲稿~小学信息技术
  18. 硬盘坏了可以修复吗?硬盘数据恢复方法来了
  19. 采用ASP.NET使用C#.NET语言开发的在线学生选课系统(源码+数据库+论文)
  20. java 修改word属性_Java修改/替换Word批注

热门文章

  1. 使用druid【使用官方的stater】||集成JdbcTemplate
  2. js中两个感叹号的原理与用法分析
  3. CTFshow 命令执行 web43
  4. Simulink仿真 第四节 总线及示波器模块
  5. eclipse java shell 窗体显示 bat运行不显示_java eclipse中如何实现点击主窗口sShell中的按钮打开另外一个子窗口sShell...
  6. 【Kaggle-MNIST之路】CNN结构改进+改进过的损失函数(五)
  7. python:拉格朗日插值实现及求解
  8. Linux Restart PHP
  9. 设置placeholder无效解决办法
  10. 实验二:网络嗅探与欺骗