來源:http://ibf.tw/v2NbU
備註:如果作者不希望被轉帖到此處,請告知,小弟會馬上刪帖。
-------------------------------------------------------------------------------------
最近才看到Cheat Engine6.2 教程增加了step9,沒研究透,卡了一天,百度了一下發現國內好像還沒有人研究,或者是大牛覺得都很簡單沒必要發布...
托同事的福,下面是過程。
之前我把step9 想的太簡單了,這一步必須得懂匯編。
首先找到玩家1的生命地址,然後是基址。這步不說了,很簡單。 原文中有這麼一句話,
某處代碼可以區別兩隊。我原來沒仔細看,不過也實現了目標。
我的作法是,敵人生命始終大於100,只要判斷大於100的生命,就置0.
代碼注入:===============================================
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(cao2109)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [ebx+04],(float)200 //敵人的生命是500,無論是和200比,還是和100比都可以。
ja subhp
fldz
jmp returnhere
cao2109:
xor eax,eax
originalcode:
mov [ebx+04],eax
fldz
exit:
jmp returnhere
"Tutorial-i386.exe"+250C6:
jmp newmem
returnhere:
==================================================
點擊auto的結果是敵人會被秒殺,我方不掉血。
標準作法是這樣,分析兩隊結構,看圖。
寫入生命的地址是[ebx+04],那就去ebx+04 看看。右下角的幾行都是結構的內容,依次取出4個人的結構。
-----------------------------------------------------------------------------------------------------------------------------------------------
play1
28 FC 54 00 00 00 BC 42 FE 26 00 00 C9 A8 1B 00 0100 00 00 04 44 61 76 6500 00 00 00 00 00 00
play2
28 FC 54 00 00 00 B0 42 EF 04 00 00 DA AE 34 00 0100 00 00 04 45 72 69 6300 00 00 00 00 00 00
play3
28 FC 54 0000 80 F7 4314 10 00 00 89 14 2E 00 0200 00 00 03 48 41 4C00 00 00 00 00 00 00 00
play4
28 FC 54 00 00 80 F8 43 6B 10 00 00 F0 DE 13 00 0200 00 00 04 4B 49 54 5400 00 00 00 00 00 00
-----------------------------------------------------------------------------------------------------------------------------------------------
我標出的黃色區域就是表示兩隊的一個特徵。還是代碼注入:=====================================================
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [ebx+10],1 //10和A要分的清啊。
jne originalcode
fldz
jmp returnhere
originalcode:
mov [ebx+04],eax
fldz
exit:
jmp returnhere
"Tutorial-i386.exe"+250C6:
jmp newmem
returnhere:
=======================================================
這個是目前最簡單的解決辦法。
沒有留言:
張貼留言