当前位置:网站首页>PE文件-手工修改重定位表-WinHex-CFF Explorer
PE文件-手工修改重定位表-WinHex-CFF Explorer
2022-08-08 12:25:00 【插件开发】
1.CFF Explorer
如果需要修改exe,dll等的二进制代码,遇到添加绝对地址时,需要将绝对地址的位置添加进重定位表,确保添加代码的正确。那如何手工添加?首先需要了解重定位表在PE文件中的解析,本文默认读者具有这方面功底。
先采用CFF Explorer打开目标文件,找到重定位表,如下图所示;
2.计算添加后的重定位大小
白色部分是可以修改的,灰色部分不能,由此可见,CFF Explorer是可以修改重定位表的,但是不能直接增加一个新的表单元及表项的。这时就必须进行二进制的修改。首先必须计算添加后的重定位表大小,如本文增加一个表含两项和在一个已知表中增加一项,就是一共增加0x0E个字节。修改如下位置:
这里推荐的工具是WinHex,这个工具比较强大(也可以用CFF Explorer修改)。

将地址3A04中表示个数的数据增加一个表项(注意字节是2个,所以要变成74)。如下所示:
接着找到下一个表头位置,地址是3B72,复制整块数据,向后移动两个位置。然后空出来的两个位置改为0,并复制前面两个字节。这样添加一个表项的工作就已经完成。如下图所示:
然后是增加一个表项,虚拟地址是3000,大小是12,目标地址是3200。定位到重定位表末尾地址3B98。写入对应的起始地址,大小和项(注意如果相对虚拟地址,没有这么大,这么改是没有意义的)如下图所示:
3.作者答疑
如有疑问,敬请留言。
边栏推荐
猜你喜欢

Mobile adaptation method of vw/vh - vw/vh instance - analog B stand mobile home page - get style tutorial video

安科瑞预付费水电集团物业解决方案-Susie 周

nvm的使用 nodejs版本管理,解决用户名是汉字的问题

Study: Toxic PFAS chemicals make rainwater unsafe to drink around the world

day01 - Introduction to Web API - Introduction to DOM - Getting Elements - Event Basics - Manipulating Elements - Exclusive Operations - Custom Attribute Operations - Node Operations - Cases: Dynamica

详解轮播图二-通过left定位来轮播图片
![[C language] Detailed explanation of custom types: structure, enumeration, union](/img/5c/69d238a71e24b34c2232c20ed7e09e.png)
[C language] Detailed explanation of custom types: structure, enumeration, union

STM32的内存管理相关(内存架构,内存管理,map文件分析)

Jenkins - Introduction to Continuous Integration (1)

程序员必备的VS调试技巧
随机推荐
JSON的Unicode问题;自定义排序问题;保留最大子集问题
C language small project -- address book (static version + dynamic version + file version)
一文读懂配置管理(CM)
C语言的三个经典题目:三步翻转法、杨氏矩阵、辗转相除法
八月粉丝福利来了!大疆手机云台你爱了吗?
Jenkins - install (2)
Five-faced Alibaba rated P6 after taking the offer: share his interview experience
[C language] Detailed explanation of custom types: structure, enumeration, union
详解轮播图二-通过left定位来轮播图片
The use of qsort function and its analog implementation
面试突击72:输入URL之后会执行什么流程?
IJCAI 2022 | 基于随机游走聚合的图神经网络
8/7 牛客6+div2D+倍增lca
简短截说阐述redis中事务的使用
手绘地图制作的关键点之“图层覆盖”
老手也常误用!详解 Go channel 内存泄漏问题
Collection of shell basics
The maximum validity period of an SSL certificate is 13 months. Is it necessary to apply for multiple years at a time?
《show your work》 从现在开始!
字节跳动资深架构师整理2022年秋招最新面试题汇总:208页核心体系