当前位置:网站首页>Introduction to reverse debugging PE structure input table output table 05/07
Introduction to reverse debugging PE structure input table output table 05/07
2022-07-01 12:52:00 【51CTO】
Input table
Input function , Indicates that it is called by a program, but its code is not in the program code , And in the dll The function in . For these functions , The executable file on the disk just keeps the relevant function information , Such as function name ,dll File name, etc. . Before the program runs , The program does not save the address of these functions in memory . When the program runs ,windows The loader will put the relevant dll Load memory , And connect the instruction of the input function with the address of the function in memory . Input table ( The import table ) It is used to save the information of these functions .
Structure
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.

The functions of the two structures are the same , All for the convenience of finding DLL Function of .

IMT Is the location of the file on the disk
IAT Is the location pointed to by the file after it is loaded into memory
We use Stud_PE To view the

Program hello Its function is to pop up a dialog box
Therefore, we judge that MessagesBox

Use this tool to open a copy of the program

In the head of the file , You can view the information of the input table

We turn on “ stay 16 View file header tree in hexadecimal editor ”

Let's check the directory of data

You can see the location of the input table in the file
There are two arrays , Two functions , the reason being that 8 Bytes

stay 282acH in
Let's use OD Conduct case analysis

We are going to have a hello file

The function of this program is to pop up a dialog box .

We use OD Software debugging program

stay call Problem found in function

Found out MessageBoxA
F7 Get into

Found at the highland site messageBoxtimeoutA

Then we can know , The previous paragraph is all about this function .
Export table

The structure of the exported table is relatively simple .
边栏推荐
- Tencent always takes epoll, which is annoying
- List of QT players [easy to understand]
- Queue operation---
- shell脚本导入存储过程到数据库
- 我花上万学带货:3天赚3元,成交靠刷单
- Zero copy technology of MySQL
- CS5268优势替代AG9321MCQ Typec多合一扩展坞方案
- There are still many things to be done in the second half of the year
- Different test techniques
- mysql统计账单信息(下):数据导入及查询
猜你喜欢
![79. Word search [DFS + backtracking visit + traversal starting point]](/img/d6/a7693b2af435b7cf4562161ca4bd3f.png)
79. Word search [DFS + backtracking visit + traversal starting point]

Operator-1初识Operator

Redis exploration: cache breakdown, cache avalanche, cache penetration

Logstash error: cannot reload pipeline, because the existing pipeline is not reloadable

数据库之MHA高可用集群部署及故障切换

工具箱之 IKVM.NET 项目新进展

Stack-------

Based on the open source stream batch integrated data synchronization engine Chunjun data restore DDL parsing module actual combat sharing

Vs code set code auto save

CS5268优势替代AG9321MCQ Typec多合一扩展坞方案
随机推荐
我选的热门专业,四年后成了“天坑”
Use Net core access wechat official account development
Interpretation of hard threshold function [easy to understand]
Function test process in software testing
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
Will it affect the original MySQL database to read the data of a MySQL table in full by flick MySQL CDC
Which securities company has a low, safe and reliable account opening commission
Logstash error: cannot reload pipeline, because the existing pipeline is not reloadable
【邂逅Django】——(二)数据库配置
6.30 simulation summary
VS Code 设置代码自动保存
Question d'entrevue de Huawei: recrutement
Look at the sky at dawn and the clouds at dusk, and enjoy the beautiful pictures
R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型在每个交叉验证(或者重采样)的每一折fold上的混淆矩阵、并使用summary输出每个fold的其它详细指标
Idea of [developing killer]
Simple Fibonacci (recursive)
Accept different views with an open mind
Flinkcdc should extract Oracle in real time. What should be configured for oracle?
Class initialization and instantiation
Wang Xing's infinite game ushers in the "ultimate" battle