紅色警戒2修改器原理百科(九)

2022-09-04 07:03:07 字數 2472 閱讀 2492

完結了乙個相對比較複雜的修改,其實說起來也簡單,如果不去理解資料結構只追求修改效果的話。筆者的乙個原則就是要搞明白:怎麼找到的,怎麼改,為什麼。乙個線索無法伸展了,換個點,就來下面這個吧。

這次我們想試試新方法,這個方法在一些遊戲中有奇效,簡單快捷方便,一秒鐘滿足你!有時很有效的的大殺器——字串搜尋。從我們最初修改地圖全開時,我們就發現遊戲程式中包含一些字串,那麼不能建造有沒有對應的字串呢,有的話是什麼字串呢?字串最常見的是顯示在遊戲畫面中,紅警中是語音。當不能在某處放置建築物的時候,你會聽到「can not deploy here」,我們就搜尋「deploy」字串,如果聽不懂「deploy」就試試「here」嘛。

od搜尋字串,然後查詢,找到如下結果:

有3個,雙擊來到對應位置,全部下斷點。為什麼是「eva_」開頭,猜想因為遊戲中是個女聲提示,「eva」是乙個女名「伊娃」。吐槽下,難道是男聲還要「bob」開頭!言歸正傳,接下來就是去洗洗臉,坐等遊戲斷下來?

好了,等了3個多小時,遊戲終於斷下來了。

你信嗎?而且是斷在了0049bdeb,國際慣例,找跳轉——觀察周圍有沒有跳轉不執行這段**。

我們來看看程式中大概是什麼樣的流程:

//判斷能否放置

if(candeploy() == true)

deploy();

else

canot();

//繪製提示顏色

if(candeploy() == true)

drawgreen();

else

drawred();

上面看出,我們只要修改了candeply()這個函式,就能同時改變繪製的顏色和放置判斷。我們已經找到了關鍵的跳轉了,上面附近就應該關鍵的call。跟蹤這個函式的執行,可以找到關鍵指令:0049bbc9  call    004991d0。使其返回1就可以了,修改如下:

004991d0:

mov eax,1

retn 10 //平衡堆疊

這樣還直接省去了遊戲複雜的判斷,提高了執行效率。紅色警戒2修改大師,修改了第乙個跳轉,效果是相同的。也是我嘗試這麼多紅警修改器以來第乙個能顯示綠色任意建造的修改器。其它修改器離優雅只有一步之遙……用破解中的術語就是,關鍵跳和關鍵call:改跳轉只能該處起作用,改call可以影響所有呼叫的地方。

由於之後就沒有什麼新的尋找思路和方法了,在此之後只給出提示和結果。

方法1.位元組,建築物的+5b8偏移 = 修理標誌;ce搜尋位元組型別,修理狀態查詢1,不修理查詢0,反覆幾次後結果數量不再減少,篩選遊戲單位位址後面不太遠的位址即是。

方法2.呼叫call

//作用:修理建築

//思路:改寫修理標記,返回一層

//備註:參考指令下方case16是**單位;聯網可用

pushad

mov ecx,單位位址

mov edx,[ecx]

push -1

call [edx+184]

popad

ret

結合第五篇講的的遍歷遊戲中所有單位,並判斷歸屬,選擇上述其中一種方法即可。

//作用:獲取單位****

//思路:賣掉建築物金錢增加,返回1層

//...保護現場

mov ecx,單位位址

mov eax,[ecx]

call [eax+29c]

//...恢復現場及返回

//作用:**單位,可以直接**奶牛刷錢,不需要複製工廠

//備註:此函式聯網不可用;可以賣出非己方單位

pushad

mov ecx,單位位址

mov edx,[ecx]

push 1

call [edx+188]

popad

ret

1.搜尋出當前佇列剩餘數目  

選擇乙個兵種建造,暫停(為了方便),然後建造另乙個同型別(都是步兵,或都是戰車…飛機不屬於戰車,戰船也不屬於)兵種,增加或減少此兵種的佇列數量,ce精確數值搜尋即可。注意,暫停的那乙個單位因為已經開始建造了,不包含在等待建造的佇列數目之內。

例如:

,要搜尋10

2.查詢誰改寫了

找到增加的那一條指令(004b94fb  mov [esi+10], ecx),附近可以分析出[game.exe+439848]+e8=最大佇列數目。

當然也可以改跳轉。

to be continued…

紅色警戒2修改器原理百科(三)

繼續上次,上次給出的開全圖,是不能看透盟軍的裂縫產生器的,有的修改器的開全圖是可以看透的。它的原理是修改了判斷迷霧的乙個關鍵跳轉。此處不多說,本人覺得不夠優雅 能少改動 則少改動 當然他也有自己的優勢 看透裂縫產生器。可能在最後補充中,再加上吧。當然,如果你事先查詢了一些關鍵字串,可以直接快速的定位...

紅色警戒2修改器原理百科(一)

紅色警戒2,乙個經典的遊戲。我上初中時經常週末回到家就開始玩任務模式,然後半天過不去一關,就開外掛程式 開外掛程式虐冷酷的不開超級 的電腦。先說一下版本,原版v1.006。其他版本只是基址不一樣,可參考思路,如共和國之輝。當時比較好用乙個外掛程式是勝利之歌的紅色警戒2記憶體修改器,還有就是紅警全能王...

MongoDB 資料操作(三)資料更新(2)修改器

對 mongodb 資料庫而言,資料的修改會牽扯到內容的變更 結構的改變 包含陣列 所以在 mongodb 設計的時候,就提供有一系列的修改器的應用,如之前的 set就是乙個修改器 1 inc 針對數字字段,增加某個數字欄位的資料內容 將年齡為 19 的成員的成績全部減30,並且年齡 1 db.st...