这些天拿起了滴水三期的视频去重温一下pe结构,在这期间碰到了无数次类似下图的错误。
在free内存的时候莫名其妙给了一个断点。
而且不光free,就连fopen也会莫名其妙给你抛个完全无法理解的错误。
各种搜索引擎轮番查找之后问题还在,根本没有解决,抓耳挠腮之后,我决定直接copy人家现成的的代码,一点一点去找答案。
发现别人在移动导出表和重定位表的时候根本不会出错,所以我就仔细一行一行的去对比他们的代码。
功夫不负有心人,经过我的查找,终于找到了那个bug出现的问题所在。
首先,在我移动导出表的时候,我的代码逻辑跟别人的逻辑丝毫不差,但是我却在新增节的地方跟别人差了几行代码。
别人的代码新增节后直接复制出一个新的内存区域,而我却在用旧的内存区域,直接造成了这个bug的出现,修复之后完美跑通。
其次,我在移动重定位表的时候又双叒叕发现了这个bug,这把我气的不轻,平静了一会儿之后,我貌似知道了bug的所在。