CDSPACE1.95破解手記(專為初學者而作!) (8千字)
CDSPCE1.95破解紀錄
這個軟體本來在《看雪論壇精華2》中,菜鳥大師已經寫了一片很詳細的破解紀錄,可是在我自己破解的過程中
,發現還有些事情沒講清楚,特別是看註冊碼的地方,"為什麼我在這裡D EAX就可以看到註冊碼?"這可能是廣大
初學者在看破解文章的時候最搞不清楚的地方.可是,恕我孤陋寡聞,把這一點講得很清楚的好像只有城市獵人,
說道這裡,我就不得不提提城市獵人的《探索雜誌》,這的確是一分很好的雜誌,尤其是前幾期的《初學天地》欄目,可能是我見到的寫的最好的入門教程了,所以,廣大想學破解的朋友們,花點時間到城市獵人的網站
上去下載它的前幾期雜誌讀一讀我覺得是最好的入門方法了!好了,廢話就說到這裡,下面開始我們的正題。
REDAY?GO!
1。架起TRW2000,LOAD CDSPACE,調出註冊視窗,隨便輸入一些資訊。我的輸入如下所示,你完全不必和我
的一樣。
NAME:luoyi
REGISTRATION CODE:654321
2。CTRL+M,切入TRW2000,下斷點“G GETWINDOWTEXT”,“G”回到程式中。
3。一按“OK”,我們就又回到TRW2000了。
4。PMODULE。你將看到如下程式碼:
015F:00409322 E80B680000 CALL `MFC42!ord_00000942`
015F:00409327 83C664 ADD
ESI,BYTE +64 <-------------你停在這裡!
015F:0040932A 56 PUSH
ESI
015F:0040932B 68EB030000 PUSH DWORD 03EB
015F:00409330 57 PUSH
EDI
015F:00409331 E8FC670000 CALL `MFC42!ord_00000942`
015F:00409336 5F POP
EDI
015F:00409337 5E POP
ESI
015F:00409338 C20400 RET
04
稍有一點asm知識的就可以看出,這一段程式碼對我們破解沒有什麼作用,因為它沒有跳轉,所以我們就不必和它費事,F12跳過即可。可是跳出來以後,發現還是沒有跳轉,所以我們就繼續F12。兩次以後,來到了這裡:
015F:00409570 E829660000 CALL `MFC42!ord_000018BE`
015F:00409575 8D4C2410 LEA
ECX,[ESP+10] <--------從這裡出來了!
015F:00409579 E89C650000 CALL `MFC42!ord_0000021C`
015F:0040957E 33F6 XOR
ESI,ESI
015F:00409580 8D4C2414 LEA
ECX,[ESP+14]
015F:00409584 8974242C MOV
[ESP+2C],ESI
015F:00409588 E88D650000 CALL `MFC42!ord_0000021C`
015F:0040958D 8B4760 MOV
EAX,[EDI+60]
015F:00409590 8D6F60 LEA
EBP,[EDI+60]
015F:00409593 C644242C01 MOV BYTE
[ESP+2C],01
015F:00409598 8378F806 CMP
DWORD [EAX-08],BYTE +06
015F:0040959C 7D0C JNL
004095AA
到了這裡以後,就不能再F12了,為什麼呢?因為有這一句的存在!
015F:00409598 8378F806 CMP
DWORD [EAX-08],BYTE +06
015F:0040959C 7D0C JNL
004095AA
這是一個有條件跳轉,我們當然不能放過它!於是,在這一段裡我們改用F10跟蹤。一直就到了這個跳轉,這裡是比較什麼來跳的呢?我們D EAX一下,發現是:
luoyi,那麼[EAX-8],又是什麼呢?一般在這種情況下,
[EAX-8]裡存放的都是[EAX]中儲存的字串的長度,這一點,就是靠你經驗的積累了,當然了,如果你的API
夠熟的話,就當我在說廢話吧,呵呵。。。。於是在這裡,我們知道了名字的長度要大於或等於6才行。好了,回去改改吧,我改的是: NAME:luoyiluo,這裡有句話得提醒新手們,回去之前,一定不要忘了
在你跟到的地方用F9設斷,否則,輸完資訊後再想回來,又得累死你的顯示器了。呵呵。。廢話少說,我們繼續,名字這一關已經過了,下面我們繼續走:
015F:0040959E 56 PUSH
ESI
015F:0040959F 56 PUSH
ESI
015F:004095A0 6810884100 PUSH DWORD 00418810
015F:004095A5 E902010000 JMP 004096AC
015F:004095AA 8B5764 MOV
EDX,[EDI+64]
015F:004095AD 8D5F64 LEA
EBX,[EDI+64]
015F:004095B0 837AF810 CMP
DWORD [EDX-08],BYTE +10
015F:004095B4 740C JZ
004095C2
這裡又來了一個比較,比較什麼呢?有了我上面說的基礎,你應該很容易就猜到了吧?D EDX,發現是:
654321,無疑,這裡就是判斷註冊碼的長度了,註冊碼的長度得等於10才正確。別急,你還得搞清楚一個問題
這裡的10和我們平常說的10可是有大大的不同,這裡是16進位制,這裡的10就是我們平時說的16,這一點可經常
讓一些初學破解的人栽跟頭呢。(比如我。。呵呵。。。)於是,我們又回到程式中,改資訊如下:(你不會忘記設斷點吧?)
REGISTRATION CODE :0987654321123456
好了,長度都對了,下面我們繼續走:
015F:004095B6 56 PUSH
ESI
015F:004095B7 56 PUSH
ESI
015F:004095B8 68FC874100 PUSH DWORD 004187FC
015F:004095BD E9EA000000 JMP 004096AC
015F:004095C2 33C9 XOR
ECX,ECX <-------長度正確了,我們就走到這裡來了!--|
015F:004095C4 8A040A MOV
AL,[EDX+ECX]
|
015F:004095C7 3C30 CMP
AL,30 這一段比較,看你的註冊碼中有沒有
|
015F:004095C9 7C04 JL
004095CF 一些特殊的字元,你應該好好看看,
| 015F:004095CB 3C39 CMP
AL,39 這可是鍛鍊ASM能力的好機會!
|
015F:004095CD 7E10 JNG
004095DF
|
015F:004095CF 3C41 CMP
AL,41
|
015F:004095D1 0F8CC7000000 JL NEAR 0040969E
|
015F:004095D7 3C46 CMP
AL,46
|
015F:004095D9 0F8FBF000000 JG NEAR 0040969E
| 015F:004095DF 41
INC ECX
|
015F:004095E0 83F908 CMP
ECX,BYTE +08
|
015F:004095E3 7CDF JL
004095C4 <------------------------------------------|
.............
.............
015F:00409644 8B03 MOV
EAX,[EBX]
015F:00409646 8B542410 MOV
EDX,[ESP+10]
015F:0040964A 50 PUSH
EAX
015F:0040964B 52 PUSH
EDX
015F:0040964C FF158C264100 CALL `MSVCRT!_mbscmp`
<------------------!!!!!!!!
015F:00409652 83C408 ADD
ESP,BYTE +08
015F:00409655 85C0 TEST
EAX,EAX
015F:00409657 6A00 PUSH
BYTE +00
015F:00409659 6A00 PUSH
BYTE +00
015F:0040965B 754A JNZ
004096A7 <-------------跳過去就玩完了.呵呵...
..................
..................
015F:0040969C EB13 JMP
SHORT 004096B1 <----------正確的時候才能走到這兒跳
015F:0040969E 56 PUSH
ESI
015F:0040969F 56 PUSH
ESI
015F:004096A0 68B0874100 PUSH DWORD 004187B0
015F:004096A5 EB05 JMP
SHORT 004096AC
015F:004096A7 6890874100 PUSH DWORD 00418790
015F:004096AC E8E1640000 CALL `MFC42!ord_000004B0`
<------------出錯處!
015F:004096B1 8D4C2414 LEA
ECX,[ESP+14]
015F:004096B5 C644242C00 MOV BYTE
[ESP+2C],00
015F:004096BA E843640000 CALL `MFC42!ord_00000320`
015F:004096BF 8D4C2410 LEA
ECX,[ESP+10]
015F:004096C3 C744242CFFFFFFFF MOV DWORD [ESP+2C],FFFFFFFF
015F:004096CB E832640000 CALL `MFC42!ord_00000320`
015F:004096D0 8B4C2424 MOV
ECX,[ESP+24]
015F:004096D4 5F POP
EDI
015F:004096D5 5E POP
ESI
015F:004096D6 5D POP
EBP
015F:004096D7 64890D00000000 MOV [FS:00],ECX
015F:004096DE 5B POP
EBX
015F:004096DF 83C420 ADD
ESP,BYTE +20
015F:004096E2 C3 RET
來到這裡以後,有感覺的話,可能已經可以感覺到該是作關鍵性的比較的時候了。讓我們PAGE DOWN幾下,???
看到我打"!!!!"的那個比較了了麼?這麼明顯的事,不用我再教了吧?
015F:0040964A 50 PUSH
EAX
015F:0040964B 52 PUSH
EDX
015F:0040964C FF158C264100 CALL `MSVCRT!_mbscmp`
<------------------!!!!!!!!
015F:00409652 83C408 ADD
ESP,BYTE +08
015F:00409655 85C0 TEST
EAX,EAX
015F:00409657 6A00 PUSH
BYTE +00
015F:00409659 6A00 PUSH
BYTE +00
015F:0040965B 754A JNZ
004096A7
D EAX,D EDX,你就可以看到正確的註冊碼和你輸入的註冊碼了。這裡你又可以看到城市獵人的《探索雜誌》
中總結的經典比較形勢
MOV EDX,[ ]
MOV EAX,[ ]
CALL XXXXXXXX
TEST XXX,XXX
JZ/JNZ XXXXXXXX
的威力了吧?呵呵。。。所以我說,那是一份很好的雜誌吧?
好了,寫到這裡,CDSPACE的破解也就說完了,相信應該不會有人說看不懂吧?我是盡力把東西寫的好懂一點
,儘量向大家講清楚“為什麼”而不是告訴你“是什麼”就完事了,我自己也是個初學者,深切的體會到初學者在跟程式的時候的種種迷惑,我只是盡我所能把我的經驗講述出來,讓大家少走一點彎路。希望這樣的文章
能夠得到大家的喜歡。
另外:註冊後,程式把註冊資訊放在:
HKEY_LOCAL_MACHINE\SOFTWARE\SPACE INTERNATION\CDSPACE\SETTINGS\NAME
註冊名
HKEY_LOCAL_MACHINE\SOFTWARE\SPACE INTERNATION\CDSPACE\SETTINGS\EVALUATION
註冊碼
刪除這兩個鍵或是改變它們的值都可以使程式回到未註冊狀態,你又可以繼續練習!
請多指教!
作者:夜月(“破!”這個名字我自己都覺得不太好聽,所以改了,呵呵。。。。希望大家能記得我)
E-MAIL: luoyi.ly@263.net
oicq:36606500
歡迎大家以各種方式和我聯絡!
相關文章
- 初學者(8) (4千字)2000-05-07
- 初學者(10) (8千字)2000-05-14
- 給初學者,因為我就是個初學者(1) (3千字)2000-05-03
- 給初學者,因為我就是個初學者(2) (1千字)2000-05-03
- 給初學者,因為我就是個初學者(4) (1千字)2000-05-03
- Trojan Remover 4.3.0破解手記 (8千字)2001-08-31REM
- SeaMoon Pic Hunter 1.2破解手記 (8千字)2015-11-15
- MP3 to EXE v 2.6破解手記 (8千字)2001-09-08
- 乾涸的(Asp maker version 2.2 破解手記) (8千字)2015-11-15
- 初學者(7) (4千字)2000-05-05
- 初學者(9) (3千字)2000-05-07
- 初學者(11) (2千字)2000-05-18
- 初學者(12) (1千字)2000-06-09
- 初學者(13) (2千字)2000-06-09
- 初學者(14) (5千字)2000-06-10
- 初學者(15) (3千字)2000-07-04
- 初學者(16) (2千字)2000-07-04
- 初學者(17) (1千字)2000-07-04
- 初學者(18) (2千字)2000-07-05
- 初學者(19) (4千字)2000-07-10
- 初學者(20) (3千字)2000-07-15
- 初學者(20) (1千字)2000-08-08
- 初學者(22) (7千字)2000-08-09
- 初學者(23) (7千字)2000-08-13
- 初學者(26) (9千字)2000-08-17
- 初學者(27) (1千字)2000-08-25
- 網咖管理專家9.5破解手記 (6千字)2001-01-26
- 初學者請看! (2千字)2000-12-28
- 初學者作品(6) (1千字)2000-05-04
- The Works 全攻略-破文第二篇(初學者適用) (3千字)2015-11-15
- Oracle初學者問題8(轉)2007-08-06Oracle
- 給初學者,因為我就是個初學者(3) (569字)2000-05-03
- Turbo Note+ 破解手記 (4千字)2001-05-13
- 漢字通破解手記 (19千字)2000-09-06
- 作為初學者,Python和PHP哪個好學習?2020-05-09PythonPHP
- [譯] 為 GitHub 專案做出貢獻的初學者指南2019-03-02Github
- 作為一名Python初學者,究竟要掌握哪些技能?2021-10-20Python
- SolSuite v8.0破解手記 (3千字)2001-09-08UI