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

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

2022-4-8 11:21
6210

闲来无事,最近项目中要求对某个进程文件进行静态导入表的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


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞3
打赏
分享
最新回复 (2)
雪    币: 5421
活跃值: (2543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinasmu 2022-4-8 13:08
2
0
多谢分享
雪    币: 11
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
vitalpig 2022-4-8 19:28
3
0
感谢分享
游客
登录 | 注册 方可回帖
返回