CE-植物大战僵尸(1)
植物大戰僵尸逆向分析報告:
一、針對陽光值:
1.采用3種以上的方法掃描至少3關的“陽光值”的內存地址,并能修改
(1)精確值修改陽光值:
(2)根據增加的數值或減少的數值改變陽關數
(3)根據數值增加了或者數值減少了改變了陽光數
2.找到陽光值的內存基址,簡述如何分析和找出基址的過程
因為要實現修改陽光值,所以要找出游戲中存放陽光的內存地址,然后通過API函數進行內存修改,但是每次運行游戲時這個內存地址都不一樣,所以要找出基址。
查找出1EED7B60這個地址點擊右鍵->查找什么訪問了此地址
雙擊第一個MOV指令查看更多信息,如下圖:
3.畫出陽光值的內存訪問示意圖或工作原理
4.分析陽光值功能實現的設計算法
#include <stdio.h>
class SunClass{
public:
int SunTime;
int SunValue;
int SunAttr;
};
int main()
{
SunClass *Sun=new SunClass;
Sun->SunValue=100;
printf("SunValue: %d
",Sun->SunValue);
return 0;
}
5.分析陽光值的相關匯編語言代碼的工作過程
當我們用鼠標右鍵點擊降落的陽光值或向日葵生產的陽關值時,陽關值增加。
當我們用鼠標右鍵點擊安放植物的時候,陽關值減少。
6.觀察“陽關”的其它屬性,并采用上述(1)-(5)的方法分析之
修改陽光值
鎖定陽關值
當使用植物后,內存至由0開始增加,這個增加的過程就是我們的技能CD
當植物處于亮色的時候,內存值為0。
當植物處于暗色的時候,內存值為非0。
當內存值達到一定數值后,又會自動歸零。
通過多次掃描篩選出6個結果
實現的向日葵卡片的無CD
點擊是什么改寫了這個地址
由此實現了所有的無CD
二、針對植物
1.采用3種以上的方法掃描至少3關的“植物”的內存地址
(1)第一種:
通過不斷拿起放下進行0、1掃描
(3)第二種:
打開游戲在CE中選擇“未知的初始值”,點擊首次掃描。
然后再游戲中點擊某一植物,但不種下;隨后在CE中選擇“變動的數值”,點擊再次掃描。
接下來不對植物進行操作,選擇“未變動的數值”,點擊“再次掃描”,反復進行該項操作直至發現點擊“豌豆射手”后,有的數值變為0,點擊向日葵,有的值為1
總結
以上是生活随笔為你收集整理的CE-植物大战僵尸(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界服务器领地系统,我的世界服务器怎
- 下一篇: GPS坐标互转:WGS-84(GPS)、