CheatEngine自带的工具Tutorial-step9闯关笔记。
1、搜索(单浮点)血量变化-找到健康(后面用HP简写)的地址,查找谁写入了这个地址
2、查找哪个ebx指针被谁指着,延续可以找出血量的基址。我们目的是区分阵营干死地方玩家。(这部最好把四个玩家的HP地址都找出来)
3、现在来找阵营:
4、我们知道了camp和hp的地址了,游戏是凭借是否HP为0就死亡,那么我们准备注入代码了
我们根据血量地址浏览内存:【代码注入】
5、准备工作都好了,开始秒杀敌军了!插入汇编代码,【攻击】C3测试发现被秒杀,然后我们点击【重新启动游戏并自动执行】 成功闯过第9关!
汇编脚本代码:
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here【核心代码】
mov eax,0 //将要赋值的血量eax设置为0
cmp [ebx+10],1 //是否为我方阵营[ebx+10]->camp
jne originalcode //不是我方就直接调到源代码块,秒死他们!
mov eax,42C80000 //是我方的,回到初始满血(100)注意是浮点数不能直接填100,如果不知道100浮点的十六进制,可以自己在CE中去调后复制过来
//(100浮点数十六进制为42C80000)
originalcode:
mov [ebx+04],eax
fldz
exit:
jmp returnhere
"Tutorial-i386.exe"+265B7://【这里CE自动生成的,代码段不一样】
jmp newmem
returnhere: