CE修改器教程总结1

CE修改器教程总结1下面的专题是CE修改器教程的教程个人已经熟练掌握的就略过了Step1:ExactValuescanning(PW=090453)准确值扫描,略Step2:Unknowninitialvalue(PW=419482)未知值扫描,略Step3:Floatingpoints(PW=890124)浮点数扫描,略Step4:Codefinder(PW=888899)汇编代码查找,参见CS420学习总结8,略Step5:Pointers:(PW=098712)一级

下面的专题是CE修改器教程的教程
个人已经熟练掌握的就略过了

  • Step 1:Exact Value scanning (PW=090453)
    准确值扫描,略

  • Step 2:Unknown initial value (PW=419482)
    未知值扫描,略

  • Step 3:Floating points (PW=890124)
    浮点数扫描,略

  • Step 4:Code finder (PW=888899)
    汇编代码查找,参见CS420学习总结8,略

  • Step 5:Pointers: (PW=098712)
    一级指针的扫描,参见CS420课程总结系列,略

  • Step 6: Code Injection: (PW=013370)
    代码注入,参见CS420课程总结系列8
    注意的点:有时候我们分配的内存空间可能被游戏原代码访问,会导致未知错误,未来见到再说吧

  • Step 7: Multilevel pointers: (PW=525927)
    多级指针,见CS420系列,略

  • Step 9: Shared code: (PW=31337157)
    共享代码,前面只是说了,没有给出实战,下面就给2个实战例子

  • 实战例子1 – CE自带教程
    我们玩家在一个阵营,敌人在一个阵营,我们血量和伤害都比敌人低,游戏回合制,所以我们必死无疑。
    代码查找,找到扣我们血量的汇编代码,nop代替他,发现我们无敌了,但同时敌人也无敌了,说明这个造成伤害的代码是公用的,所以我们需要写一个判断来确定受到伤害的是我们还是敌人。
    如何判断呢?这里可以提供一个思路。思路不唯一。
    我们都知道,C++是面向对象的语言,猜想我们和敌人可能都是一个类的对象,里面或许会有阵营的变量可以用来判断。
    所以我们需要使用CE的另一个功能,数据分析。
    对于一个地址,CE可以获取它周围的全部信息并且自动猜测数据类型,当然不一定完全准确,我们也可以手动修改。
    具体操作
    首先找到数据的地址,然后查找什么改写了这个地址,找到修改代码如下
    在这里插入图片描述
    发现是把xmm0的数据放到了rbx+8的位置,我们推测rbx就是这个人物结构体的开头,血量放在了偏移为8的位置上。打开disassembler,tools里面选择,dissect data/structures或者compare data/structures都行,我们这里先用dissect示范吧。
    我们打开这个界面,添加组,添加4个人物的 血量地址-8 进去,然后选择structures,define new structure,选择size,然后CE就可以生成如下的自动猜测的结构体结构。
    在这里插入图片描述
    我们很轻松观察到红色代表两个组不同的地方。
    所以偏移14的地方我们发现自己队伍数值是1,对方队伍数值是2,不管这代表了什么,我们可以用它来区分我们队伍和对方队伍就可以了。
    下面进行代码注入,回到刚才的代码,auto assemble,code injection。写一段逻辑,是我队伍就无敌,不是就正常打。
    代码如下:

    cmp [rbx+14],1
    jpe exit
    movss [rbx+08],xmm8
    

也就是说,是我们自己就跳到exit,不是我们自己就照常伤害。
点击重启游戏并自动运行,我们就胜利了,我们就成功完成了CE的文本教程。

今天的文章CE修改器教程总结1分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/7034.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注