当前位置:网站首页>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.作者答疑
如有疑问,敬请留言。
边栏推荐
猜你喜欢
案例分析 | 宜家以双钻设计模型探索线上零售新业务
2022-08-05
C语言的三个经典题目:三步翻转法、杨氏矩阵、辗转相除法
SSTI漏洞介绍认识(flask、Werkzeup)
Fluorite, millet against smart camera
深析C语言的灵魂 -- 指针
产品-Axure9英文版,下拉框Droplist的条件选择,显示不同内容面板
开放原子开源峰会 - SmartIDE正式开源并发布v1.0版本
作为一个年薪50W阿里P7架构师的必备知识:并发+JVM+多线程+Netty+MySQL
Study: Toxic PFAS chemicals make rainwater unsafe to drink around the world
随机推荐
DDoS攻击为什么是无解的
RT-Thread记录(三、RT-Thread 线程操作函数及线程管理与FreeRTOS的比较)
neural network classification
IJCAI 2022 | 基于随机游走聚合的图神经网络
The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
【SSR服务端渲染+CSR客户端渲染+post请求+get请求+总结】三种开启服务器的方法总结
Kunpeng Developer Creation Day 2022: Kunpeng Full-Stack Innovation and Developers Build Digital Hunan
《show your work》 从现在开始!
ctfshow 七夕杯(复现)
牛 plus,多层嵌套动态 JSON 该如何解析总结
xxd命令(反编译、二进制文件转十六进制文件)
STM32入门开发 制作红外线遥控器(智能居家-万能遥控器)
行业领先的界面开发组件DevExpress 8月发布新版——v22.1.4
关于微信小程序体验版获取不到openId的问题
服务器配置——Linux系统安装Redis
字节跳动资深架构师整理2022年秋招最新面试题汇总:208页核心体系
(5)FlinkSQL将socket数据写入到mysql方式二
研究:有毒的PFAS化学品使全球各地的雨水无法安全饮用
(8)FlinkSQL自定义UDF
请问如何实现两个不同环境的MySQL数据库实时同步