zoukankan      html  css  js  c++  java
  • 第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加密.

  • 相关阅读:
    IList扩展
    WPF 路由事件
    WPF 属性值绑定、转换
    WPF 生命周期
    App.config 动态编辑
    Oracle Package的全局变量与Session
    AES对数据进行加密与解密
    OracleAES加密
    AES加解密程序的实现
    Oracle的AES加密与解密用法
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13357291.html
Copyright © 2011-2022 走看看