当前位置:网站首页>逆向调试入门-PE结构-输入表输出表05/07
逆向调试入门-PE结构-输入表输出表05/07
2022-07-01 12:42:00 【51CTO】
输入表
输入函数,表示被程序调用但是它的代码不在程序代码中的,而在dll中的函数。对于这些函数,磁盘上的可执行文件只是保留相关的函数信息,如函数名,dll文件名等。在程序运行前,程序是没有保存这些函数在内存中的地址。当程序运行起来时,windows加载器会把相关的dll装入内存,并且将输入函数的指令与函数真在内存中正的地址联系起来。输入表(导入表)就是用来保存这些函数的信息的。
结构体
typedef struct _IMAGE_IMPORT_DESCRIPTOR {
_ANONYMOUS_UNION union { //00h
DWORD Characteristics;
DWORD OriginalFirstThunk;
} DUMMYUNIONNAME;
DWORD TimeDateStamp; //04h
DWORD ForwarderChain; //08h
DWORD Name; //0Ch
DWORD FirstThunk; //10h
} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.

两个结构体的作用是一样的,都是为了方便寻找DLL的函数。

IMT是文件在磁盘中的指向的位置
IAT是文件加载进内存后指向的位置
我们使用Stud_PE进行查看

程序hello的作用紧紧是弹出一个对话框
由此我们判断使用了MessagesBox

使用该工具打开程序副本

在文件头部,可以查看出来了输入表的信息

我们打开“在16进制位编辑器中视图文件头树”

我们查看数据的目录

可以看到文件中的输入表位置
有两个数组,两个函数,因为是8个字节

在282acH中
下面我们使用OD进行实例分析

我们准备一个hello文件

该程序的功能只是弹出一个对话框。

我们使用OD软件调试程序

在call函数中发现问题

发现了MessageBoxA
F7进入

在高地址位发现messageBoxtimeoutA

那就可以知道,前面的一段都是这个函数的内容了。
导出表

导出表的结构较为简单。
边栏推荐
- Operator-1初识Operator
- leetcode:329. 矩阵中的最长递增路径【dfs + cache + 无需回溯 + 优雅】
- Tencent Li Wei: deeply cultivate "regulatory technology" to escort the steady and long-term development of the digital economy
- Fatal error: execution: there is no such file or directory
- flinkcdc要实时抽取oracle,对oracle要配置什么东西?
- 运行Powershell脚本提示“因为在此系统上禁止运行脚本”解决办法
- Update a piece of data from the database. Will CDC get two pieces of data with OP fields D and C at the same time? I remember before, only OP was U
- Localtime can't re-enter. It's a pit
- redis探索之缓存击穿、缓存雪崩、缓存穿透
- Router.use() requires a middleware function but got a Object
猜你喜欢
![[20220605] Literature Translation -- visualization in virtual reality: a systematic review](/img/11/6c42957186bf530e8f9d4025a40197.png)
[20220605] Literature Translation -- visualization in virtual reality: a systematic review

王兴的无限游戏迎来“终极”一战

CS5268优势替代AG9321MCQ Typec多合一扩展坞方案

"Analysis of 43 cases of MATLAB neural network": Chapter 40 research on prediction of dynamic neural network time series -- implementation of NARX based on MATLAB
![leetcode:226. Flip binary tree [DFS flip]](/img/b8/6c5596ac30de59f0f347bb0bddf574.png)
leetcode:226. Flip binary tree [DFS flip]
![[encounter Django] - (II) database configuration](/img/13/9512c1e03349092874055771c3433d.png)
[encounter Django] - (II) database configuration

Operations related to sequence table

软件测试中功能测试流程

【脑洞大开】《西潮》及《走向世界丛书》

leetcode:226. 翻转二叉树【dfs翻转】
随机推荐
强大、好用、适合程序员/软件开发者的专业编辑器/笔记软件综合评测和全面推荐
Shell script imports stored procedures into the database
Tencent always takes epoll, which is annoying
项目部署,一点也不难!
The popular major I chose became "Tiankeng" four years later
基于.NetCore开发博客项目 StarBlog - (13) 加入友情链接功能
GID:旷视提出全方位的检测模型知识蒸馏 | CVPR 2021
基于开源流批一体数据同步引擎 ChunJun 数据还原 —DDL 解析模块的实战分享
R language uses conf of yardstick package_ The mat function calculates the confusion matrix of the multiclass model on each fold of each cross validation (or resampling), and uses the summary to outpu
基因检测,如何帮助患者对抗疾病?
Need your own cognition
Compile and debug net6 source code
高薪程序员&面试题精讲系列118之Session共享有哪些方案?
Scene function of wooden frame
工具箱之 IKVM.NET 项目新进展
运行Powershell脚本提示“因为在此系统上禁止运行脚本”解决办法
Powerful, easy-to-use, professional editor / notebook software suitable for programmers / software developers, comprehensive evaluation and comprehensive recommendation
华为面试题: 招聘
[today in history] July 1: the father of time sharing system was born; Alipay launched barcode payment; The first TV advertisement in the world
How to count the status of network sockets?