PE文件——导入表&导出表&函数覆盖
来源:http://www.tudoupe.com时间:2022-04-06
PE文件的基本结构图
- 第一个字段 4D 5A 指定为识别字符 " MZ ",而下一个字段则显示入口地址、堆叠位置和搬迁表位置。
- PE 文档中最后一个 e_lfanew 字段很重要, 因为它指定了文档中真实 PE 文件页眉的位置, 该文件页眉总是以 8 字节对齐 。
判断是否是PE文件
从第一个4D 5A(MZ)文件开始,使用Winhex工具,即1.3C(即3C抵消);
二. 如果你跳跃,您可以读取 00B0 的数据 。
三号呼叫00B0
四. 如果地址信息为5045(即PE),则该地址信息为便携式可执行文件。
导入表
导入表结构:
导入表&桥1&桥2位置
保重 WinHex在左边
如:
读值:2084
使用下列软件: PEditor, WinHex
1个WinHex发射,PE头被80H冲抵,从进口表格中取出RVA。
二. 根据部分时间表(可在PEditor查阅),将RVA转换为FOA,WinHex跳到包含FOA20字节描述的圆页文件,见下文蓝色部分。
FOA=(RVA-Virtual Offset)+Raw Offset
节表结构
如:
第一个字节是1号桥的RVA, 计算其FOA, 并跳到一个由4个字节组成的阵列, 每组FOA都跳到相关的函数上。
第四位字节计算程序跳跃以赢得结果。DD,我不知道你在说什么。
第五个字节是2RVA桥,该字节计算其FOA,进入2号桥的静点阵列。
注意,二号桥不像静向阵列
导出表
导出表结构:
导出表位置
软件:WinHex
一.PE出口到RVA表,抵消78H。
2. 根据章节时间表将RVA改为FOA,然后跳到FOA。
三. 开始计算与出口表数据结构相对应的匹配名称值,与出口表数据结构相对应的匹配名称值相对应。
Office 地址计算 FOA, 跳跃到作为第一个 RVA 输出函数的值, 然后将其他三个函数地址的 RVA 值转换为其他三个地址的 RVA 值, 最后将 FOA 转换为函数名称 。
名称Ordinal 地址与操作地址相似 。
出口函数覆盖有两种技术。
实现了动画开场效果。
(在出口结构中,功能输入地址已经修改。 )
前两个函数FadeIn Open和Animat Open将被发现。
二. 交换两个地址(exe file was really named Animate Open 当它们要重新命名 FadeIn Open时, exe 文件其实被命名为 Animate Open ) 。
Make 运行删除信件框
(取代淡开函数的指令代码)
第一,找到在Winhex的Deginopen的地址 然后从那里修改
二. 保留原基地地址。
三,返回指令 保持仓库的平衡。
执行用户32。 MessageboxA 检查缓冲区的地址,并用最佳的四字节函数反覆写。
练习题
一. 一个变量的FOA是 410H,哪个部分正在试验基础上分析(提供了分析程序)。变量的RVA是什么(请解释计算过程)?如你所见,文字从004开始, 大小从00200开始, 因此可变FOA是410H。
因为400<410<600
RVA = (410-400)+1000=1100H
2. 获取信息,以迅速说明病毒在获取Kernel32模块基址方面的相关性。
A: 找到内核32。 载荷激光器 () 和 GetProcAddress () 的地址可在 dll 基地地址获得。我们不必跟他们去寻找API使用 Kernel32. LoadLibrary 和 DLL 中的 GetProcAddress, 您可以访问在任何 DLL 中导出的任何函数到进程空间中指定的位置 。
三,这是我第一次 能够进入第一个窗口 使用PEEDIOR。检查了PE进口表。导入表格中的 PE 文件与数据目录项目有什么区别?《VA》和进口表格的尺寸如何?EXE 使用了多少 DLL 文件?核查是否与在主编中发现的情况相符?
数据目录的导入表条目由 :80H 抵消;
0084(RVA 2084;基准地址00400;VA = 基准地址RVA+)是VA和大小的进口表。FOA=RVA-虚拟离线+Raw offest=684;可能检测到跳到FOA(文件偏差);
因为 binhex 打开并定位了进口表格匹配数组, 以三二十个连续字节排列, 然后到达整个零字节, EXE 用于三个 DLL 文件中 。
一致!
使用 Winhex 并评价函数名称和条目地址。 Draw 出口图表结构(如图2)
分析:
导出表:
RVA:00002140,Vitual Offset:00002000,Raw Offset:800
因此,FOA:940跳到940,这是出口表格的地址:
以00作为标志
录音时间和日期: 4D510EE
00是Dll的首期号。
二级版本的Dll号是00。
Dll的模块名称(RVA)是002190, FOA是990, 跳到进入文件是WinBroad.com。
0010是起点
共有004个功能。
有名共有004个功能。
FAT表:002168 FOA(968)中RVA值(FAT),该值跳至968 地址值00101183。
这是第一个出口功能RVA,其次是以下三个功能的RVA值:001,1022,001122和0011323。
正如主教所发现的那样:
FAT表格:002178 FOA:(978)中RVA值(名称缩略语)
获取地址00219E,拨978。
第一个出口函数:00219E,FOA=99E
第二个出口函数(0021AB)的RVA值:0021AB,FOA=9AB
第三个出口函数:0021B7,FOA=9B7的RVA值
第四个出口函数的RVA值:0021C2,FOA=9C2。
查看偏移文件的函数名称 :
五. Pedtior 从导出 RVA 的计算机上装载内核32. DLL 。 表格大小在导出时? 在没有进口表格的情况下, 此方法会找到两个函数的名称及其输入地址 。 (Using Winhex, 将Charlie 的内核32 复制到桌面 。 DLL
RV:0092D30RV:0092D30;规模:00DC14;出口表RV:0092D30;出口表RV:00DC14;出口表RV:0092
当获得内核32。 在Dll的基地地址之后,因此,可以使用负载Libray () 方法继续装入更动态的连接库。通过GetProcAdress () 方法获得相关的pi 函数地址符合可移动性标准。
LoadLibray:
GetProcAddress:
6.出口函数覆盖有两种技术。-1
更改 WinResult 。 dll 导出结构中的函数输入地址到达第一窗口. EXE, 它通过动画打开效果。 解释您做了什么 。
将首先找到FadeIn Open and Animate Open:001022和001282。
二. 交换两个地址(exe file was really named Animate Open 当它们要重新命名 FadeIn Open时, exe 文件其实被命名为 Animate Open ) 。
7.出口函数覆盖有两种技术。-2 (P166)
以以下命令代码覆盖淡开函数: 运行第一个窗口。 EXE 程序会弹出一个消息框( OD 打开地址), 如下图所示 :
。 Winhex 负载一赢Result. dll, 更改 FadeInOpen (文件启动偏移 0x0682) 宣布的函数 : 返回命令, 以保存原始基地址, 并保持键盘平衡 :
原始得:
修改后:
红框区域指用户322.dll 中的信件框A 地址; 您可以打开其他程序, 以导入信件框A 读取 OD 中的地址 。例如,在以前的工作中,Helloworld,留意温赫克斯!
运行:
这些是PE文件中的一些评论,请您通过指南阅读。
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|