1

逆向调试入门-PE结构-输入表输出表05/07

 1 year ago
source link: https://blog.51cto.com/apple0/5433088
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

逆向调试入门-PE结构-输入表输出表05/07

原创

最爱大苹果 2022-07-01 09:29:34 博主文章分类:逆向学习 ©著作权

文章标签 PE结构 PE输出表 PE输入表 文章分类 其它 网络/安全 yyds干货盘点 阅读数156

输入函数,表示被程序调用但是它的代码不在程序代码中的,而在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;
typedef struct _IMAGE_THUNK_DATA32 {
union {
DWORD ForwarderString;
DWORD Function;
DWORD Ordinal;
DWORD AddressOfData;
} u1;
} IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
逆向调试入门-PE结构-输入表输出表05/07_PE结构

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

逆向调试入门-PE结构-输入表输出表05/07_PE结构_02

IMT是文件在磁盘中的指向的位置

IAT是文件加载进内存后指向的位置

我们使用Stud_PE进行查看

逆向调试入门-PE结构-输入表输出表05/07_PE输入表_03

程序hello的作用紧紧是弹出一个对话框

由此我们判断使用了MessagesBox

逆向调试入门-PE结构-输入表输出表05/07_PE输出表_04

使用该工具打开程序副本

逆向调试入门-PE结构-输入表输出表05/07_PE结构_05

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

逆向调试入门-PE结构-输入表输出表05/07_PE结构_06

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

逆向调试入门-PE结构-输入表输出表05/07_PE输入表_07

我们查看数据的目录

逆向调试入门-PE结构-输入表输出表05/07_PE结构_08

可以看到文件中的输入表位置

有两个数组,两个函数,因为是8个字节

逆向调试入门-PE结构-输入表输出表05/07_PE输出表_09

在282acH中

下面我们使用OD进行实例分析

逆向调试入门-PE结构-输入表输出表05/07_PE输出表_10

我们准备一个hello文件

逆向调试入门-PE结构-输入表输出表05/07_PE输入表_11

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

逆向调试入门-PE结构-输入表输出表05/07_PE输出表_12

我们使用OD软件调试程序

逆向调试入门-PE结构-输入表输出表05/07_PE结构_13

在call函数中发现问题

逆向调试入门-PE结构-输入表输出表05/07_PE输出表_14

发现了MessageBoxA

逆向调试入门-PE结构-输入表输出表05/07_PE输入表_15

在高地址位发现messageBoxtimeoutA

逆向调试入门-PE结构-输入表输出表05/07_PE输入表_16

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

逆向调试入门-PE结构-输入表输出表05/07_PE结构_17

导出表的结构较为简单。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK