吾愛破解 - LCG - LSG |安卓破解|病毒分析|破解軟件|www.dypczhxn.cn

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 10252|回復: 146
上一主題 下一主題

[原創] 星際爭霸v1.08修改作弊指令(上)

  [復制鏈接]
跳轉到指定樓層
樓主
丸子de爸爸 發表于 2019-8-31 13:14 回帖獎勵
本帖最后由 丸子de爸爸 于 2019-9-11 17:52 編輯

前言

星際爭霸的作弊指令大家應該多有聽過,但是有幾個能夠全部記住呢?老年人更是難上加難,今天我們就來解決一下這個問題。

PS:

有一段時間沒有發文章,真的不是偷懶,單單是這一篇文章我就整理了三天,每天至少4-5個小時。有很多東西,做起來很容易,但是一到講解的時候,總擔心講的東西太多,又擔心講的東西太少,來來回回整理了很多遍。

最終還是決定把這篇分成兩部分:第一部分著重分析關鍵方法和地址,第二部分再來著重講匯編。

相關基礎知識請查看第一篇基礎知識部分,不做重述。http://www.dypczhxn.cn/thread-1011457-1-1.html

本文中大段文字的概念已經在目錄標識,怕瞌睡的朋友可以跳過。

文章純屬研究,切勿商用。轉帖請注明出處,謝謝。

步驟簡介

  1. 按照流程圖,分析出秘籍的執行是按下回車之后校驗執行,先找到回車后執行的方法位置。
  2. 輸入特定的秘籍,使用CE搜索秘籍內容,進一步確定執行秘籍方法的位置。
  3. 找到存放輸入內容內存的位置,在按下回車的第一個將訪問他的方法前面修改代碼,更改內存值,達到快速作弊指令的目的。

詳細步驟

關卡選擇

首先還是選擇單人模式→original→里面的人族戰役模式boot camp,因為沒敵人攻打,安靜。

思路分析

邏輯流程圖

之前的文章也提到過,如果你要破解,第一步,你要明白他的正確流程。

我們這里是希望能夠通過簡易的輸入,來達到調用系統作弊的方法,所以我們先把正確的邏輯理出來。

好,如此我們就得到了一個簡單的流程圖。接下來就開始找突破點了。

PS:不要問我這個怎么圖怎么得來的,就是你游戲過之后的推測而已,破解原則上就是一種推敲,然后根據你發現的線索一點點的還原真相。

突破點分析(大段文字)

怎么確定我們從哪個判斷入手呢?也簡單,我們的需求,是輸入1、2、3能夠執行對應的作弊,那我們直接看看,哪一步會阻礙我們的執行。

很明顯,在“秘籍是否正確”這個判斷這里,會阻礙我們的需求,所以,先解決他。

那怎么該從哪里入手呢?也有以下兩個方案(適用于所有游戲),分別問“順流”和“逆流”:

1.“順流”方案,即按照流程來執行,利用一切正確邏輯可能用到的資源,對程序進行正向的分析,找到關鍵邏輯。

優點:思路清晰,相對于“逆流”方案,速度更加穩定。很容易弄清楚代碼真正邏輯,對自身學習成長幫助較大。

缺點:速度相對“逆流”方案較慢,而且需要一點編程上的知識積累(相信我,真的只是一點,別看到就否了)。

PS:所謂一切可能用到的資源,其實就是一種邏輯細化,將界面元素結合你所擁有的知識,再次細化流程圖,而分析出關鍵邏輯位置。

2.“逆流”方案,即:使用個例來逆推出關鍵邏輯。比如此處,我們由于知道金錢是可以作弊的,所以,我們可以檢測金錢,通過查找金錢變化的方式,慢慢的找回到關鍵邏輯。

優點:方法靈活,在特定的方式下使用,定位方法速度極快。執行步驟直觀簡單。

缺點:需要你的想象力很強,定位速度不穩定,“非洲酋長”檢驗神器。完全為了結果而執行,提升有限。

這兩個方案其實都很好,就像籃球里的“學院派”和“街頭派”,各有各的厲害,取長補短,合理運用才是王道。建議在沒有頭緒的時候,使用“順流”。在需要快速定位關鍵方法時,使用“逆流”。

講了這么多,真的可能會覺得我有點啰嗦,但是如果這么點啰嗦看不下去的話,下面的內容估計....

CE查詢關鍵功能地址

大爺別走,真的開始了。我們先按照邏輯,回車,然后查看界面元素。

找到一個元素,界面上出現了一個“Message:”的文本,是讓我們在里面打字的。


好,此時,我們可以細化流程圖了。我下面就只畫整體流程圖的一部分,請結合上面的一起觀看。

所以此處我們可以得出結論就是,這個“Message:”的繪制, 是在秘籍執行方法調用之前。

于是,我們可以利用這一點,來找到哪里是調用回車的關鍵方法。

打開CE,附加“starcraft”。修改“數值類型”為字符串,搜索“Message:”。

發現只有一條記錄,繼續右鍵“查看什么訪問了地址”,并允許附加調試器。

切回游戲畫面,發現數據一直持續增長。這里是由于我們已經打開了回車,游戲一直在重繪畫面,所以沒有一個打開的標志。

回到游戲,按回車關閉輸入框“Message:”,然后再次打開。再回到CE查看,發現有一個只有一次的標志了。

點擊“顯示反匯編程序”,可以發現一個明顯的ret,是可以回到之前方法的調用,先回去看一看。

在定位到的位置,F5打斷點,然后切回游戲,一步步執行到ret。(如果斷點有問題,可以打在第一行PUSH EBX那)

這里打完斷點需要重新回車兩次,因為目前斷的是顯示“Message:”的位置

PS:我們當前定位的方法,大概猜測,這里就是一個繪制文字的方法。

再多按一次F8,返回到外部程序。

此時我們會發現,上方不遠處有一個JE的跳轉,而我們的當前的位置正好在這個跳轉的里面,說明跳轉沒有執行,也說明了,其實這個JE就代表的是回車是否按下的判斷。

ctrl+B,刪除所有斷點,然后在JE處斷點,F9讓程序跑起來。然后回到游戲,再次按下回車,發現已經可以斷住了。此時JE跳轉實現,說明跳轉是進入的確認回車的操作。那這里就可以作為我們要找的“回車確認秘籍”的入口(不記得的見流程圖2)。

到這里又要停一停了。我隨便跟了一下,發現茫茫多的call方法,call方法里面還有call,而且里面還有別的工具類調用,我的天,跟下去是能找到,但是人都要沒了。

于是在當前的基礎下,繼續細化,用特例代替范例,逆一下。

于是以“show me the money”為例。(有人不明白為啥要特例,因為特例你可以直接查內存,就很快可以找到調用)

在游戲中回車輸入“show me the money”暫時不按下確認。在CE中搜索字符串“show me the money”,得到一條記錄。

PS:如果按下回車就卡住了,沒法輸入命令就是進斷點了,回車斷點是只要按下就進入,自己沒事多按按F9,后面不再重復解釋了。

選擇“什么訪問了地址”,然后返回游戲界面。又出現一堆增加的數據,不理他,回車,然后回到CE查看。

此時會進入斷點,并且什么訪問里出現了計數只有1的調用記錄。

而且原本內存中顯示秘籍的值為空了,這其實說明,秘籍確認的點,已經運行了,在我們斷點的前面。

如果在斷點后面,此時應該不會顯示1個訪問,內存也不會為空,因為他被斷點停住了,直到我們運行到他的方法時候,才會運行。

不過也沒關系,這樣我們更近了,往前找就是了。

在反匯編窗口中,右鍵剛才的JE行選擇,“選擇當前函數”。

PS:新斷點打的時候可以考慮把老斷點刪掉,免得調試的時候不流暢。

CE會自動跳到方法頭,并將整個方法標注顏色,在方法第一行打入斷點,然后再回到游戲。

輸入"show me the money"直接回車。

在輸入過程中,發現CE中的搜索結果地址居然也直接在變化,那看來這個地址是用來存放用戶輸入信息的。

進入斷點,這次是不是不一樣了,搜索值依然存在。而且單獨計數的那個訪問沒有出現。

說明我們已經來到了關鍵邏輯的前面,接下來就是一步步F8向下執行,找到關鍵邏輯所在。

發現走到第二個call方法時,“什么訪問了地址”的紀錄變化了,說明這個方法讀取了內存信息,所以我們在這里斷點。因為程序不能逆向運行,所以要重新再來一次。按F9讓程序繼續運行。

選擇“瀏覽相關內存區域”。

在游戲中再次輸入"show me the money"并回車,然后回到CE。

發現內存中已經存在“show me the money”,雙擊紅框處的數字,將前兩個數字修改值為49,點確定。

此時在右邊的文字會變成11ow me the money(綠色部分)

PS:在方法執行前修改掉內存的值,即讓秘籍不正確,這是如果還能執行秘籍,就說明需要繼續找。如果不能執行秘籍,說明此處修改就可以達到修改目的。

按下F9讓程序運行,發現秘籍真的沒生效。看來在這里修改內存,就可以達到我們需要的效果。

進入方法里,發現ecx的值就是輸入的內存地址,所以可以直接引用動態地址了。

紀錄下左側的地址,我此處是"004BEDFC"。

PS:這里不是說非要動態,其實這個偏移地址也是可以跳轉的,但是比較麻煩,在老式的程序可以直接紀錄動態,他一般都從00400000開始。新程序就最好紀錄偏移地址了。

怕大家不理解過程,所以再更新一下流程圖如下:

OllyDebug修改exe

由于這次的內容已經很巨大了,本篇僅提供內容,具體分析留到下一篇。

退出之前的游戲和CE。在OllyDebug中打開程序,使他運行起來(同樣記得進入單人關卡)

在OllyDebug中,Ctrl+G,跳轉到我們紀錄的地址地址"004BEDFC"(你也可以試試偏移地址)

在OllyDebug翻到最下面,選一個沒有代碼的行,我這里選的是“004ECDC0”

逐行輸入下列代碼(啥意思下篇詳解)

push eax                               備份之前的寄存器內容,怕出BUG。其實這次的需求不寫也行,好習慣。
mov eax,dword ptr ds:[ecx+0x14]        將輸入內容讀到寄存器eax中
cmp word ptr ds:[eax],0x31             比較輸入的值是不是1
jne short 004ECDEB                     這跳轉你要看你們自己的,跳轉到pop eax那一行
mov dword ptr ds:[eax],0x776F6873        內存寫入"show"
mov dword ptr ds:[eax+0x4],0x20656D20    內存寫入" me "
mov dword ptr ds:[eax+0x8],0x20656874    內存寫入"the "
mov dword ptr ds:[eax+0xC],0x656E6F6D    內存寫入"mone"
mov word ptr ds:[eax+0x10],0x79          內存寫入"y "
pop eax                                還原寄存器內容
call 004E6030                          調用原來正常邏輯需要調用的方法
ret                                    返回引用處

然后回到004BEDFC處,將代碼改為call 004ECDC0,也就是調用我們的這個方法。

PS:簡單的說我們做的動作就是,在執行他本身的方法之前,插入了我們的判斷。

接下來就是保存了,老規矩,“復制到可執行文件”→“所有修改”

彈出框選擇“全部復制”,之后保存文件,名字隨便改。

把修改好的exe拷貝到游戲目錄,運行,輸入1回車,是不是直接回錢了。搞定。

如果想要其他的秘籍也生效,只要接著寫判斷就行,在下篇中我們詳細演示。

結尾

本來想一篇寫完的,奈何篇幅還是巨大,隨隨便便就3000多字了,還沒有包括OllyDebug的一些分析和匯編的分析,所以把這部分放到了下一篇著重分析。

再對破解的思路來一個總結吧:

  1. 使用“順流”法往往會讓你很快找到突破口。
  2. 按照游戲邏輯建立流程圖,有利于對程序的分析。
  3. 使用“逆流”法往往會讓你更快的找到修改點。

本次修改內容很多,附上修改后exe文件,7天有效。請大家切勿商用,支持正版。
鏈接:https://pan.baidu.com/s/1UpCbbYoBtkqgmzSlzSb_Mw
提取碼:qwug

我是下集傳送門

免費評分

參與人數 41吾愛幣 +48 熱心值 +39 收起 理由
heavy_fire + 1 + 1 厲害了哥,這都能研究出花來
chenmintian + 1 + 1 [email protected]
ɑ_淘_氣_゛ + 1 + 1 [email protected]
CYQDWY + 1 + 1 我很贊同!
嘉言懿行Jacky + 1 + 1 我很贊同!
杰洛特666 + 1 + 1 熱心回復!
ysmjaycn + 1 + 1 我很贊同!
校門口的萌新 + 1 + 1 用心討論,共獲提升!
N0LL + 1 + 1 [email protected]
JuDei + 1 + 1 [email protected]
幻夢云生 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
火紅辣椒一大把 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
mafei3709 + 1 + 1 熱心回復!
清炒藕片丶 + 1 思路賊清晰,感謝分享
poisonbcat + 1 [email protected]
hu330800 + 1 + 1 我很贊同!
djinni + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
goldengod + 1 我很贊同! 回來看看老星際
zbaby523 + 1 + 1 [email protected]
赤夜 + 1 + 1 LZ能不能改個1.14版的客戶端啊 1.08用著好不習慣的說 好多操作細節沒有1.14.
Peace + 10 + 1 樓主可以參加論壇組織的動畫大賽了
JuncoJet + 1 + 1 show me the daddy
坐久落花多 + 1 + 1 感覺再完善一下拿這個當畢業論文好像都可以。。。
阿浩samA丶 + 1 + 1 [email protected]
天下武功 + 1 + 1 星際被你玩出了,高端、大氣、上檔次
leeairw + 2 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
ytfh1131 + 1 + 1 我很贊同!
panghong4567 + 1 用心討論,共獲提升!
SYWZWL + 1 + 1 我很贊同!
笙若 + 2 + 1 [email protected]
偏執的少年 + 1 + 1 我很贊同!
為海爾而戰 + 1 + 1 我很贊同!
fergus1987 + 1 + 1 [email protected]
漫漫羽化 + 1 + 1 熱心回復!
長安某 + 1 + 1 我很贊同!
KevinStark + 1 + 1 熱心回復!
asq56747277 + 1 + 1 [email protected]
睡覺 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
gaga520451 + 1 感謝分享 只是玩的人少了 很懷念這個游戲的時候 我還在上學
sangong + 1 + 1 我很贊同!
qws1855 + 1 + 1 [email protected]

查看全部評分

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

推薦
smnhxy 發表于 2019-9-1 15:31
  2000年的時候我在沈陽,第一次玩星際玩不過,后來聽說有秘籍這個東西,然后就去圖書館找電子書翻找星際秘籍,找到后抄本子上帶回來~~~~~~話說我學習都沒這么認真過。。。。。
推薦
追風紙鳶 發表于 2019-8-31 14:18
4#
a517753728 發表于 2019-8-31 13:21
技術還沒達到你的標準 還是感謝分享 努力學習
5#
leroy81831 發表于 2019-8-31 13:30
這個厲害了
6#
Dino1209 發表于 2019-8-31 13:31
謝謝
收藏了
滿滿回憶啊,那時候去網吧抄星際很快樂!
7#
biglolo 發表于 2019-8-31 13:46
謝謝分享
8#
qws1855 發表于 2019-8-31 13:55
感謝分享
9#
someone01 發表于 2019-8-31 14:13
樓主 太調皮了!這個有點意思!
10#
alfred_woo 發表于 2019-8-31 14:27
懂了。把修改好的exe拷貝到游戲目錄,運行,輸入1回車,是不是直接回錢。搞定。
11#
forrest888 發表于 2019-8-31 14:35
有意思,感謝分享
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:禁止回復與主題無關內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|聯系我們|吾愛破解 - LCG - LSG ( 京ICP備16042023號 | 京公網安備 11010502030087號 )

GMT+8, 2019-10-17 16:02

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
现在靠网络挣钱的方法