CE6.6第9关通关教程
说明
第九关需要使一场必败的战斗获得胜利.且不能通过锁定和修改内存来通关.下面是自己通过测试和参考资料的通关教程.
首先获得我们两个角色的基址,这是一个二级基址,很容易就能找出来.然后通过 找出是什么访问这个地址->找出访问了这个指针指向的地址的代码(第二个),找出ebx的值,这个是角色基址,+0x4是血地址,然后通过内存搜索角色名,可以在附近找到角色的内存地址.计算得出偏移为0x15即是角色名地址.
在之前得到的扣血地址 mov [ebx+04],eax 中 CTRL+A 自动汇编->模板->代码注入.写入如下判断语句:如果是我们的角色则直接跳过扣血语句即可实现只有敌人扣血,我们就赢了.
源码
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [ebx+15],"Dave"
je exit
cmp [ebx+15],"Eric"
je exit
originalcode:
mov [ebx+04],eax
exit:
fldz
jmp returnhere
"Tutorial-i386.exe"+26537:
jmp newmem
returnhere:
效果
如果你对这篇文章有什么改进意见,请点击这里告诉我。
热门
随机
御坂网络 - 任何足夠先進的技術,初看皆與魔法無異!