for new-newbies(脫殼+patch),學破解不足三天者請進,高手如果不怕浪費時間,也請指點一下。 (8千字)
雖然網上現在到處找得到offline explorer 1.4的破解了,可是一個多月前我還辛辛苦苦地到處找破解(那時還有一次可憐兮兮地在論壇1212了一回,問了一句“OFFLINE
EXPLORER好像很難破”之類的話,好不容易找到一個註冊碼,卻又是無用的),現在參照看雪教學幾篇文章破了幾個軟體之後,正好網上也沒找到關於它的教程,終於可以自己拿它來開刀了!同時也把這十餘天來學破解的一點經驗總結一下,可能有助於比我還要new的new-newbies。如果您是大、中級(大俠、大蝦、中俠、中蝦……)的那麼除非您有意指點一下,是無須浪費時間的了,因為我一定會很碌模。:-)
開工!
一 工具:1 國產精品:衝擊波和TRW2000 1.22,感謝兩位作者,(好像TRW2000不再更新了,不然怎麼主頁上有人問註冊的事卻沒人回答)。
2 十六進位制(HEX)編輯器WINHEX(前幾天才從hying兄那兒學了一招,破之,馬上就派上用場了!)或HEXWORKSHOP等。以及W32DASM――靜態反彙編利器。
3 看雪教學(有工具也得有課本啊!當字典用也行,這一編只是習題附不標準答案)。大家有什麼不明白的請查課本
4 TARGET:OFFLINE EXPLORER 1.4317 OFFLINE
EXPLORER PRO 1.4338
二 手動脫殼:我覺得新手學脫殼其實也沒什麼,對於一些簡單的殼(什麼是殼?看書去!不過也可以一句話來形容,就是把殼剝了,我們才可以對蛋白蛋黃為所欲為),有了我們們的國產精品,實在是so
easy!何況現在要找一個沒加殼的實在不是一件容易的事(可不是所有的殼都這麼易脫的,只是我運氣好罷了,脫不了別怪我)。
1 將衝擊波挎到OE目錄下,執行它,視窗中的數字就是蛋白之所在了,我這兒是00504C08。
2 執行TRW,載入OE.EXE,LOAD,於是我們來到了TRW的視窗。
3 bpx cs:504c08,因為這樣可樣設一個斷點,當程式執行時就會停在那兒(別笑,別罵我攏際蔽業娜肥橇飧齠家胂氳摹#┗爻擔G,再回車,你會發現你在XXX:00504c08處。
4 MAKEPE AAA.EXE,那麼你將會在OE的目錄下生成一個AAA.EXE的檔案,這就是脫殼後的程式了,這就是蛋白蛋黃了,你會發現蛋白、蛋黃、比原先完全的一個還要大,原來是494K,現在成了1.40M了。是不是SO
EASY!
二 開始PATCH OFFLINE EXPLORER 1.4317
1 我們的物件是OFFLINE EXPLORER 1.4317,因為我覺得它比較有助於思考,比OFFLINE
EXPLORER PRO 1.4338要麻煩一點。開啟TRW,CTRL+N,我們又來到WINDOWS視窗,跟平時輸註冊碼一樣,輸入自己的NAME,再隨便輸入一列數字,不要按OK。再按CTRL+N,回到TRW,bpx
hmemcpy(這是WINDOWS的底層函式,不明白?沒關係,要明白的話,就去看課本),按一下F5,又來到了WINDOWS,按下OK,我們又到了TRW視窗,這時你可以看到視窗下面有KERNEL的字樣,這時我們不在程式中,鍵入bc
*,清除我們上面設的斷點,pmoudle,你會發現視窗下面已經變成了OE!CODE等字樣了,也就是說,我們來到了程式中了!
2 連續按F10,來到下面
016F:004CE0A1 MOV EAX,[0050BD84]
016F:004CE0A6 MOV EAX,[EAX]
016F:004CE0A8 CALL 004534B0 //SORRY視窗出現,按下確定
016F:004CE0AD XOR EAX,EAX //又回到TRW
016F:004CE0AF POP EDX
3 執行W32DASM,反彙編。(當然你也可樣在TRW中用U命令。)找到上面的語句,看如何跳過上面的SORRY視窗,運氣好的話,上面很容易找到一個比較,你跳過去後,就可以註冊了,不過我們的運氣不好。
:004CE0A8 E80354F8FF call
004534B0
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004CDFD1(U), :004CDFE8(U)
|
:004CE0AD 33C0
xor eax, eax //有兩處可以JMP過來,let's go!
讓我們往前看:
:004CDF66 E869490200 call
004F28D4//FORTH //這個CALL可疑,F8進去看看
:004CDF6B 84C0
test al, al //THIRD這兒不能為0
:004CDF6D 747E
je 004CDFED //SECOND這兒就可以跳過下面的JMP,我們可以試一試,在:004CDF6F A16CBB5000
mov eax, dword ptr [0050BB6C]
HEX編輯器下改機器碼為757E,即je
:004CDF74 8B00
mov eax, dword ptr [eax] 改為jne,好像成功了,但是沒有,你:004CDF76
C6808806000001 mov byte ptr [eax+00000688],
01 執行程式,又成了NOT REGISTER
:004CDF7D A16CBB5000 mov eax,
dword ptr [0050BB6C] 所以NEXT
:004CDF82 8B00
mov eax, dword ptr [eax]
:004CDF84 058C060000 add eax,
0000068C
:004CDF89 8B55FC
mov edx, dword ptr [ebp-04]
:004CDF8C E8E75EF3FF call
00403E78
:004CDF91 A16CBB5000 mov eax,
dword ptr [0050BB6C]
:004CDF96 8B00
mov eax, dword ptr [eax]
:004CDF98 0590060000 add eax,
00000690
:004CDF9D 8B55F8
mov edx, dword ptr [ebp-08]
:004CDFA0 E8D35EF3FF call
00403E78
:004CDFA5 8BB310030000 mov esi, dword
ptr [ebx+00000310]
:004CDFAB 807E4700
cmp byte ptr [esi+47], 00
:004CDFAF 7425
je 004CDFD6
:004CDFB1 8D55F4
lea edx, dword ptr [ebp-0C]
:004CDFB4 8B8608020000 mov eax, dword
ptr [esi+00000208]
:004CDFBA 8B08
mov ecx, dword ptr [eax]
:004CDFBC FF511C
call [ecx+1C]
:004CDFBF 8B4DF4
mov ecx, dword ptr [ebp-0C]
:004CDFC2 A16CBB5000 mov eax,
dword ptr [0050BB6C]
:004CDFC7 8B00
mov eax, dword ptr [eax]
:004CDFC9 8B55FC
mov edx, dword ptr [ebp-04]
:004CDFCC E873530200 call
004F3344
:004CDFD1 E9D7000000 jmp 004CE0AD
//FIRST如何不讓程式執行這JMP呢?
上面的CALL(之所以程式重新開始又變成NOT REGISTER,是因為程式開始時又呼叫了這個CALL,檢測到AL為0,你可以用TRW載入程式前為這個CALL設個斷點看看)進入後一直來到下面:
:004F2E58 3B02
cmp eax, dword ptr [edx]
:004F2E5A 7506
jne 004F2E62
:004F2E5C C645FF01
mov [ebp-01], 01 // THIRD若置1,則為註冊
:004F2E60 EB06
jmp 004F2E68 // 上面有許多個直接JMP到4F2E68,都不能跳
:004F2E62 83C204
add edx, 00000004
:004F2E65 4B
dec ebx
:004F2E66 75F0
jne 004F2E58
:004F2E68 33C0
xor eax, eax
:004F2E6A 5A
pop edx
:004F2E6B 59
pop ecx
:004F2E6C 59
pop ecx
:004F2E6D 648910
mov dword ptr fs:[eax], edx
:004F2E70 688A2E4F00 push
004F2E8A
:004F2E75 8D45F0
lea eax, dword ptr [ebp-10]
:004F2E78 BA03000000 mov edx,
00000003
:004F2E7D E8C60FF1FF call
00403E48
:004F2E82 C3
ret
:004F2E83 E99409F1FF jmp 0040381C
:004F2E88 EBEB
jmp 004F2E75
:004F2E8A 8A45FF
mov al, byte ptr [ebp-01]//SECOND [EBP-1]中為註冊標誌
:004F2E8D 5E
pop esi
:004F2E8E 5B
pop ebx
:004F2E8F 8BE5
mov esp, ebp
:004F2E91 5D
pop ebp
:004F2E92 C3
ret//FIRST CALL結束,向上看
所以實際上只要把上面一個你會直接JMP到4F2E68的語句改為JMP向4F2E5C就可以了(在實際上我是4F2E26這一句的),你可以先在TRW下鍵入A指令測試,A
4F2E26,回車,然後把變化了的機器碼抄下來(最好抄長一些,保證它在程式中是唯一的),用HEX編輯器改一下,再執行一下,怎麼樣?可以了吧。把時間向後調,成功了!
四 關於OFFLINE EXPLORER PRO 1.4338
在這個版本中,比較跟上面在同個原理的,如下
:004CFDD6 E8FD800200 call
004F7ED8 //這個CALL裡面也是比較,進去看看
:004CFDDB 84C0
test al, al
:004CFDDD 747E
je 004CFE5D
--------------
:004F7ED8 8BC2
mov eax, edx
:004F7EDA 8BD1
mov edx, ecx
:004F7EDC E89BFAFFFF call
004F797C //很快又是一個CALL?再進去!
:004F7EE1 C3
ret
又是一連串的比較,最終又看AL的值是否為1,這兒可以按上面的方法將AL置1,但是這兒還有另一種修改的方法,如果你在進這個CALL之前把ESP EBP
ESI EDI 的值記一下,你會發現它們的值並沒有變(我的理解是不變就可以不理下面的東西,不知有沒有錯,各位大俠請指點一下),所以實際上你只要把剛進入這個CALL的指令改為AL置1,再RET就可以了。用HEX編輯器改一下,重新居動,你會發現已經是REGISTERED的了,只是沒有你的名字而已。這應該在登錄檔中可以改動的,不過我沒試,你可以自己找找。
那麼前面的是否也可以用第二種方法?好像不行,至少我沒找到可以修改的地方,在進入TEST AL AL之前那個CALL之後的機器碼我用十六進位制編輯器開啟後並沒有找到,不知是何原因,如果你找到了麻煩你告訴我。
五 幾句廢話
1 如果你有什麼問題不懂的話,最好先去看看書,好像論壇常有人問些教學裡說得很明白的問題。
2 如果你對破解本身不感興趣而只為了某個軟體找不到破解而要學和話,我勸你還是等一等,如果網上沒有,一般也不是你我這種菜鳥學上幾天就可以搞掂的。破解可能是一種樂趣,也可能是一種痛苦。論壇精華中有小樓的一篇破解雜談,建議看看。
相關文章
- 請高手指點一下啊2004-09-05
- 本人首次自己試破解(請各位高手指教一下) (1千字)2000-08-11
- 大家請進!!!我破解了一個小遊戲,但沒有完全破解它,想請高手指點一下!!!
(507字)2001-01-01遊戲
- 破解NetAlert v2 [熱點]
指導如何自動脫殼!! (4千字)2000-03-16
- 高手請進2004-04-20
- B-Puzzle Version 5.0破解過程,請高手指點,謝謝!★強烈向初學破解者推薦★ (2千字)2001-11-25
- 請bang及各位高手指點一下2005-04-22
- jdpack的脫殼及破解 (5千字)2002-06-25
- 破解XFtpSvr =====> 請進 (5千字)2001-07-01FTPVR
- 請教一下高手2006-09-20
- eXeScpe是不是有時間限制?第一次破解成功,請大俠們指點 (5千字)2001-02-09
- 發一篇C#.NET的破解文章,請各位指點指點:)
(12千字)2015-11-15C#
- CTris 2000 Version2.0 破解過程,,請高手指點,謝謝!★強烈向初學破解者推薦★
(2千字)2001-11-25
- 請高手指點2004-12-24
- 脫殼----對用Petite2.2加殼的程式進行手動脫殼的一點分析
(5千字)2000-07-27
- 淺談C++的class (初學者請看) 高手老手不用浪費網費 (轉)2007-12-12C++
- 工作流問題,請高手指點一下!2006-12-25
- 請高手破解這款軟體!2000-11-28
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- 高手們請進哈2008-06-12
- 一點脫殼經驗。(7千字)2001-04-20
- 求教,請高手指點!2004-04-08
- 請教一下各位struts高手2005-08-04
- 不脫殼破解極光多能鬧鐘
(16千字)2003-04-14
- *****管理專家 V1.05版破解實錄 ,敬請高手指點,謝謝!!!
(12千字)2002-10-16
- 以殼解殼--SourceRescuer脫殼手記破解分析2004-11-16
- 遊戲學 | 玩電子遊戲是浪費時間?2020-01-14遊戲
- ipse開發高手請進!2004-09-23
- struts怪問題 高手請進2005-06-03
- 請高手給看一下這段程式碼有何作用? (5千字)2000-08-18
- 前蘋果副總裁:如果你做的事情毫不費力,就是在浪費時間2014-10-08蘋果
- 求解決方案!!請高手指點2004-12-21
- 安裝時提示錯誤,請高手幫忙解決一下2019-05-11
- PolyView再破解---請指教 (5千字)2001-01-02View
- 安裝JdonFrameworkTest例子時出錯,請高手指點2005-12-25Framework
- 我的第3篇破文 cr--CJSFormater 高手請指導、指導!! (4千字)2001-11-24JSORM
- 對PECompact加殼的DLL脫殼的一點分析 (7千字)2000-08-17
- MySQL Manager 2.8.0.1脫殼破解手記破解分析2004-11-03MySql