• CE修改器第8/9关记录


    CE教程第8/9关记录

    第8关:密码525927

    1.找到给定数值的地址。

    image

    地址为0x18d4440

    2.右键点击改写该地址

    image

    可以看见只有一条指令。并且也推荐了一个指针,恰好也是esi寄存器的值。0x18d4428

    3.新的16进制扫描刚才esi的值。

    image

    把这唯一的一条添加到地址(如果不唯一,就需要采取其它方式过滤一下)

    得到指针0x1863300,继续扫描看看。

    image

    把这唯一的一条添加到地址(如果不唯一,就需要采取其它方式过滤一下)

    得到指针0x18d411c,继续扫描看看

    哦吼,搜不到了。这个时候只能继续用调试器了。但是因为没有改变这个值,就只能通过访问的方式。

    image

    然后点击改变数值。

    调试器如下:

    image

    cmp不是移位指令,不用管。直接看下面这条。

    需要注意的是,我们并不能总是看指令里面包含的寄存器,而应该看看CE推荐的指针地址。

    这里是0x18d4108,我们继续搜索。

    image

    把这唯一的一条添加到地址(如果不唯一,就需要采取其它方式过滤一下)

    得到指针0x186342c,继续扫描看看。

    还是找不到,只能继续调试了。

    数一数,已经三级偏移了。

    *(*(*(*186342c+14)+0)+18) = 2556
    

    题目说是四级,这个时候,就利用改变指针的条件了。

    使用改变该地址的调试器。

    image

    哦吼,直接炸裂,归0了。

    从头开始走一遍,到这里,选择访问调试器。

    后面地址变了。但是寄存器偏移,指令是类似的。

    image

    把推荐的指针拿来搜索。0x18fb120。
    image

    终于找到了绿色的地址。把它拉下去,就齐活了。

    image

    接下来,就是如何从6426e0到267的工作了。

    *(*(*(*(*6426e0+c)+14)+0)+18) = 267
    

    image

    用C语言的方式,描述一下,就好理解了。

    添加以后,空格锁定,这个时候再点击改变指针,就能顺利通关了。

    第9关:密码31337157

    感觉还稍微容易一点。

    因为题目说明了是共享代码,当然也可以自己通过调试寄存器看看代码逻辑。

    这种共用代码的。很像C++里面,同一个类的对象,然后修改血量,只是对类的对象的属性进行修改。

    我们找kitt的,攻击一下,反汇编看看。

    image

    kitt的地址是0a92d04c,而ebx是0a92d048,正好也是CE推荐的指针地址。

    并且,这个地址和kitt的地址很接近了。恰好就是ebx+4.

    也就是说执行这条语句的时候,eax代表剩余血量。我们只要注入代码改一下。

    比如在 mov [ebx+04],eax前面,对eax动下手脚。

    我们发现我们满血才100,敌人满血又超过100,所以可以靠血量区分

    if(eax>100)
    {
    	eax = 0
    }
    mov [ebx+04],eax
    起到类似的效果就好了
    当然了,这里恰好能行,但是万一执行的时候敌人剩余血量少于100,就不能秒杀了。
    所以还可以看看其他方法。
    

    通用方法:这是一个C++类,而这又是一个分阵营的对象,那个这个类里面一定有区分阵营的数据存在。

    image

    可以依次浏览4人的内存区域。

    image

    可以比较轻松的发现,每个人血量后+C可以明显分出是敌是友。

    为1就是友军,为2就是敌军。

    也就是反汇编代码,ebx+10的位置。

    我们找个角色,进行改写地址调试。

    然后自动汇编。

    image

    cmp [ebx+10],2
    jne originalcode  //不是2,就是友军,正常扣血吧
    mov eax,0 //是敌军,直接秒杀
    

    只需要加入这3行代码,然后执行就好了。

    执行以后,点击重启游戏并自动执行

    image

    敌人直接GG,点击下一步,也就顺利毕业了。

  • 相关阅读:
    SAX解析xml,小实例
    Pull解析xml,小实例
    TCP通信小实例
    android 获取手机信息
    mysql创建用户与授权
    java执行SQL脚本文件
    IOUtils.readFully()的使用
    下载工具类
    vue element ui 父组件控制子组件dialog的显隐
    springboot-mybatis配置多数据源
  • 原文地址:https://www.cnblogs.com/dayq/p/16133264.html
Copyright © 2020-2023  润新知