`
cfree
  • 浏览: 17859 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

压缩与脱壳-PE文件格式 三

阅读更多

File Header (文件头)

本课我们将要研究 PE header 的 file header (文件头)部分。
至此,我们已经学到了哪些东东,先简要回顾一下 :
DOS MZ header 又命名为 IMAGE_DOS_HEADER . 。其中只有两个域比较重要 : e_magic 包含字符串 "MZ" , e_lfanew 包含 PE header 在文件中的偏移量。 比较 e_magic 是否为 IMAGE_DOS_SIGNATURE 以验证是否是有效的 DOS header 。比对符合则认为文件拥有一个有效的 DOS header 。 为了定位 PE header ,移动文件指针到 e_lfanew 所指向的偏移。 PE header 的第一个双字包含字符串 "PE" 。该双字与 IMAGE_NT_SIGNATURE 比对,符合则认为 PE header 有效。
本课我们继续探讨关于 PE header 的知识。 PE header 的正式命名是 IMAGE_NT_HEADERS 。再来回忆一下这个结构。
IMAGE_NT_HEADERS STRUCT
Signature dd ?
FileHeader IMAGE_FILE_HEADER <>
OptionalHeader IMAGE_OPTIONAL_HEADER32 <>
IMAGE_NT_HEADERS ENDS

Signature PE 标记,值为 50h, 45h, 00h, 00h ( PE )。
FileHeader 该结构域包含了关于 PE 文件物理分布的一般信息。
OptionalHeader 该结构域包含了关于 PE 文件逻辑分布的信息。

最有趣的东东在 OptionalHeader 里。不过, FileHeader 里的一些域也很重要。本课我们将学习 FileHeader , 下一课研究 OptionalHeader 。

IMAGE_FILE_HEADER STRUCT
Machine WORD ?
NumberOfSections WORD ?
TimeDateStamp dd ?
PointerToSymbolTable dd ?
NumberOfSymbols dd ?
SizeOfOptionalHeader WORD ?
Characteristics WORD ?
IMAGE_FILE_HEADER ENDS





简言之,只有三个域对我们有一些用 : Machine , NumberOfSections 和 Characteristics 。通常不会改变 Machine 和 Characteristics 的值,但如果要遍历节表就得使用 NumberOfSections 。
为了更好阐述 NumberOfSections 的用处,这里简要介绍一下节表。
  节表是一个结构数组,每个结构包含一个节的信息。因此若有 3 个节,数组就有 3 个成员。 我们需要 NumberOfSections 值来了解该数组中到底有几个成员。 也许您会想检测结构中的全 0 成员起到同样效果。 Windows 确实采用了这种方法。为了证明这一点,可以增加 NumberOfSections 的值, Windows 仍然可以正常执行文件。据我们的观察, Windows 读取 NumberOfSections 的值然后检查节表里的每个结构,如果找到一个全 0 结构就结束搜索,否则一直处理完 NumberOfSections 指定数目的结构。 为什么我们不能忽略 NumberOfSections 的值 ? 有几个原因。 PE 说明中没有指定节表必须以全 0 结构结束。 Thus there may be a situation where the last array member is contiguous to the first section, without empty space at all. Another reason has to do with bound imports. The new-style binding puts the information immediately following the section table's last structure array member. 因此您仍然需要 NumberOfSections 。
  • 大小: 63.9 KB
分享到:
评论

相关推荐

    PE文件的UPX脱壳算法的实现

    都会使计算机产生安全隐患或者使软件的核心技术被窃取,所以保护PE文件不被修改是一件很重要的工作,当前通常采用加壳的方法对PE文件进行保护,这其中UPX是具有代表性的压缩类外壳。 本文首先对PE文件格式进行了全面...

    红黑全能自动脱壳机——全能脱壳机

    这个工具的工作原理,它的壳特征和编译器特征保存在HackFans.txt里面,能识别出来的壳,基本上都有对应的脱壳函数,用壳特征脱壳,可以脱壳,对于一些不好特殊的壳你可以用OEP侦测来脱壳,这要依赖编译器特征,你也可以自己...

    脱壳AspackDie

    - 询问用户是否继续解压缩不能解压缩的文件 (不知道是谁提的建议) 1.3d: (2002.3.26) --------------------- - 支持另外的一个未知的 Aspack 版本 (感谢: Proggi Killa) 1.3c: (2002.3.21) --------------------- ...

    脱壳入门初级教学(CHM格式)

    第一课 PE格式 第二课 SEH技术 第三课 认识壳 第四课 常见压缩壳与加密壳 第五课 文件类型分析 第六课 寻找OEP 第七课 Dump内存映像 第八课 重建输入表 第九课 手动确定IAT的地址与大小 第十课 DLL文件脱壳 第十一课...

    .Net 脱壳 反混淆神器De4dot-3.1.41592最新版

    有些模糊处理一个Win32 PE等包装.NET程序集里面的.NET反编译器无法读取该文件。 移除大多数/所有的垃圾类添加混淆。 修复了一些的peverify错误。许多混淆器是马车和创建无法验证的代码错误。 还原类型的方法的参数和...

    软件脱壳破解工具

    AspackDie——AsPack的脱壳利器, 这是一个小小的PE 文件解压缩器 (EXE, DLL, ...) 她可以解压缩自Aspack 2000 以后的任何Aspack 版本. 包括: - Aspack 2000 - Aspack 2001 - Aspack 2.1 - Aspack 2.11 - Aspack 2.11...

    ASPack脱壳

    这是一个小小的 PE 文件解压缩器 (EXE, DLL, ...) 她可以解压缩 自 Aspack 2000 以后的任何 Aspack 版本. 包括: - Aspack 2000 - Aspack 2001 - Aspack 2.1 - Aspack 2.11 - Aspack 2.11c/d - Aspack 2.12 - Aspack...

    rordbg辅助脱壳工具

    答:点击“打开被分析文件”,出现Windows标准的文件打开对话框,选择欲分析的文件(必须是PE格式的EXE文件), 这时,被调试程序已经加载,可以先设置断点等调试条件,如果希望研究壳的技术,可以点选“遇到异常...

    全能脱壳机

    这个工具的工作原理,它的壳特征和编译器特征保存在HackFans.txt里面,能识别出来的壳,基本上都有对应的脱壳函数,用壳特征脱壳,可以脱壳,对于一些不好特殊的壳你可以用OEP侦测来脱壳,这要依赖编译器特征,你也可以自己...

    软件加密技术内幕 chm

    第1章 PE文件格式深入研究 1.1 PE文件格式格式纵览 1.1.1 区块(Section) 1.1.2 相对虚拟地址(Relative Virtual Addresses) 1.1.3 数据目录 1.1.4 输入函数(Importing Functions) 1.2 PE文件结构 ...

    多种脱壳软件

    现在为了适应脱壳的需要,发现原来的代码对非标准格式的PE文件的处理有些小问题, 所以代码基本都重写过了,但是基本处理步骤还是一致的,外表上看不出来 3.cooldebugger plugin(调试插件) 完全自主开发的插件,说是调试...

    软件加密技术内幕

    1.1 PE文件格式格式纵览 1.1.1 区块(Section) 1.1.2 相对虚拟地址(Relative Virtual Addresses) 1.1.3 数据目录 1.1.4 输入函数(Importing Functions) 1.2 PE文件结构 1.2.1 The MS-DOS头部 1.2.2 IMAGE...

    完全掌握加密解密实战超级手册.z01

    462.1.3 PE文件格式的头结构 462.1.4 设置Optional Header可执行信息 492.1.5 Section Table结构数组 512.1.6 Import Table输入表 522.1.7 Export Table输出表 532.1.8 重定位表 542.2 简述代码分析实战 552.2.1 ...

    软件破解入门教程.txt

    PE文件格式 认识脱壳 自动脱壳 手动脱壳 脱壳高级篇 第9章 注册机和补丁制作 概念介绍 补丁制作 注册机制作工具 rufeng教程 第一章 如何成为一个Cracker 第二章 破解软件的基础 第三章 破解windows 95...

    加密解密.技术内幕.chm

    第1章 PE文件格式深入研究1.1 PE文件格式格式纵览 1.1.1 区块(Section) 1.1.2 相对虚拟地址(Relative Virtual Addresses) 1.1.3 数据目录 1.1.4 输入函数(Importing Functions)1.2 PE文件结构 1.2.1 The MS-...

    强大UPX加壳压缩工具(Free UPX) v1.7汉化版.rar

    UPX 加壳压缩工具绿色版本,无需安装,Free UPX1.4,在编程开发过程中我们可以利用其对EXE, DLL, OCX, BPL, CPL 等格式文件加壳,使用方便快速、而且是免费的! UPX(the Ultimate Packer for eXecutables)是一个...

    Windows应用程序捆绑核心编程光盘代码

    2.2 PE文件格式概述 28 2.2.1 PE文件结构布局 28 2.2.2 PE文件内存映射 30 2.2.3 Big-endian和Little-endian 31 2.2.4 3种不同的地址 31 2.3 PE文件结构 32 2.3.1 MS-DOS头部 32 2.3.2 IMAGE_NT_HEADER头部 ...

    完全掌握加密解密实战超级手册.zip02

    442.1.1 PE格式文件概述 442.1.2 检验PE格式文件 462.1.3 PE文件格式的头结构 462.1.4 设置Optional Header可执行信息 492.1.5 Section Table结构数组 512.1.6 Import Table输入表 522.1.7 Export Table输出表 532.1...

Global site tag (gtag.js) - Google Analytics