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

  • 相关阅读:
    npm 安装卸载模块 & ionic插件安装与卸载
    Vue中v-model解析、sync修饰符解析
    Vue props用法详解
    vue页面跳转
    Swift 4 中的泛型
    Swift枚举的全用法
    蓝牙 BLE 三种 UUID 格式转换
    SVG图案
    SVG渐变
    SVG坐标系统及图形变换
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13357291.html
Copyright © 2011-2022 走看看