学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1168

主题
发表于 2020-5-7 21:30:39 | 查看: 2856| 回复: 0

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  认识导入表(_IMAGE_IMPORT_DESCRIPTOR)结构。

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  简单的说一个程序不可能完全包含整个系统中的代码,当我们要实现一些功能的时候,系统的API已经包含了这个功能,那么我们就可以将系统的这个dll加载到我们程序的内存内存空间中,然后去执行他就可以了。比如一个简单的窗口中弹出对话框如果要我们自己写全部代码,我想没有几周是不可能实现的,因为他涉及到显卡的驱动调用等相关内容。而Windows在编写过程中就为程序员预留了一些接口API,我们只需要按照规定调用这些预留的接口就可以实现其功能了。那么程序要用的功能在那个dll中呢?调用的是哪个函数呢?在PE文件内,有一组数据结构,他们分别对应着每个被输入的DLL。每一个这样的结构都给出了被输入的DLL的名称并指向一组函数指针。这组函数指针被称为输入地址表(Import Address Table)。

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  重要成员如下

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  成员1:包含指向输入名称表简称INT的RVA,INT是一个IMAGE_THUNK_DATA结构数组,数组中的每一个IMAGE_THUNK_DATA结构指向IMAGE_IMPORT_BY_NAME结构,数组最后一个内容是内容为0的IMAGE_THUNK_DATA。
  成员2:一个32位的时间标志,可以忽略。
  成员3:这个是第一个被转向的API的索引,一般为0。
  成员4:DLL的名字的指针,是一个以00结尾的ASCII字符的RVA地址,例如”kernel32.dll”
  成员5:包含指向输入地址表(IAT)的RVA。IAT是一个IMAGE_THUNK_DATA数组。成员1同成员5非常相似,他们指向两个本质上相同的数组IMAGE_THUNK_DATA。
  注意:

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  在文件中认识输入表结构。本次为了说明问题,我们就用简单的1.exe了,我们的用c32打开1.exe,然后借助lordPE来找到输入表。

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  可以看到导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表
  在文件中认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表

手写PE第七课 认识导入表
                                                                        xuenixiang                                                                        

手写PE第七课 认识导入表

手写PE第七课 认识导入表
                                                                原创文章 127获赞 34访问量 3万+                                                                                            关注                                                                私信                                                                                                                           

温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-11-21 22:01 , Processed in 0.171683 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表