首页
社区
课程
招聘
[原创]对EXE文件导入表添加一个新的dll和对应的函数名
发表于: 2022-4-8 11:21 7388

[原创]对EXE文件导入表添加一个新的dll和对应的函数名

2022-4-8 11:21
7388

闲来无事,最近项目中要求对某个进程文件进行静态导入表的hook,于是想到采用对原有EXE文件的PE格式进行改写,将要被EXE调用的dll和导出函数直接写入EXE的导入表中。
代码只是demo,不足之处请见谅~
1.PE文件导入表的结构简单介绍
图片描述
实际来看一下我们EXE的导入表,如下图,0x100c就是我们导入表的虚拟地址,其大小是0x38
图片描述
使用PE工具,将0x100c的虚拟地址转换为文件偏移地址后为FOV:0x20C
图片描述
通过文件偏移定位到0x20c处,查看文件内容如下:
图片描述
根据_IMAGE_IMPORT_DESCRIPTOR结构体的内容,可知:一个导入表描述符占:5*sizeof(DWORD)的大小,末尾是一个全零的导入表描述符。
FirstThunk的RVA=0x00001044,Name的RVA=0x00001034

2.下面说一下如何添加新的导入表到EXE中
1)将旧文件读到内存中
2)添加新section的表头
3)将旧导入表拷贝到新的section中
4)在新的section中,接着旧的导入表描述符写入新的导入表描述符
5)修正新PE的imagesize
6)修正新PE的导入表虚拟地址和FOV地址
7)写入新文件中
代码地址:https://github.com/maomingxu/PE_import-_adder


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 6270
活跃值: (3335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
多谢分享
2022-4-8 13:08
0
雪    币: 11
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2022-4-8 19:28
0
游客
登录 | 注册 方可回帖
返回
//