第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加密.

原文地址:https://www.cnblogs.com/Rev-omi/p/13357291.html