反汇编代码
当程序的ImageBase发生改变之后,为了使程序能够继续正常运行,就需要重定位表。重定位表记录的需要修正的地址。重定位表位于数据目录项的第六个结构


通过第一个块的VirtualAddress(地址)加上SizeOfBlock(大小)就可以得到下一个的位置了,以此类推直到VirtualAddress和SizeOfBlock为零,则代表结束。具体项的宽度是16字节 高四位 代表类型:值为3 代表的是需要修改的数据 值为0代表的是 用于数据对齐的数据,可以不用修改.也就是说 我们只关注 高4位的值为3的就可以了.。每一个块中需要修复的数据为,每个低十二位的值加上VirtualAddress。具体项的数量 = (SizeOfBlock – 8)/2 (每一项占两个字节,故除二);

最后修改:2020 年 09 月 15 日
如果觉得我的文章对你有用,请随意赞赏