【CE】圖形化CE游戲教程通關手冊
文章目錄
- 【CE】圖形化CE游戲教程通關手冊
- 導讀
- 需求
- 1?? 第一關
- 提示
- 操作
- 總結
- 2?? 第二關(代碼共享)
- 提示
- 操作
- 驗證
- 3?? 第三關
- 提示
- 提示
- 總結
導讀
需求
除了
Tutorial-x86_64.exe
教程外,CE還提供了圖形化教程gtutorial-x86_64.exe
。作為強迫癥
深度患者,自然是要把所有關卡都完成的,今天就按照小編的思路,一起通關圖形化作弊教程吧。
1?? 第一關
提示
Every 5 shots you have to reload.
after which the target will heal
Try to find a way to destroy the target
(Click to hide)
每 5 次射擊,您就會被重新加載目標,之后目標會愈合。
嘗試找到一種方法來摧毀目標。
操作
簡單的嘗試就明白,目標不會被直接摧毀,簡單的說,就是第5次執行的時候會被重置。
其實,這個5是個坑,我們應該做的是,將目標血量清零。
-
定位目標血量
-
1.1 按照下圖配置,進行首次掃描
-
1.2 執行一次打擊,然后設置掃描類型為
減少的數值
,點擊再次掃描
。
-
1.3 將掃描類型設置為
未變動的數值
,點擊再次掃描
(不斷的回到游戲,可以多次掃描未變動的數值
)。
重復1.2和1.3操作,射擊4次后,只剩下22個結果。
-
1.4 我們從結果中,可以看到兩個值為4的值。修改該值,目標血量也跟著進行了變化。可以猜測,該值就是我們想要的值。
-
-
找規律,我們重復攻擊目標,會發現,每次血量都會減少
24
點。
那么我們直接將血量改為24,是不是就可以完成任務了。嘗試之,的確有效。
不過,這里需要注意的是,不能在最后一次攻擊的時候設置24,否則依然會使得血量恢復。而且不能直接設置為0,攻擊沒有任何效果。
總結
- 搜索技巧:未知初始值、減少的值、不變的值。
- 多觀察、多猜測,每次減少24
- 不斷嘗試修改,并驗證,兩個血量就是目標血量,改了后能看到血量變化。
PS: 本關還有很多種解法,之前嘗試修改代碼,讓血量直接變為0,也能成功。
游戲本身就是這樣,不只有一種解法,縷清思路,不斷嘗試,總能找到合適的方案。
2?? 第二關(代碼共享)
提示
Step 2:
These two enemies have more health and do more damage to you than you do to them.
Destroy themTip/warning: Enemy and player are related
這兩個敵人和你相比擁有更多的血量、造成更多的傷害。
消滅他們。提示/警告:敵人和玩家是相關聯的。
操作
跟第一關相同的思路,我們應該做的是,將目標血量清零
。(盯著自己的血量不被清零比較難實現了)
-
定位敵人血量(參考第一關)
-
在兩個敵人地址上執行《找出是什么改寫了這個地址
F6
》,分別攻擊兩個敵人,定位到血量減少的代碼,如下圖: -
分析步驟2中的內容,發現減少敵人血量代碼的是同一塊(減少自己血量的代碼也是這里)。
那么直接修改該處代碼,當rax分別是0x00000000116F8D00
和0x0000000011927580
時,將其血量清零,是不是就可以了呢? -
在地址
"gtutorial-x86_64.exe"+400E3
(第2步中截圖中的指令地址)處,增加代碼注入,生成模板代碼如下:
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"gtutorial-x86_64.exe"+400E3)
label(returnhere)
label(originalcode)
label(exit)newmem: //this is allocated memory, you have read,write,execute access
//place your code hereoriginalcode:
sub [rax+60],edx
ret
add [rax],alexit:
jmp returnhere"gtutorial-x86_64.exe"+400E3:
jmp newmem
nop
returnhere:[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"gtutorial-x86_64.exe"+400E3:
sub [rax+60],edx
ret
add [rax],al
//Alt: db 29 50 60 C3 00 00
- 在newmem: 下面增加如下代碼:
cmp eax, 0000000011927580
je kill
cmp eax, 00000000116F8D00
je killjmp originalcodekill:
mov edx, [rax+60]
sub [rax+60],edx
ret
比較修改前后代碼,如下圖(包含代碼含義):
上面的匯編代碼可以有很多種,只要能完成任務即可。
驗證
這個操作需要特別注意
,需要快速攻擊兩個敵人,時間不能差太多,否則會出現第二個角色回血的現象。
等待敵人被命中,將會彈出成功的對話框。
3?? 第三關
提示
Step 3:
Mark all platforms green to unlock the door
Beware: Enemies are 1 hit kill(and bad losers)
Have fun!Hint: There are multiple solutions
e.g: Find collisiton detect with enemies.or teleport, or fly
Or ..
把每個平臺標記為綠色可以解鎖那扇門。
注意:敵人會將你一擊致命(然后就失敗了)
玩的愉快!提示:有很多解決方案。
比如:找到與敵人的碰撞檢測,或者 Teleport(傳送),或者飛行,或者...
提示
根據提示,首先想到的就是坐標,玩家移動,坐標將被修改。
-
搜索出玩家橫坐標地址。
按左右鍵不斷移動玩家,搜索變動的數值
。
一直按左鍵,游戲邊界檢測,玩家坐標不會變化,搜索未變動的數值
。
不斷重復上面的操作。
(PS:修改0x01631550
的第一個字節,玩家會消失,猜測是玩家是否掛掉的標記)
-
確認縱坐標
在內存窗口中,查看0x01631550
地址。
按空格鍵,使玩家跳起來,觀察到0x01631558
地址的值會變化,確定縱坐標(修改該值為0,玩家會從高處落下!!!)。
-
修改代碼,實現玩家飛行
右鍵0x01631558
地址,選擇菜單《找出是什么改寫了這個地址F6
》。
按空格鍵,使玩家跳起來,會發現有兩處地址改寫了縱坐標
。NOP
掉這兩處代碼即可。
其實 簡單點 基本x,y 會一起編寫 這樣 y地址 = x地址 + 4 。當然也會存在個別的時候。
-
修改
縱坐標
,按左右鍵移動橫坐標,使所有平臺標記為綠色
。
-
測出地圖中右下角坐標(0.97,0.86),修改玩家坐標,使玩家
瞬移
到右下角。
總結
整體分析過程梳理:
- 確認橫坐標:搜索內存,分析出玩家坐標地址。
- 確認縱坐標。
- 修改代碼,實現玩家飛行。(nop掉修改用戶縱坐標的代碼)
- 修改玩家縱坐標,按左右鍵移動橫坐標,使所有平臺標記為綠色。
- 測出地圖中右下角坐標(0.97,0.86),修改玩家坐標,通關。