谈谈PE和ELF结构中的那些小事
2016-07-13 00:08
477 查看
如何区分32bit和64bitPE文件
IMAGE_FILE_HEADER->Machine可执行文件的目标CPU。通常的值是:
IMAGE_FILE_MACHINE_I386 0x014c // Intel 386
IMAGE_FILE_MACHINE_IA64 0x020B // Intel 64
IMAGE_FILE_MACHINE_IA64 0x8664 // Intel 64
……
PE结构中如何告诉系统是否需要动态基址
IMAGE_OPTIONAL_HEADER->DllFlagsDllFlags[6]决定。
DLL Characteristics:
Value | 含义 |
---|---|
8000 | Terminal Server aware |
2000 | WDM driver |
0800 | No bind |
0400 | No SEH |
0200 | No isolation |
0100 | NX compatible |
0080 | Force integrity |
0040 | Dynamic base动态基址 |
PE结构如何区分dll和exe?
IMAGE_FILE_HEADER->CharacteristicsCharacteristics[13]决定。
Hi高位数据 | 含义 |
---|---|
8000 | Bytes reversed hi |
4000 | Uniprocessor only |
2000 | 是DLL |
0800 | Patch on net |
0400 | Patch on removable |
0200 | Debug stripped |
0100 | 32 bit machine |
Lo低位数据 | 含义 |
---|---|
0080 | Bytes reversed lo |
0040 | ??? |
0020 | Handle >2Gb address |
0010 | Agressively trim set |
0008 | Symbols stripped |
0004 | Line numbers stripped |
0002 | Executable |
0001 | Relocations stripped |
PE中一个特别的点:e_lfanew
它似乎保持指向DOS头后面,但确实没有规定e_lfanew必须指向后面,所以你可以通过将e_lfanew指向到DOS头来完成一段“压缩”。同样的ELF头部起+2,+3位置没有被使用,也可以用做存储一些隐蔽数据。
以上数据部分从ExeInfoPe中找出来的。
相关文章推荐
- UltraISO PE V8.6.1.1985_绿色多国语言版_光盘映像制作 下载 附注册码
- linux LVM快照创建详细步骤(使用PE完成)
- Win7系统怎么才能彻底删除电脑病毒?Win7系统进入PE彻底清除电脑病毒的图文教程
- Win PE下安装 Win 7
- PE文件结构(五)
- PE文件结构(六)
- 自己制作Windows PE工具盘
- 深山红叶PE工具箱嫦娥一号纪念版 V30[1115]
- 部署Vista – 第10部分:理解Windows预安装环境
- 部署Vista – 第11部分:使用Windows PE
- PE文件捆绑原理及源码
- 解决pe安装win7系统出现的不能安装问题
- pe背景图片修改工具
- kb953700:使用单个CPU改善windowsPE2.x性能
- 2015-08-17
- PE格式
- <MEMORY>Project Euler NO.12
- <MEMORY>Project Euler NO13
- <MEMORY>Project Euler NO14
- <MEMORY>Project Euler NO15