DAEMON Protect 0.6.7脫殼――protect beta-last.exe主程式
DAEMON Protect 0.6.7脫殼――protect beta-last.exe主程式
下載地址: http://daemon.anticrack.de/protect%20last%20beta.zip
軟體大小: 229 KB
【軟體簡介】:DAEMON 在2002年釋出的殼。新版DAEMON Protect殼主程式沒有公開發布。
【作者宣告】:只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!
【除錯環境】:WinXP、Ollydbg、PEiD、LordPE、ImportREC
―――――――――――――――――――――――――――――――――
【脫殼過程】:
DAEMON Protect 是“傳說中的人物” DAEMON 在2002年釋出的殼。“people don't cry, it's damn incompatible so be warned... use it only @ tasm generated files!!! otherwise it will fail in 90% :))) ”
呵呵,這個舊版是沒有最終完成的作品。只能自己執行,加殼後的程式無法執行。
索性就以這個能夠執行的主程式看看 DAEMON Protect 0.6.7殼吧! :-)
――――――――――――――――――――――――
設定Ollydbg忽略除了“記憶體訪問異常”之外的所有其它異常選項。老規矩:用IsDebug 1.4外掛去掉偵錯程式標誌。
00429065 60 pushad//進入OD後停在這
00429066 60 pushad
00429067 9C pushfd
00429068 8CC9 mov cx,cs
0042906A 32C9 xor cl,cl
0042906C E3 0C jecxz short protect_.0042907A
0042907A 9D popfd
0042907B 61 popad
0042907C 0FC0FF xadd bh,bh
0042907F 0FA4EB 12 shld ebx,ebp,12
00429083 8B7424 18 mov esi,dword ptr ss:[esp+18]
00429087 0FBF2D CE444300 movsx ebp,word ptr ds:[4344CE]
0042908E 23C0 and eax,eax
00429090 83CA 15 or edx,15
00429093 83D7 DF adc edi,-21
00429096 66:83C8 E0 or ax,0FFE0
0042909A BE 0BAC933F mov esi,3F93AC0B
0042909F 034424 08 add eax,dword ptr ss:[esp+8]
004290A3 0F8E 3B010000 jle protect_.004291E4
―――――――――――――――――――――――――――――――――
一、避開IAT加密
F9執行,程式中斷在 記憶體異常 處
00429C85 8921 mov dword ptr ds:[ecx],esp//第1次異常
0042A3B2 CD 68 int 68//第2次異常
這次異常時間較長,DAEMON 放了一些干擾的異常程式碼,耐心點,去沏壺茶吧,呵呵 :-)
0042B641 8B00 mov eax,dword ptr ds:[eax]//第3次異常,我們開始工作了! 8)
0042B643 FF95 9E694000 call dword ptr ss:[ebp+40699E] ; kernel32.LoadLibraryA
0042B649 8985 35C94000 mov dword ptr ss:[ebp+40C935],eax
//下斷,Shift+F9斷下後就可以把0042B641處的第3次異常程式碼NOP掉了,省點時間 ★
0042B64F 8BB5 41C94000 mov esi,dword ptr ss:[ebp+40C941]; Protect.0042CCA8
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
可以看見將要處理的函式名: 8)
0042CCA8 47 6C 6F 62 61 6C 46 72 65 65 00 43 72 65 61 74 GlobalFree.Creat
0042CCB8 65 46 69 6C 65 41 00 41 6C 6C 6F 63 43 6F 6E 73 eFileA.AllocCons
0042CCC8 6F 6C 65 00 47 65 74 46 69 6C 65 53 69 7A 65 00 ole.GetFileSize.
0042CCD8 47 65 74 53 74 64 48 61 6E 64 6C 65 00 47 65 74 GetStdHandle.Get
0042CCE8 54 69 63 6B 43 6F 75 6E 74 00 45 78 69 74 50 72 TickCount.ExitPr
0042CCF8 6F 63 65 73 73 00 43 6C 6F 73 65 48 61 6E 64 6C ocess.CloseHandl
0042CD08 65 00 52 65 61 64 46 69 6C 65 00 53 65 74 46 69 e.ReadFile.SetFi
0042CD18 6C 65 41 74 74 72 69 62 75 74 65 73 41 00 53 65 leAttributesA.Se
0042CD28 74 46 69 6C 65 50 6F 69 6E 74 65 72 00 56 69 72 tFilePointer.Vir
0042CD38 74 75 61 6C 41 6C 6C 6F 63 00 56 69 72 74 75 61 tualAlloc.Virtua
0042CD48 6C 46 72 65 65 00 57 72 69 74 65 43 6F 6E 73 6F lFree.WriteConso
0042CD58 6C 65 41 00 57 72 69 74 65 46 69 6C 65 00 47 6C leA.WriteFile.Gl
0042CD68 6F 62 61 6C 41 6C 6C 6F 63 00 4D 65 73 73 61 67 obalAlloc.Messag
0042CD78 65 42 6F 78 41 00 47 65 74 4F 70 65 6E 46 69 6C eBoxA.GetOpenFil
0042CD88 65 4E 61 6D 65 41 00 eNameA.
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
0042B655 56 push esi
0042B656 AC lods byte ptr ds:[esi]
0042B657 84C0 test al,al
0042B659 75 FB jnz short Protect.0042B656
//依次處理kernel32.dll、user32.dll、comdlg32.dll共三個DLL的函式,呵呵,幸好不多 :-)
0042B65B 89B5 41C94000 mov dword ptr ss:[ebp+40C941],esi
0042B661 5E pop esi
0042B662 89B5 45C94000 mov dword ptr ss:[ebp+40C945],esi
0042B668 56 push esi
0042B669 FFB5 35C94000 push dword ptr ss:[ebp+40C935]
0042B66F 60 pushad
0042B670 B9 2D000000 mov ecx,2D
0042B675 8D85 FF8F4000 lea eax,dword ptr ss:[ebp+408FFF]
0042B67B 803408 01 xor byte ptr ds:[eax+ecx],1
0042B67F E2 FA loopd short Protect.0042B67B
0042B681 C685 F48F4000 00 mov byte ptr ss:[ebp+408FF4],0
0042B688 61 popad
0042B689 8B85 A2694000 mov eax,dword ptr ss:[ebp+4069A2]; kernel32.GetProcAddress
0042B68F BB 10000000 mov ebx,10
0042B694 803C18 CC cmp byte ptr ds:[eax+ebx],0CC//檢測GetProcAddress前16個位元組有無被下斷
0042B698 74 1C je short Protect.0042B6B6
0042B69A 4B dec ebx//EBX=10
0042B69B 79 F7 jns short Protect.0042B694
0042B69D 33C0 xor eax,eax
0042B69F 8B00 mov eax,dword ptr ds:[eax]//異常!可以NOP掉!:-)
0042B6A1 FF95 A2694000 call dword ptr ss:[ebp+4069A2]; kernel32.GetProcAddress
0042B6A7 85C0 test eax,eax//得到函式地址
0042B6A9 75 0B jnz short Protect.0042B6B6
0042B6AB 89B5 41C94000 mov dword ptr ss:[ebp+40C941],esi
0042B6B1 E9 47FFFFFF jmp Protect.0042B5FD
0042B6B6 8BBD 3DC94000 mov edi,dword ptr ss:[ebp+40C93D]
0042B6BC 8B7C3D 00 mov edi,dword ptr ss:[ebp+edi]
0042B6C0 03BD 22C84000 add edi,dword ptr ss:[ebp+40C822]//算出IAT地址 ★
0042B6C6 51 push ecx
0042B6C7 8BCF mov ecx,edi//準備重定位地址
0042B6C9 8BBD 49C94000 mov edi,dword ptr ss:[ebp+40C949]
0042B6CF 03BD 2DC94000 add edi,dword ptr ss:[ebp+40C92D]
0042B6D5 57 push edi
0042B6D6 83E7 0F and edi,0F
0042B6D9 83FF 05 cmp edi,5
0042B6DC 0F82 1C010000 jb Protect.0042B7FE//①、改為JMP 0042B7FE★
0042B6E2 83FF 0A cmp edi,0A
0042B6E5 0F82 A5000000 jb Protect.0042B790//混亂IAT!
0042B7FE 5F pop edi//準備 重定位
0042B7FF C607 B8 mov byte ptr ds:[edi],0B8
0042B802 3385 41C94000 xor eax,dword ptr ss:[ebp+40C941]//加密函式
//②、修改為:mov dword ptr ds:[ecx],eax 放入正確的函式 ★
0042B808 8947 01 mov dword ptr ds:[edi+1],eax
0042B80B 8B85 41C94000 mov eax,dword ptr ss:[ebp+40C941]
0042B811 C647 05 35 mov byte ptr ds:[edi+5],35
0042B815 8947 06 mov dword ptr ds:[edi+6],eax
0042B818 66:C747 0A 50C3 mov word ptr ds:[edi+A],0C350
0042B81E 57 push edi
0042B81F 51 push ecx
0042B820 83E7 0F and edi,0F
0042B823 83E1 0F and ecx,0F
0042B826 33F9 xor edi,ecx
0042B828 03F9 add edi,ecx
0042B82A 01BD 2DC94000 add dword ptr ss:[ebp+40C92D],edi
0042B830 59 pop ecx
0042B831 5F pop edi
0042B832 8385 2DC94000 15 add dword ptr ss:[ebp+40C92D],15
0042B839 8939 mov dword ptr ds:[ecx],edi//寫入重定位地址 ③、修改:NOP掉!★
0042B83B 59 pop ecx
0042B83C 8385 3DC94000 04 add dword ptr ss:[ebp+40C93D],4
0042B843 8BBD 3DC94000 mov edi,dword ptr ss:[ebp+40C93D]
0042B849 8B7C3D 00 mov edi,dword ptr ss:[ebp+edi]
0042B84D 60 pushad
0042B84E B9 F1000000 mov ecx,0F1
0042B853 8D85 DD914000 lea eax,dword ptr ss:[ebp+4091DD]
0042B859 803408 01 xor byte ptr ds:[eax+ecx],1
0042B85D E2 FA loopd short Protect.0042B859//解出下步程式碼
0042B85F C685 D2914000 00 mov byte ptr ss:[ebp+4091D2],0
0042B866 61 popad
0042B867 83FF 00 cmp edi,0
0042B86A 0F85 DFFDFFFF jnz Protect.0042B64F//迴圈處理每個DLL的函式
0042B870 33C0 xor eax,eax//到這裡輸入表就處理完畢了 :-)
0042B872 8B00 mov eax,dword ptr ds:[eax]
0042B874 8CC9 mov cx,cs
0042B876 32C9 xor cl,cl
0042B878 E3 02 jecxz short Protect.0042B87C
0042B87A EB 05 jmp short Protect.0042B881
在0042B870中斷後輸入表就處理結束了,為了防止程式有自校驗,我們把上面修改的幾處程式碼再還原, :-) 其實這個DAEMON Protect 0.6.7舊版沒有自校驗的。OK,輸入表修復完畢,得到完整的輸入表。下一步就是OEP的問題啦
―――――――――――――――――――――――――――――――――
二、尋找OEP、DUMP程式完成脫殼
呵呵,這裡就用快速方法吧。Ctrl+F 在當前位置搜尋命令:add esp,4
0042B8D6 83C4 04 add esp,4//找到第1處
0042BEB4 83C4 04 add esp,4//找到第2處 下斷!
取消以前的所有斷點。在0042BEB4處下斷,現在設定Ollydbg忽略所有異常選項,★ Shift+F9執行!
0042BEAE 64:67:8F06 0000 pop dword ptr fs:[0] ; Protect.004059F7
0042BEB4 83C4 04 add esp,4//斷下!
0042BEB7 C3 retn//飛向光明之巔!:-)
004059F7 6A 00 push 0//用LordPE糾正ImageSize後完全DUMP這個程式
004059F9 68 80000000 push 80
004059FE 6A 03 push 3
00405A00 6A 00 push 0
00405A02 6A 00 push 0
00405A04 68 000000C0 push C0000000
00405A09 68 90404200 push Protect.00424090 ; ASCII "cr.ini"
00405A0E E8 CD950200 call Protect.0042EFE0 ; jmp to kernel32.CreateFileA
00405A13 A3 5E454200 mov dword ptr ds:[42455E],eax
00405A18 83F8 FF cmp eax,-1
00405A1B 75 18 jnz short Protect.00405A35
00405A1D 6A 00 push 0
00405A1F 68 C8404200 push Protect.004240C8; ASCII "SHIT!!!"
00405A24 68 01414200 push Protect.00424101; ASCII "hmmm couldn't open the cr.ini :(((
00405A29 6A 00 push 0
00405A2B E8 ED870000 call Protect.0040E21D; jmp to user32.MessageBoxA
執行ImportREC,選擇這個程式。把OEP改為000059F7,IATRVA=000250A0 IATSize=00000058,點IT AutoSearch,點“Get Import”,函式全部是有效的。FixDump,正常執行!
―――――――――――――――――――――――――――――――――
, _/
/| _.-~/ _ , 青春都一晌
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 換了破解輕狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊――fly [OCN][FCG][NUKE][DCM]
2004-03-26 03:00
相關文章
- Visual Protect V3.54 脫殼 ―― VisualProtect.exe
主程式2015-11-15
- Alex-protect外殼完全分析【原創】2004-12-07
- apk加殼加密工具(apk protect) v1.0下載2020-12-15APK加密
- SoftDefender主程式脫殼2015-11-15
- International CueClub主程式脫殼(Softwrap殼)2004-09-12
- ExeStealth 常用脫殼方法 + ExeStealth V2.72主程式脫殼2015-11-15
- Armadillo 3.6主程式脫殼2015-11-15
- Greenplum gp_vmem_protect_limit 出錯2013-06-26MIT
- emSecure Use Digital Signatures to protect your products2015-09-20Git
- EncryptPE
2003.5.18 主程式脫殼2004-06-19
- 壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼2015-11-15
- Alex
Protector V1.0 脫殼――alexprot.exe 主程式2004-10-17
- XcR V0.11 脫殼――XcR.ExE 主程式2015-11-15
- 用Ollydbg快速手脫Krypton 0.5加殼程式――Krypton主程式
等2015-11-15
- Lock98主程式脫殼筆記 (1千字)2015-11-15筆記
- PeX V0.99b脫殼――PeX.exe主程式2015-11-15
- VGCrypt PE Encryptor V0.75脫殼――Vgcrypt.exe
主程式2015-11-15GC
- 用Arm3.75加殼的cc
版+iat亂序主程式的脫殼 (1)2004-10-02
- Android最佳安全應用程式已出爐,Google Play Protect曝大冷門2018-12-20AndroidGo
- 幻影 V2.33 脫殼+修復――dbpe.exe主程式2015-11-15
- 偽 SVK Protector 1.32 脫殼+修復――SVK Protector
DEMO 1.32 主程式2015-11-15
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- 殼的工作原理脫殼2013-04-10
- 如何破解df3 v1.00.17 CD Protect (3千字)2000-12-28
- 對Crunch v1.1主程式檔案的脫殼方法 ---ljtt2000-11-30
- Protection Plus V4.X 脫殼――SoftwareKey V1.1 主程式2015-11-15
- [翻譯]利用程式碼注入脫殼2015-11-15
- VBExplorer.exe脫殼教程
附脫殼指令碼2015-11-15指令碼
- [20210310]db_lost_write_protect引數.txt2021-03-10
- 重置欺詐日益猖獗AppsFlyer推出Protect360防範方案2018-03-02APP
- ACProtect 1.21專業版主程式的脫殼2015-11-15
- 明月幾時有――ASProtect
V1.31 build 06.14主程式 脫殼2004-10-01UI
- PC Guard for Win32 V5.0 DEMO 脫殼 ――
PCGWIN32.EXE 主程式2015-11-15Win32
- ASProtect 1.23 SDK之 Aspack2.12r 主程式脫殼去暗樁2015-11-15
- Protect Your Bubble:智慧機使用者的10大粗心習慣——資訊圖2014-02-04
- 以殼解殼--SourceRescuer脫殼手記破解分析2004-11-16
- Krypton
0.5加殼程式脫殼及輸入表修復記2004-10-06
- Armadillo V3.6雙程式標準殼 ------神速脫殼大法2015-11-15