网站大量收购闲置独家精品文档,联系QQ:2885784924

C2-2的 PE文件格式之二.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C2-2的 PE文件格式之二

为何需要导出序号表? 导出函数名字和导出地址表中的地址不是一一对应关系。 为什么? 一个函数实现可能有多个名字; 某些函数没有名字,仅通过序号导出。 * shlwapi.dll文件(13A/35A) * 6.5通过函数名 定位函数导出地址 a a b b RVA * * 为1时,表示通过序号引入函数,请测试一下! * 函数导出序号=nBase+Ordinal * 软件安全 C2-2 PE文件格式 * 本讲的内容提纲 1?PE文件及其表现形式 2?PE文件格式与恶意软件的关系 3 PE文件格式总体结构 4 代码节与数据节 5 引入函数节:PE文件的引入函数机制 6?引出函数节:DLL文件的函数引出机制 * 5 引入函数节 这个节一般名为.rdata。 引入函数:是被程序调用但其执行代码又不在程序中的函数。 这些函数位于一个或者多个DLL中,在调用者程序中只保留了函数信息,包括函数名及其驻留的DLL名等。 动态链接库:例如kernel32.dll、user32.dll、gdi32.dll等。 * 引入函数节原始数据 * 引入函数节的属性 * 5.1 IMPORT Directory Table 如何从PE文件定位到引入目录表(IDT)的起始位置? PE可选文件头的DataDirectory。 * 5.1 IMPORT Directory Table 引入目录表由一系列的IMAGE_IMPORT_DESCRIPTOR结构组成。 结构的数量取决于程序要使用的DLL文件的数量,每一个结构对应一个DLL文件。 在所有这些结构的最后,由一个内容全为0的IMAGE_IMPORT_DESCRIPTOR结构作为结束。 * IMPORT Directory Table IMAGE_IMPORT_DESCRIPTOR结构 IMAGE_IMPORT_DESCRIPTOR结构 IMAGE_IMPORT_DESCRIPTOR结构 * IMAGE_IMPORT_DESCRIPTOR结构 IMAGE_IMPORT_DESCRIPTOR?STRUCT ????union ????????Characteristics?dd??????? ??? OriginalFirstThunk?dd???? //指向Import Name Table(该DLL中所有被引入函数的名字或序号信息) Ends TimeDateStamp?dd????? ForwarderChain?dd???? Name1?dd????????????? //dll文件名字符串的RVA FirstThunk?dd???????? //指向Import Address Table表 IMAGE_IMPORT_DESCRIPTOR?ENDS * OriginalFirstThunk和FirstThunk 都指向一个包含一系列IMAGE_THUNK_DATA结构的数组。 每个IMAGE_THUNK_DATA结构定义了一个导入函数的信息,实际为一个双字,不同时刻可能代表不同含义。 以一个内容为0的IMAGE_THUNK_DATA结构作为结束。 ?OriginalFirstThunk指向的数据 FirstThunk指向的数据? * 引入目录表(IDT)在文件中的指向 * IMAGE_THUNK_DATA结构 一个IMAGE_THUNK_DATA结构实际上就是一个双字,它在不同时刻有不同的含义。 IMAGE_THUNK_DATA STRUC union u1 ForwarderString?????? DWORD? ??????//指向一个转向者字符串的RVA Function??????????????????DWORD? ????? //被引入的函数的内存地址 Ordinal??????????????????? DWORD? ????? //被引入的API 的函数序号 AddressOfData???????? DWORD? ????? //被引入的API的Hint和函数名字符串信息(IMAGE_IMPORT_BY_NAME结构) ends IMAGE_THUNK_DATA ENDS * IMPORT Directory Table * 5.2 IMPORT Name Table Data最高位: 为0时,表示通过函数名引入,指向IMPORT Hints/Names 为1时,表示通过序号引入函数 * 5.3 IMPORT Hints/Names DLL names * IMPORT Hints/Names DLL names分解说明 IMAGE_IMPORT_BY_NAME结构 80 00为Hi

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档