从可执行文件中删除.reloc节区

基址重定位表对于DLL和SYS文件来说是必须得,但在EXE格式的PE文件中,基址重定位表并无作用,将其删除后程序仍然能够正常运行。

VC++中生成的PE文件的重定位节区名为.reloc,删除该节区后文件可正常运行,并且缩减了文件大小。

.reloc节区一般位于所有节区的最后,可以使用PEView和Win Hex Editor来手动删除。这里对reloc.exe程序进行演示。

1、删除.reloc节区头:

先用PEView打开查看.reloc节区头信息:


可以看到.reloc节区头从文件偏移270开始,大小为28(270~297)。

用Win Hex打开找到该区域,然后全部用0覆盖(Ctrl+L):




2、删除.reloc节区:

文件中.reloc节区的起始偏移为C000,因此从C000开始一直使用Win Hex删除到文件末端所有数据即可(Del):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值