“天音怒放”手動脫殼及破解
作者:HOOK[TTG]=鉤子[TTG]
目的:練習使用W32dsm,Trw
1.22
(1)這個軟體是用Aspack壓縮的,但是我用UnAspack和procdum都不好使。用UnAspack解壓說:不是壓縮檔案;用procdum
總是截不住,“天音怒放”自己就執行了。。。。。。。(請問大蝦,這是咋回事!!!!)
(2)沒法子,只好現學現賣了!!手動脫殼了。。。。。。。
(3)好!廢話少說,跟我一起來吧。。。。。。。。。
(4)用Trw
1.22載入“天音怒放”(將“天音怒放”的圖示拖到Trw 1.22上,然後按載入除錯按鈕),此時會攔截在此
》》》XXXX:004F4001DB??
004F4002DB??
====================================TyPlayer!Aspack+XXXX=======================================
此時,按一下F12“天音怒放”就執行了,只好重來了。這回老實點,一路F10吧。到
》》》XXXX:004F44CCALL004F446D<<<<<<一帶過“天音怒放”就執行了!!!
按F8追入!!
。。。。。。。。。。。。
》》》XXXX:004F4503JNZNEAR
004F44A1
XXXX:004F4509SUBEBX,C37EE801
但是注意到:XXXX:004F44A1JMP004F44C2 是無條件跳轉。。。。。
就在 XXXX:004F4509SUBEBX,C37EE801
設為斷點,然後用G命令跳過迴圈。。。。。
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。
一路F10,因為在我這裡一按F12“天音怒放”程式就卡死了,所以。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
中間有很多環式跳轉,我在每次有 CALLxxxxxxxx 的地方,都會記下此行的地址,以備後用。。。。。。
。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。
最後到:
》》》XXXX:004F4190CALLNEAR[EBP+00444000] *****按下F12,“天音怒放”沒卡死,真幸運!!!
接著會到此:
〉〉〉XXXX:004F43BARET ********按F10來到。。。。。
************
XXXX:004C0058PUSHEBP
=============================此時,注意到領空標誌變為“TyPlayer!CODE+XXXX”,我知道,上帝
==========================同情我,讓我走到了盡頭!!!!!!
==========================我成功了!!!
==============================================TyPlayer!CODE+XXXX========================================
(5)好!!定位在XXXX:004C0058PUSHEBP,
下 makePE HOOK[TTG].EXE 就會得到脫了殼的“天音怒放”了。。。
檔案應該在Trw
1.22目錄內,改名為TyPlayer就可以了!!但是我發現,右鍵選單程式設計英文的了。。。。。。
沒關係,不管他,反正已經脫殼了。。。。。。。。。
**************************************************************************************************************
下面進入尋找註冊碼階段!!!
**************************************************************************************************************
(1)現在就用W32dsm進行反彙編。
(2)查詢字串
"註冊碼不正確"。
* Possible StringData Ref from Code Obj ->"謝謝你選擇了天音怒放"
|
:004BA8A9 B860A94B00
mov eax, 004BA960
:004BA8AE E89DFEF9FF
call 0045A750
:004BA8B3 A160334C00
mov eax, dword ptr [004C3360]
:004BA8B8
8B00 mov
eax, dword ptr [eax]
:004BA8BA C6809A04000001 mov
byte ptr [eax+0000049A], 01
:004BA8C1 C645F701
mov [ebp-09], 01
:004BA8C5 EB0E
jmp 004BA8D5
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004BA84B(C)
|
:004BA8C7
C645F700 mov [ebp-09],
00
* Possible StringData
Ref from Code Obj ->"註冊碼不正確"**************
|
:004BA8CB B880A94B00
mov eax, 004BA980
:004BA8D0 E87BFEF9FF
call 0045A750
(3)轉到呼叫此段的地方“004BA84B”
:004BA811
8945FC mov dword
ptr [ebp-04], eax
:004BA814 8B45FC
mov eax, dword ptr [ebp-04]**User Name
:004BA817 E85099F4FF
call 0040416C **************判斷是否空
:004BA81C
8B45F8 mov eax,
dword ptr [ebp-08]**Serial No
:004BA81F E84899F4FF
call 0040416C **************判斷是否空
:004BA824 33C0
xor eax,
eax
:004BA826 55
push ebp
:004BA827 68FFA84B00
push 004BA8FF
:004BA82C 64FF30
push dword ptr fs:[eax]
:004BA82F 648920
mov dword ptr fs:[eax],
esp
:004BA832 8B45F8
mov eax, dword ptr [ebp-08]
:004BA835 50
push eax
:004BA836 8B4DFC
mov ecx, dword ptr [ebp-04]
:004BA839
B201 mov
dl, 01
:004BA83B A1289B4B00 mov
eax, dword ptr [004B9B28]
:004BA840 E8EF4B0000
call 004BF434*********************關鍵!!!!
:004BA845 8BD8
mov ebx,
eax
:004BA847 807B1000 cmp
byte ptr [ebx+10], 00
:004BA84B 747A
je 004BA8C7 **************************************在此
:004BA84D
A160334C00 mov eax, dword ptr
[004C3360]
:004BA852 8B00
mov eax, dword ptr [eax]
:004BA854 8B909C040000
mov edx, dword ptr [eax+0000049C]
:004BA85A
8D45F0 lea eax,
dword ptr [ebp-10]
* Possible StringData Ref from Code Obj ->"Reg.ini"***********************************注意
|
:004BA85D B918A94B00
mov ecx, 004BA918
:004BA862 E89D97F4FF
call 00404004
:004BA867 8B4DF0
mov ecx, dword ptr [ebp-10]***********
:004BA86A
B201 mov
dl, 01
* Possible StringData
Ref from Code Obj ->"\5G"
|
:004BA86C
A1942E4700 mov eax, dword ptr
[00472E94]
:004BA871 E8C686FBFF call
00472F3C
:004BA876 8BF0
mov esi, eax
:004BA878 8B45FC
mov eax, dword ptr [ebp-04]********
:004BA87B 50
push
eax
* Possible StringData
Ref from Code Obj ->"User Name"
|
:004BA87C
B928A94B00 mov ecx, 004BA928
*
Possible StringData Ref from Code Obj ->"RegInfo"
|
:004BA881 BA3CA94B00
mov edx, 004BA93C
:004BA886 8BC6
mov eax, esi
:004BA888 8B38
mov edi, dword ptr [eax]
:004BA88A
FF5704 call [edi+04]
:004BA88D
8B45F8 mov eax,
dword ptr [ebp-08]*********
:004BA890 50
push eax
*
Possible StringData Ref from Code Obj ->"Serial No"
|
:004BA891 B94CA94B00
mov ecx, 004BA94C
*
Possible StringData Ref from Code Obj ->"RegInfo"
|
:004BA896 BA3CA94B00
mov edx, 004BA93C
:004BA89B 8BC6
mov eax, esi
:004BA89D 8B38
mov edi, dword ptr [eax]
:004BA89F
FF5704 call [edi+04]
:004BA8A2
8BC6 mov
eax, esi
:004BA8A4 E82787F4FF call
00402FD0
* Possible
StringData Ref from Code Obj ->"謝謝你選擇了天音怒放"
|
:004BA8A9 B860A94B00
mov eax, 004BA960
:004BA8AE E89DFEF9FF
call 0045A750
:004BA8B3 A160334C00
mov eax, dword ptr [004C3360]
:004BA8B8 8B00
mov eax, dword ptr [eax]
:004BA8BA
C6809A04000001 mov byte ptr [eax+0000049A],
01
:004BA8C1 C645F701 mov
[ebp-09], 01
:004BA8C5 EB0E
jmp 004BA8D5
可知,“天音怒放”將註冊名和註冊碼存入檔案Reg.ini中了。這就應該想到下次執行還得檢查合法性。。。。。
也可以改相應的地方,使之變成破解版。但是,這次,我們要找出註冊碼,要註冊!!!!
(4)從上可以看出[ebp-04],[ebp-08],[ebp-10],應與註冊有關係。
[ebp-04]=〉User Name;[ebp-08]=〉Serial No
看看,上面的註釋和分析,可以確定
:004BA840 E8EF4B0000 call 004BF434*********************關鍵!!!!
(5)好!執行“天音怒放”,並註冊。啟動Trw 1。22 ,設斷 bpx 004BA840。確定攔截!!F8追入!!!
:004BF434
55 push
ebp ******************
:004BF435 8BEC
mov ebp, esp
:004BF437 51
push ecx
:004BF438 53
push
ebx
:004BF439 56
push esi
:004BF43A 84D2
test dl, dl
:004BF43C 7408
je 004BF446
:004BF43E 83C4F0
add esp, FFFFFFF0
:004BF441
E8CA3EF4FF call 00403310 *****************帶過
:004BF446
894DFC mov dword
ptr [ebp-04], ecx
:004BF449 8BDA
mov ebx, edx
:004BF44B 8BF0
mov esi, eax
:004BF44D 8B45FC
mov eax, dword ptr
[ebp-04]
:004BF450 E8174DF4FF call
0040416C**************判斷是否空
:004BF455 8B4508
mov eax, dword ptr [ebp+08]****Serial No
:004BF458
E80F4DF4FF call 0040416C**************判斷是否空
:004BF45D
33C0 xor
eax, eax
:004BF45F 55
push ebp
:004BF460 689EF44B00
push 004BF49E
:004BF465 64FF30
push dword ptr fs:[eax]
:004BF468 648920
mov dword ptr fs:[eax],
esp
:004BF46B 8D460C
lea eax, dword ptr [esi+0C]
:004BF46E 8B5508
mov edx, dword ptr [ebp+08]
:004BF471 E81649F4FF
call 00403D8C
:004BF476 8B55FC
mov edx, dword ptr
[ebp-04]*****User Name
:004BF479 8BC6
mov eax, esi
:004BF47B E8E0000000
call 004BF560***************關鍵!!!追入!!!
:004BF480
33C0 xor
eax, eax
:004BF482 5A
pop edx
:004BF483 59
pop ecx
:004BF484 59
pop ecx
:004BF485
648910 mov dword
ptr fs:[eax], edx
:004BF488 68A5F44B00
push 004BF4A5
(6)繼續
:004BF568
6A00 push
00000000
:004BF56A 6A00
push 00000000
:004BF56C 49
dec ecx
:004BF56D 75F9
jne 004BF568
:004BF56F
51 push
ecx
:004BF570 53
push ebx
:004BF571 56
push esi
:004BF572 57
push edi
:004BF573 8BF2
mov esi,
edx*****User Name
:004BF575 8BD8
mov ebx, eax
:004BF577 33C0
xor eax, eax
:004BF579 55
push ebp
:004BF57A
68D1F74B00 push 004BF7D1
:004BF57F
64FF30 push dword
ptr fs:[eax]
:004BF582 648920
mov dword ptr fs:[eax], esp
:004BF585 33C0
xor eax, eax
:004BF587 8945FC
mov dword ptr [ebp-04],
eax
:004BF58A 8D55EC
lea edx, dword ptr [ebp-14]
:004BF58D 8BC6
mov eax, esi
:004BF58F E88893F4FF
call 0040891C
:004BF594 8B55EC
mov edx, dword ptr
[ebp-14]*****User Name,小寫變大寫
:004BF597 8D4308
lea eax, dword ptr [ebx+08]
:004BF59A E8ED47F4FF
call 00403D8C
:004BF59F BE07000000
mov esi, 00000007
:004BF5A4
BF08324C00 mov edi, 004C3208
:004BF5A9
8B4308 mov eax,
dword ptr [ebx+08]
:004BF5AC 8B17
mov edx, dword ptr [edi]
:004BF5AE E8154BF4FF
call 004040C8****************關鍵!!!追入!!!
:004BF5B3
7511 jne
004BF5C6
:004BF5B5 8D4304
lea eax, dword ptr [ebx+04]
:004BF5B8 E87B47F4FF
call 00403D38
:004BF5BD C6431000
mov [ebx+10], 00
:004BF5C1 E9F0010000
jmp 004BF7B6
(7)
:004040C8
53 push
ebx
:004040C9 56
push esi
:004040CA 57
push edi
:004040CB 89C6
mov esi, eax
:004040CD 89D7
mov edi,
edx
:004040CF 39D0
cmp eax, edx
以下,就不一一寫了,免的有湊數之嫌!!!
最後,會到此:
:004BF70F
8B4304 mov eax,
dword ptr [ebx+04]********真的註冊碼
:004BF712 E8A94AF4FF
call 004041C0 ********還得用‘-’分組
:004BF717
8D45F4 lea eax,
dword ptr [ebp-0C]********分組規則嘛,望下看看
:004BF71A 50
push eax ********作者會告訴你的。。。。。
:004BF71B
B904000000 mov ecx, 00000004
:004BF720
BA04000000 mov edx, 00000004
:004BF725
8B4304 mov eax,
dword ptr [ebx+04]
:004BF728 E8934AF4FF
call 004041C0
:004BF72D 8D45F0
lea eax, dword ptr [ebp-10]
:004BF730 50
push eax
:004BF731
B902000000 mov ecx, 00000002
:004BF736
BA08000000 mov edx, 00000008
:004BF73B
8B4304 mov eax,
dword ptr [ebx+04]
:004BF73E E87D4AF4FF
call 004041C0
:004BF743 8D45E4
lea eax, dword ptr [ebp-1C]
:004BF746 50
push eax
:004BF747
B903000000 mov ecx, 00000003
:004BF74C
BA01000000 mov edx, 00000001
:004BF751
8B430C mov eax,
dword ptr [ebx+0C]*******假的註冊碼
:004BF754 E8674AF4FF
call 004041C0
*******************************************************************************************************
:004BF759
8B45E4 mov eax,
dword ptr [ebp-1C]*******假的註冊碼的前三位
:004BF75C 8B55F8
mov edx, dword ptr [ebp-08]********真的註冊碼的前三位
:004BF75F
E86449F4FF call 004040C8******************進行比對!!!!
(8)
整理為:
姓名:HOOK[TTG]
註冊碼(假):7123456
註冊碼(真):142-9510-28
(9)
謝謝每一位幫助和關心我的人!!!!!!
(10)
轉載自由!!!但請保持完整!!!!!!!
Writenby HOOK[TTG]
相關文章
- 以殼解殼--SourceRescuer脫殼手記破解分析2004-11-16
- jdpack的脫殼及破解 (5千字)2002-06-25
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- MySQL Manager 2.8.0.1脫殼破解手記破解分析2004-11-03MySql
- 用OD對Aspr加殼程式的手動脫殼及修復 (7千字)2015-11-15
- 菜鳥脫 UltraFXP 0.9941 殼( SVKP )+ 破解2015-11-15
- 脫殼----對用Petite2.2加殼的程式進行手動脫殼的一點分析
(5千字)2000-07-27
- 手動脫ASProtect 的殼-Synchromagic
v3.5 build 5572003-08-03UI
- 手動脫殼的教程(由petite v2.2加殼) (4千字)2001-11-26
- 逆向基礎——軟體手動脫殼技術入門2020-08-19
- “愛加密” 動態脫殼法2014-11-21加密
- 360加固保動態脫殼2014-11-17
- 殼的工作原理脫殼2013-04-10
- Krypton
0.5加殼程式脫殼及輸入表修復記2004-10-06
- 壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼2015-11-15
- 對Crunch v1.1加殼程式的手動脫殼及反跟蹤程式碼的一點分析
(15千字)2000-10-02
- 手動脫掉Asprotect的殼,(給初學者的) (9千字)2002-01-24
- VBExplorer.exe脫殼教程
附脫殼指令碼2015-11-15指令碼
- 不脫殼破解極光多能鬧鐘
(16千字)2003-04-14
- 魔術情書
6.55 破解過程+不脫殼打破解補丁【原創】2004-12-07
- ExeStealth 常用脫殼方法 + ExeStealth V2.72主程式脫殼2015-11-15
- 破解NetAlert v2 [熱點]
指導如何自動脫殼!! (4千字)2000-03-16
- Asprotect1.23 Rc4 之SynchroMagic脫殼修復+破解2015-11-15
- 脫殼基本知識2015-11-15
- SoftDefender主程式脫殼2015-11-15
- International CueClub主程式脫殼(Softwrap殼)2004-09-12
- 用Ollydbg手脫Petite
V2.2加殼的DLL2004-12-27
- 老妖的 C32Asm V0.4.12 脫殼+修復+破解2015-11-15ASM
- Blaze Media Pro5.05脫殼+基本修復CC(int3)+破解2015-11-15
- iOS逆向學習之五(加殼?脫殼?)2019-10-10iOS
- EZIP1.0脫殼手記 ――娃娃/[CCG] (3千字)2001-11-16
- 先分析,再脫殼(一)2003-09-04
- IconEdit2
脫殼2002-03-28
- 淺談SVKP 1.3X殼的輸入表修復――登錄檔醫生 V2.96 脫殼+破解2015-11-15
- 十、iOS逆向之《越獄砸殼/ipa脫殼》2021-03-18iOS
- C32Asm外殼脫殼分析筆記2015-11-15ASM筆記
- ASProtect 1.23RC4之System Cleaner
4.91d脫殼修復and破解2015-11-15
- 用Ollydbg快速手脫Krypton 0.5加殼程式――Krypton主程式
等2015-11-15