记录,在用c/c++解析pe结构时的一个非常莫名其妙的bug(出现在移动导出表、重定位表等操作中)

这些天拿起了滴水三期的视频去重温一下pe结构,在这期间碰到了无数次类似下图的错误。

img

在free内存的时候莫名其妙给了一个断点。

而且不光free,就连fopen也会莫名其妙给你抛个完全无法理解的错误。

各种搜索引擎轮番查找之后问题还在,根本没有解决,抓耳挠腮之后,我决定直接copy人家现成的的代码,一点一点去找答案。

发现别人在移动导出表和重定位表的时候根本不会出错,所以我就仔细一行一行的去对比他们的代码。

功夫不负有心人,经过我的查找,终于找到了那个bug出现的问题所在。

首先,在我移动导出表的时候,我的代码逻辑跟别人的逻辑丝毫不差,但是我却在新增节的地方跟别人差了几行代码。

别人的代码新增节后直接复制出一个新的内存区域,而我却在用旧的内存区域,直接造成了这个bug的出现,修复之后完美跑通。

其次,我在移动重定位表的时候又双叒叕发现了这个bug,这把我气的不轻,平静了一会儿之后,我貌似知道了bug的所在。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值