您当前的位置: 首页 > 

插件开发

暂无认证

  • 2浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

PE文件-手工修改重定位表-WinHex-CFF Explorer

插件开发 发布时间:2022-08-07 11:32:43 ,浏览量:2

文章目录
    • 1.CFF Explorer
    • 2.计算添加后的重定位大小
    • 3.作者答疑

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.作者答疑

  如有疑问,敬请留言。

关注
打赏
1665481431
查看更多评论
立即登录/注册

微信扫码登录

0.0369s