- 7
- 0
- 约3.86千字
- 约 7页
- 2020-11-08 发布于浙江
- 举报
dncwbc、a1pass前辈们的文章
手动写一个PE文件,完成如下功能
调用MessageBox,弹出一个对话框
调用ExitProcess,退出程序。效果如图:
PE文件即Portable Execute,是微软Windows操作系统上的程序文件
每天当我们不经意地点开一个exe文件时,你知道它背后的秘密吗?OK,让我们一起来了解下PE文件吧!
我们知道,计算机只认识0和1,所在任何文件在计算机中都是用一串串0和1。为了便于阅读,我们把4个二进制数合到一起看,也就是一个16进制数。用UltraEdit打开一个可执行的程序和一个图片文件。
怎么样,文件的本质就是由这些东西组成的!
为什么PE文件能跑起来呢?让我们来了解下PE文件是怎么组织的
吧!如图
一个PE文件的组织就如同一本书一样,DOS、PE头相当于一本书的前言;而块表相当于一本书的目录;.data\.rdata\.text等就相当于书本的每一章。PE文件的“每一章”存放不同的内容。例如.text用来存放代码。
介绍完这些让我们现在就开始吧!我们用的工具是Hex Workshop。
打开工具,文件/新建文件。如图在空白处右击,选插入:
―――――――――――――――――――――――――――――――――
先解决DOS头。
在弹出的对话框中选择十六进制,字节数量填40。点确定,40h就是DOS头的大小。
光标插到第一字节前,输入4D5A,对应ASCII码MZ,这是DOS可执行文件标志。如图,最后四个字节用来指示PE文件头开始的地址,我们的PE头将置开始,所以把最后四个字节改为40 00 00 00(低低高高对应关系)。
DOS头完成了,是不是很简单啊!
―――――――――――――――――――――――――――――――――――
下面就是PE头,不过它比较复杂,在讲PE头之前我们先看几个重要的概念:文件偏移地址和相对虚似地址,上图黄色框中所示的就是文件偏移地址。即某个数据位置相对于文件头的偏移量。
文件执行过程中会把文件映射到内存中,在内存中文件头被映射到某一位置。其它字节的位置相对于头部映射的位置被称为相对虚似地址(RVA)。
文件从磁盘到内存映射过程中发生了一些变化。也就是怎样“对齐”的概念。
比如,一本书如果用32K的纸来印刷的话,假设一页32K的纸能容纳100个字,假设第一章有113个字,那么需要一页多一点的纸张(但下一章必须从新的一页开始),多出的地方就是空白(相当于文件中用0填充),所以第一章会占两页32K的纸。
假如现在用8K的纸来印刷的话,假设一页8K的纸能容纳400个字,那么第一章只用一页8K纸可以了。(因为第二章将从新一页开始),没字的部分就是空白(相当于文件中用0填充)。
在文件中“1页纸”一般200字节,在内存中一般1000字节。
―――――――――――――――――――――――――――――――――――
让我们继续吧!
PE头我们分成二块来讲。
第一部分:在空白的地方如前面的方法,插入18H个字节的0。需要修改的字节如图所示:
= 1 \* GB3 ①处4个字节PE文件头的标志对应ASCII:PE\0\0; = 2 \* GB3 ②处2个字节说明运行平台,014c表示intel处理器; = 3 \* GB3 ③区块个数,相当于一本书多少章; = 4 \* GB3 ④PE头第二部分的大小(可选头文件大小) = 5 \* GB3 ⑤文件属性,普通exe文件一般是010f。
第二部分:插入E0h个字节。需要修改的字节如图所示:
= 1 \* GB3 ①标志字,普通可执行映像一般是010B。 = 2 \* GB3 ②程序入口RVA,对应.text块的RVA,一般是1000。 = 3 \* GB3 ③文件装入内存的起始地址,一般 = 4 \* GB3 ④内存对齐,1000,很重要。 = 5 \* GB3 ⑤磁盘对齐,是200,很重要。 = 6 \* GB3 ⑥要求最低子系统版本的主版本号,一设为0040对应win32子系统。 = 7 \* GB3 ⑦文件装入内存后的总大小,内存对齐是1000。DOS头+PE头+块表占1000字节;.text、.rdata、.data块分别占1000字节。所以这儿填4000。 = 8 \* GB3 ⑧DOS头+PE头+块表在磁盘中所占大小,磁盘对齐是200,这儿填00 02 00 00 = 9 \* GB3 ⑨这个可执行文件所期待的子系统,02为图形接口子系统。 = 10 \* GB3 ⑩ 对应最下面红框中数据的个数(8字节一组),PE文件基本都是10h。
A位置数据我们放在后面再讲。
―――――――――――――――――――――――――――――――
下面是块表
块表是对块的位置、大小以及一些
您可能关注的文档
- 收款账号证明.doc
- 收款账户变更情况说明.doc
- 收款账户资料证明函.doc
- 收款证明(吉版).doc
- 收入、成本确认方式的帐务处理之我见.doc
- 收入会计人员岗位职责.doc
- 收入及纳税证明2.doc
- 收入与支出管理制度.pdf
- 收入证明(链家格式).doc
- 收入证明(中英文对照版)(2).doc
- 教师教学自我增值评价模型构建尝试与数据采集办法.docx
- 2025-2026秋学校党建品牌创建工作总结:打造党建品牌,深化引领,提升党建工作影响力.docx
- 学生学科思维导图作品征集、评选标准与优秀案例展示.docx
- 副校长在2026年学校节能减排成效汇报讲话会议:总结节能成效持续改进措施建设节约校园.docx
- 教导主任在2026年春季学期教学整改工作部署会讲话:针对问题整改落实改进措施提升质量.docx
- X乡镇党委书记在新任村(社区)党组织书记谈心谈话会上的讲话.docx
- 2026年新学期教学办公区域6S管理标准推行实施方案.docx
- XX市第一二一中学XX市第九十中学2025-2026学年第一学期学校教学常规检查整改报告.docx
- (3篇)XX公司在干部大会上的表态发言.docx
- 在XX医院大型医院巡查反馈问题整改工作推进会上的讲话.docx
原创力文档

文档评论(0)