[爆卦]softmill破解是什麼?優點缺點精華區懶人包

為什麼這篇softmill破解鄉民發文收入到精華區:因為在softmill破解這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者if4 ( )看板Old-Games標題[轉貼] 軟體破解原理(轉貼藍風文章)時間Sat Apr...


轉錄一篇骨灰級的文章,藍風寫的軟體破解原理。

第1部分)

作者 : Alfred Li 1

本人以前對破解方面一無所知,而現在我已經破了一些的 game 了,實
感高興!!但對無敵方面還是不太了解,希望能跟大家多學習,我之所以寫這
一篇文章是希望玩電腦的同好們都能深入這一個破解的世界!!不管你現在
的功力如何?我都希望你能把它看完!!因為我只破了一點點的 game ,要是
你是這一方面的高手的話,相信你一定覺的這沒有可看性,的確......如果
你是對這一方面都一直很好奇的話,而又不太了解,那你一定要看了. 我所
寫的都是一些很簡單的道理,只要你懂 pctools , debug , 和一些簡單的
組合語言就可以了!!

我目前只是針對密碼方面,而破了 :

大宇 超級橋牌 ┌─────────────┐
軟世 方程式機車賽 │ 一點點啦...請多多指教!! │
歐風 信長之野望 │ │
XXXX  燃燒野球 II └─────────────┘



雖然是一點點啦!!不過因為我從接觸到破解,只有短短的兩天而已,
所以頗有一些心得,我再說一次....我寫這一篇文章是針對對這一方面有
興趣而都不知道如何破的人所寫的,要是你是高手的話,請不要看!!!不然
你會覺的都是一些簡單的道理(對你來說!!)OK.....

好了,言歸正傳!!.....要想破一些密碼的話呢?必須要有一點點組合
語言方面的常識,不然到時候你近去 debug 時,你會 某仔訝 哦!!不要來k
我耶!!所以我看還是去看一點點這一方面的書籍好了 ,我也會在本文中提
到的,以免有一些懶得動的人........嗯嗯......


□■ 軟體需求:

1. 反組譯和追蹤軟體: debug 或 symdeb 或更新版的.
2. 電腦工具: pctools 或能更改程式內容的軟體.
3. 還要會組合語言,令人頭疼的!!

令一方面還要拿一張紙和一隻筆來做記錄用的,以便看程式進行到那
裡,這樣一方面也可以很清處的看到程式的主要流程(密碼部份)!!一方面
當機時也可以從這裡就開始,以節省時間!!

好現在要進入最精彩的部份了........ ready!!ok....let`s go !!

我在下一篇文章會用實際的程式來作追蹤,目前只用說的 ,因為那是你必
需要先知道的呀!!進入 debug 之後,你可以先隨便載入一個 file ,必須
要是 .exe 或 .com 的.

C>DEBUG
-N D:\GAME\HB2\HB2CGA.EXE 先試試看!!如果你懂的話,那是很
-L Easy!!
-A 3865:0012
3865:0012 _ N 是要準備載入的檔名 L 是載入
-U A 是編組 80X86 程式 U 是反組譯
3865:0012 E8EC16 CALL 1701
3865:0015 90 NOP
3865:0016 90 NOP 這是一個燃燒野球II 的一部份
3865:0017 0E PUSH CS 現在我就為這個來做說明:
3865:0018 1F POP DS
3865:0019 A30400 MOV [004],AX
3865:001C 03060C00 ADD AX,[000C]
3865:0020 8ECO MOV ES,AX
│ │ │ │ └──────5.這是要讓 ASM 做的事情!!
│ │ │ └─────4.這一部份是 ASM 的指令!!
│ │ └──────3.★★這是機器碼.就是我們所要改的地方★★
│ └─────2.這是 IP 會隨程式的指令而變.
└────1.這是 CS ,你的可能會和我不一樣...


現在對 DEBUG 有了一個認識了吧!!SYMBED 的用法和 DEBUG 是很相似的!!
我不多說了.....
4 是我們所要學的,指令有上百個,還有子命令呢!!所以我們只要記幾個就
好了....

CALL 呼叫副程式
CMP 比較
JXXX 跳躍 ★★ 我們大部份都是要改這裡的 把 JXXX 改成 JMP 或 NOP!!
REPF 反回 CALL

夠少了吧!!這樣就可以破 GAME 了,只是你會很花時間,因為你最好好是要會一
些的指令啦...像 mov , int xx , 等等...會越多越好!!
我們所要破 game 是要用 debug 幫我們反組譯,然後再用 pctools 來修改.然
而不是一下就會成功的,所以你必需要先把 .com .exe 備份以防毀掉!!
破 game 的過程通常是這樣的,先找我上面所說的指令,然後 g <address>....
看看它什麼時後會叫我們要輸密碼!!如果是話,通常很有可能就是這個 address
的問題了,只要把 jxxx 改成 JMP 無條件跳躍 或 NOP 無動做,它們的機器碼是
EB 和 90 這是很重要很重要的啦...你不記的話..就沒法度了!!

只要把它改成那樣就 OK 了...現在我只是用說的而已...希望你能看的懂
,如果不懂的話那下次我就準備要用實例來說明了....你可以寫信給我........

ID : Alfred Li 高雄人啦....
筆名: 藍 風

相信有你的信給我鼓勵我一定會很高興!!在繼續寫下去.....到目前為只都
還沒有什麼困難吧!!解久了就會了解它有一定的模式....還有如果有一些指令都
看的懂,那對你的程式的流程就會覺的很簡單,對我們解密碼都會有很大的幫助哦
!!

如果對 debug 還以不了解的話,那趕快寫信給我吧.....會有什麼疑問的..
都歡迎....交個朋友也可以! bye bye !! 下次見了.......



... 藍 風 ...

第2部分)

作者 : Alfred Li 2

要破解 game 必需要有耐心,恆心,和毅力!!所以當你怎麼破也破
不了來的時後,那就表示你的功力還差一結,要跟我多學學啦......密
碼表方面可分為兩種.

1. 文字模示.

2. 繪圖模示.

以前者比較好破(筆者覺的啦),而有的 game 還會兩種都一起出來
,真傷腦筋耶!!像 方程式機車賽,就是一個典型的例子!!而這次筆者決
定要以 方程式機車賽來作說明!!雖是很久以前的 game 了, 但 game
不在於新或舊,只要有密碼的 game 都應該嘗試看看!!

載入 gpcga.exe

我先要說明的一點是...我先會把要改的碼先列出來給你們看!!
我有兩個流程,第二個才是我們如何來正確的修改,而第一個只
是要讓大家了解一下,對程式比較有幫助!!

┌────────────────────────────────┐
502B:0012 E8C20A CALL 0AD7 ────> 程式一開始就跳到 0AD7 的位 │
502B:0015 0000 ADD [BX+SI],AL 址上!! ┐ │
502B:0017 0E PUSH CS ┌─────┘ │
502B:0018 1F POP DS │ │
502B:0019 A30400 MOV [0004],AX │ ★CALL 是呼叫副程式!! │
502B:001C 03060C00 ADD AX,[000C] │ 所以它的 HEX 碼是 E8 ───┘
502B:0020 8EC0 MOV ES,AX │ 而遇到 RET 返回.....
502B:0022 8B0E0600 MOV CX,[0006] │ 將來如不須要出現叫我們
502B:0026 8BF9 MOV DI,CX │ 輸入密的碼的畫面時,就要
502B:0028 4F DEC DI │ 把它給關掉!!像是 E8C20A
502B:0029 8BF7 MOV SI,DI │ 改成 909090
502B:002B FD STD │ HEX 的 90 是無做用的!!
502B:002C F3 REPZ │ 這樣程式才會繼續執行下一
502B:002D A4 MOVSB │ 行!!
502B:002E 8B160E00 MOV DX,[000E] │
.... │
.... │
.... │
.... │
.... │
502B:0AD7 E8AD00 CALL 0B87 ┐ └─ 程式又跳到 0B87的位
502B:0ADA BA0008 MOV DX,0800 │ 址上去了!!
502B:0ADD B700 MOV BH,00 │ 所以我們先來看看此位址寫些
502B:0ADF B402 MOV AH,02 │ 什麼呢? ┐
502B:0AE1 CD10 INT 10 ├─┐ │
502B:0AE3 E80600 CALL 0AEC ┘ │ │
502B:0AE6 8CC0 MOV AX,ES │ │
502B:0AE8 051000 ADD AX,0010 │ │
502B:0AEB C3 RET └──────┼────────┐
502B:0AEC B42C MOV AH,2C │ │
502B:0AEE CD21 INT 21 │ │
502B:0AF0 80E63F AND DH,3F │ │
502B:0AF3 52 PUSH DX │ │
502B:0AF4 8AC6 MOV AL,DH │ │
502B:0AF6 D40A AAM │ │
502B:0AF8 0D3030 OR AX,3030 │ │
502B:0AFB BBC90B MOV BX,0BC9 │ │
502B:0AFE 2E CS: │ │
502B:0AFF 884701 MOV [BX+01],AL │ │
502B:0B02 2E CS: │ │
502B:0B03 8827 MOV [BX],AH │ │
502B:0B05 1E PUSH DS │ │
502B:0B06 0E PUSH CS │ │
502B:0B07 1F POP DS <───────┘ 啊哈!! │
502B:0B08 BAB50B MOV DX,0BB5 我們可以很清處的看到 │
502B:0B0B B409 MOV AH,09 MOV AH,07 │
502B:0B0D CD21 INT 21 INT 21 │
502B:0B0F 1F POP DS CMP AL,0D │
502B:0B10 BE0000 MOV SI,0000 JZ 0B13 │
502B:0B13 B407 MOV AH,07 │
502B:0B15 CD21 INT 21 這幾項...所以我敢肯定這裡 │
502B:0B17 3C0D CMP AL,0D 一定要叫我們輸入 PASSWORD │
502B:0B19 74F8 JZ 0B13 !!所以只要我們能把當初帶我 │
502B:0B1B 2E CS: 們來的 CALL 給 kill !!就 │
502B:0B1C 8884950B MOV [SI+0B95],AL ok了....但是有兩個 call 耶!!─┘
502B:0B20 B40E MOV AH,0E 到底那一個正確?如果你的 ASM
502B:0B22 CD10 INT 10 功力強一定可以看出...但是一
502B:0B24 46 INC SI 般人是不可能看出來的...所以
502B:0B25 83FE06 CMP SI,+06 只好試試兩次了,先關掉一個看
502B:0B28 75E9 JNZ 0B13 看....看到底是那一個!!
502B:0B2A B80000 MOV AX,0000 (筆者在此告訴你是第 2 個)
502B:0B2D 2E CS:
502B:0B2E 0226950B ADD AH,[0B95]
502B:0B32 2E CS:
..
..
..
..
502B:0B5C D0E6 SHL DH,1
502B:0B5E B700 MOV BH,00
502B:0B60 8ADE MOV BL,DH
502B:0B62 2E CS:
502B:0B63 3987D00B CMP [BX+0BD0],AX
502B:0B67 741D JZ 0B86 ──────┐
502B:0B69 E81B00 CALL 0B87 Here !!
502B:0B6C BA0000 MOV DX,0000 You Know !!
502B:0B6F B700 MOV BH,00 Ok !!
502B:0B71 B402 MOV AH,02 Good !!
502B:0B73 CD10 INT 10 Fine !!
502B:0B75 1E PUSH DS
502B:0B76 0E PUSH CS
502B:0B77 1F POP DS
502B:0B78 BAA00B MOV DX,0BA0
502B:0B7B B409 MOV AH,09


以上就是我們最主要的程式流程,以那個方法就可以破第一個密碼了,可以
不要有那個畫面出來了.當初筆者是改 502B:0B67 741D JZ 0B68
改成 EB1D JMP 0B68
^^
HEX 碼的 EB 是 JMP 無條件跳躍,背起來了嗎?
所以它還是會叫我輸入密碼,但我連續三次都輸
錯的但確可以執行,所以這樣也是另一種破解遊
戲的方法!!


這樣應該沒有什麼問題了吧....只要用 debug 找到它的 hex 碼,
在用 pctools 改...就可以了,只是不會每一次都讓你碰到,我也是要試一
段時間才能試出來,所以 file 要備份...以防被毀....

至於如何用 debug 和 pctools ,那可以寫信問我....我會很樂意
答覆你的,我的 ID 是 Alfred Li ....一定可以找到我的!!那今天就到這
裡結束了哦....第二個密碼我目前還沒找到破解的方法,所以第三集可能要
延後了.....如果你知道的話,歡迎你告訴我!!ok...相互研究.....


... 藍 風 ...

if 後記:
pctools 現在可能已經找不到了,建議用 UltraEdit 蠻好用的...

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.166.142
※ 文章網址: https://www.ptt.cc/bbs/Old-Games/M.1493429207.A.6DC.html

spark0409: 甘寧老師的組合語言QQ 04/29 10:15

這是基本的啦 :)

k8543: pctools 還在我的電腦裡,印象中以前只會拿它來看軟碟壞軌 04/29 10:33

看壞軌?怎麼看?@@

※ 編輯: if4 (111.251.166.142), 04/29/2017 10:43:12

k8543: 真的忘了 都二三十年前了 不過檔案還在電腦裡 04/29 10:53

我是想說...您應該記錯了吧?pctools 我是拿來改破解的
或是拿來改遊戲存檔的資料...什麼錢啊、糧啊...之類的 :)

※ 編輯: if4 (111.251.166.142), 04/29/2017 11:43:12

k8543: 修改我是有用過幾次,印象中可以看軟碟咧,先按M再按B之類的 04/29 12:28
k8543: 工廠還有機台是跑dos+軟碟的,不過懶的過去試了 04/29 12:29
k8543: 不曉得,真的忘了,但看看tools目錄裡,應該沒有別的軟體是了 04/29 12:31

可惜...我現在也不能試了...我根本沒軟碟機QQ
想說軟碟以後會被淘汰,率先拆除,其實,現在的工業標準
應該不能裝軟碟機的硬體吧?軟碟容量太小了,現在USB碟容量
蠻大的,攜帶又方便...

※ 編輯: if4 (111.251.166.142), 04/29/2017 13:00:34

Jedidiah: PCTools也是時代的淚眼啊XD也因為玩修改而踏進軟體這行 04/29 13:41
Jedidiah: 電腦桌上擺了一堆紙,上面都是滿滿的短除法 (算16進位) 04/29 13:42

滿滿的短除法?那是什麼?@@

DrizztMon: 現在比較想研究解包apk XD 04/29 13:56

解包apk?那是什麼?@@

唉...我懂得真少啊QQ

※ 編輯: if4 (111.251.166.142), 04/29/2017 14:15:35

snowwolf725: apk 是 Android 手機軟體的檔案格式,要修改要先會解 04/29 14:21

原來如此,謝謝告知^^ 那好像就是某種格式的壓縮檔吧?@@

※ 編輯: if4 (111.251.166.142), 04/29/2017 14:41:03

PTJobKing: 現在都用WinCV 原理是一樣的 功能也很方便XD 04/29 16:26

WinCV 好像以前有用過,但是不確定可以修改二(16)進位數值?

bnn: APK反編譯工具很多啊,dex2jar,jd-gui,ILSpy (.NET),... 04/29 16:45

謝謝提供資料,bnn大一定是程式設計高手,我都沒聽說過^^"

※ 編輯: if4 (111.251.166.142), 04/29/2017 17:21:58

h1236660: 我挺想知道地圖怎麼抓出來,比如軒轅劍二 04/29 21:12

我也想知道,有沒有大大會?能教一下嗎?^^

※ 編輯: if4 (111.251.166.142), 04/29/2017 21:17:40

playerlin: 現在在Windows下我是用WinHex(這套要$,所以...)。 04/29 23:19
playerlin: 不知道短除法?上課都沒在專心喔...而且為何不拜一下 04/29 23:21
playerlin: google大神呢 :P :P :P 04/29 23:21

我剛剛找到一個影片 https://youtu.be/fX6YC-r2MIw
我以前沒學過,可能我比較老吧,課綱沒列XD
不過我會~~也許是那時候不叫做〔短除法〕吧 :p

WinHex 要錢?為何我到官網下載回來,他完全不跟我提到錢
真佛心XD我下載的可能是試用版...orz

※ 編輯: if4 (111.251.166.142), 04/30/2017 11:34:48

nwlsa1098: 不是跳0B87嗎,怎麼位址是0807...... 04/30 13:39
nwlsa1098: 打錯,是怎麼指到0B07? 04/30 13:40

不知道是我抄錯還是原作者打錯...我再找資料看看...抱歉orz

我對過資料了...沒抄錯...應該是原作者筆誤喔~~

不然您也可以到對岸的看雪學院 http://www.kanxue.com
或看雪論壇 http://bbs.pediy.com 這裡研究破解資料喔^^

※ 編輯: if4 (111.251.166.142), 04/30/2017 14:58:42
※ 編輯: if4 (111.251.166.142), 04/30/2017 15:13:52
※ 編輯: if4 (111.251.166.142), 04/30/2017 15:24:47

playerlin: 最基本的是Eval.(評估)版,免錢,之後的都要$了。 04/30 16:16
playerlin: 當然評估版只有最基本的功能,我記得好像缺少我需要的 04/30 16:16
playerlin: 功能所以...... *化為煙* 04/30 16:17
playerlin: 如果需要反組譯,Hiew http://www.hiew.ru/ 這套也不錯 04/30 16:18
playerlin: 可惜一樣要$,而且介面比較陽春(?)... 04/30 16:19
playerlin: 想到了,WinHex評估版有存檔限制,只能寫入小檔案。 04/30 16:21
playerlin: 所以實在不好用,如果要改的檔案有MB等級就不能存了。 04/30 16:21

您的網址有右括弧,點網址會不正確,所以我幫您修正了。請見諒^^
您有在用 Hiew 嗎?好不好用?

※ 編輯: if4 (111.251.166.142), 04/30/2017 17:45:56

playerlin: 我只推它的Decode功能(反組譯),但是跟IDA那種等級相比 04/30 18:50
playerlin: 就有點陽春,雖然對我這極輕度研究者是夠了就是。:P 04/30 18:51

IDA 搜尋不知結果(太多可能了orz)可以介紹一下嗎?
也是反組譯工具嗎?有哪些功能呢?

※ 編輯: if4 (111.251.166.142), 05/01/2017 22:53:14

playerlin: IDA Pro是專業級的工具,其實反而對我而言太複雜不會用 05/02 23:48
playerlin: lol...但是它可以分析機器碼轉為設定好的特定CPU組合語 05/02 23:49
playerlin: 言並描繪出程式碼運作的圖表等。 05/02 23:50
playerlin: 這套也是要$,雖然有免費版但是版本是有段時間的5.0版 05/02 23:51
playerlin: 不包含之後版本新增的功能(如果是對DOS老遊戲除錯應該 05/02 23:52
playerlin: 可能夠用了)。 05/02 23:52
playerlin: https://tinyurl.com/lkkw4dh 隨便找一個陽春的教學 05/02 23:55
playerlin: google "IDA Pro教學" 應該能找到其他較複雜的。 05/02 23:55

嗯,謝謝資訊提供,感恩!!

※ 編輯: if4 (111.251.162.142), 05/03/2017 05:42:40

你可能也想看看

搜尋相關網站