第20章:"内嵌补丁"练习
4010F5 - 401249 xor 44
401007 - 401086 xor 7
4010F5 - 401249 xor 11
4010F5 - 401249 校验和
40124A - 401280 xor 17
程序很简单,循环做几个xor , 一个校验和.
两种思路,第一是将代码写到不被加密的地方,跳转到不加密处,然后执行程序进行修改,这样工作量小一点.
第二种是修改字符串,但是要考虑加密解密.
在校验和这个地方,修改为jne ,分别 xor ,得到 75 xor 7 = 72.
运行到修改代码的现场信息
修改参数,并且修改对应地址:
消息的格式如图,首先是EB开头,然后是字符串个数,最后以00(NULL)结尾.因此在修改时需要注意修改对应的数据.
并且从4010F5到401284都需要复制下来,格式必须完全一样.
经多次尝试后失败,尽管修改了函数参数,但是输出仍然与预期不同.
采用书上的方法,将代码写入401280处:
最后运行成功,注意要在相应的节区头获取写权限,对没有写权限内存进行写操作时,会引发非法访问.
记得同时修改jmp的xor加密.