壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼
壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼
下載頁面: http://www.skycn.com/soft/11437.html
軟體大小: 1686 KB
軟體語言: 英文
軟體類別: 國外軟體 / 共享版 / 影像捕捉
應用平臺: Win9x/NT/2000/XP
加入時間: 2003-11-19 10:36:07
下載次數: 1332
推薦等級: ****
【軟體簡介】:Mr.Captor 是一個非常好用的螢幕截圖程式!他可以幫助你把看到的任何圖片忠實的保留下來!並可以儲存為BMP, PCX, GIF, JPEG, PNG, TIFF, TGA, CUR, ICO, AVI等格式!支援自定義熱鍵!非常容易使用呀!
【作者宣告】:初學Crack,只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!
【除錯環境】:WinXP、Ollydbg、PEiD、LordPE、ImportREC 1.6
―――――――――――――――――――――――――――――――――
【脫殼過程】:
這次試驗的目標是Mr.Captor V2.7版。這個版本是N久以前下載的,小貓上網就不去找新版了。看到罈子上各位兄弟脫Armadillo脫的如火如荼,呵呵,索性也濫竽充數來一篇啦,除了添柴加火外,沒有什麼價值啦。
MrCaptor.exe用PEiD看:Armadillo 3.00a-3.61,執行看是雙程式,其實還是標準殼。
以前脫Armadillo標準殼一般有兩種流程的操作方法:
1、先走到OEP,DUMP後第2次除錯,直接修改Magic Jump處為JMP,得到輸入表。
2、在Magic Jump 處下硬體斷點,每次改變標誌位使其跳轉。這樣也是一次就脫殼、修復輸入表。但是很慢,如果碰到加密函式多的程式就會吐血的。
OK,請看一下我的方法,壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼 :-)
設定Ollydbg忽略所有的異常選項。老規矩:用IsDebug 1.4外掛去掉Ollydbg的偵錯程式標誌。
――――――――――――――――――――――――
一、使程式把自己當成子程式執行
004BC000 60 pushad//進入OD後停在這!
004BC001 E8 00000000 call MrCaptor.004BC006
004BC006 5D pop ebp
004BC007 50 push eax
004BC008 51 push ecx
004BC009 EB 0F jmp short MrCaptor.004BC01A
下斷:BP OpenMutexA 當然是用mysqladm大蝦的方法啦
77E6074A 55 push ebp//斷在這,看看堆疊
77E6074B 8BEC mov ebp,esp
77E6074D 51 push ecx
77E6074E 51 push ecx
77E6074F 837D 10 00 cmp dword ptr ss:[ebp+10],0
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
BP OpenMutexA 時的堆疊:
0012F574 0049D7D2 /CALL 到 OpenMutexA 來自 MrCaptor.0049D7CC
0012F578 001F0001 |Access = 1F0001
0012F57C 00000000 |Inheritable = FALSE
0012F580 0012FBB4 MutexName = "50C::DAB0194A96" ★注意0012FBB4
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
Ctrl+G:401000 鍵入以下程式碼
00401000 60 pushad
00401001 9C pushfd
00401002 68 B4FB1200 push 12FBB4 ★ 堆疊裡看到的值
00401007 33C0 xor eax,eax
00401009 50 push eax
0040100A 50 push eax
0040100B E8 B4B2A577 call kernel32.CreateMutexA
00401010 9D popfd
00401011 61 popad
00401012 E9 33F7A577 jmp kernel32.OpenMutexA
在401000處新建起源,F9執行,再次中斷在OpenMutexA處。
呵呵,可以把這段程式碼儲存起來,下次用時直接貼上,修改00401002處push的值就OK了。
―――――――――――――――――――――――――――――――――
二、Magic Jump,避開IAT加密
取消以前斷點,下斷:BP GetModuleHandleA+5
77E59F93 837C24 04 00 cmp dword ptr ss:[esp+4],0
77E59F98 0F84 23060000 je kernel32.77E5A5C1//斷在這,注意看堆疊
77E59F9E FF7424 04 push dword ptr ss:[esp+4]
77E59FA2 E8 55080000 call kernel32.77E5A7FC
77E59FA7 85C0 test eax,eax
77E59FA9 74 08 je short kernel32.77E59FB3
77E59FAB FF70 04 push dword ptr ds:[eax+4]
77E59FAE E8 B0060000 call kernel32.GetModuleHandleW
77E59FB3 C2 0400 retn 4
在這裡中斷十幾次,然後Alt+F9返回程式。其實很好判斷返回程式的時機。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
注意看BP GetModuleHandleA+5 時的堆疊變化:
0012D3AC 00C86622 返回到 00C86622 來自 kernel32.GetModuleHandleA
0012D3B0 0012D4E8 ASCII "kernel32.dll"
0012D3AC 00C86622 返回到 00C86622 來自 kernel32.GetModuleHandleA
0012D3B0 0012D4E8 ASCII "user32.dll"
0012D3AC 00C86622 返回到 00C86622 來自 kernel32.GetModuleHandleA
0012D3B0 0012D4E8 ASCII "MSVBVM60.DLL"
0012D3AC 00C86622 返回到 00C86622 來自 kernel32.GetModuleHandleA
0012D3B0 0012D4E8 ASCII "advapi32.dll"
0012D638 00C9C236 返回到 00C9C236 來自 kernel32.GetModuleHandleA ★OK
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
當堆疊如上變化後,就可以Alt+F9返回程式程式碼了。
00C9C230 FF15 D4A0CA00 call dword ptr ds:[CAA0D4] ; kernel32.GetModuleHandleA
00C9C236 3945 E4 cmp dword ptr ss:[ebp-1C],eax//返回這裡
00C9C239 75 09 jnz short 00C9C244
00C9C23B C745 D0 40E2CA00 mov dword ptr ss:[ebp-30],0CAE240
00C9C242 EB 51 jmp short 00C9C295
00C9C244 391D 38E8CA00 cmp dword ptr ds:[CAE838],ebx
00C9C24A BF 38E8CA00 mov edi,0CAE838
00C9C24F 74 44 je short 00C9C295//Magic Jump ★
00C9C251 8B35 5855CB00 mov esi,dword ptr ds:[CB5558]
00C9C257 A1 1C96CB00 mov eax,dword ptr ds:[CB961C]
00C9C25C F647 08 01 test byte ptr ds:[edi+8],1
00C9C260 74 0E je short 00C9C270
00C9C262 8B48 74 mov ecx,dword ptr ds:[eax+74]
00C9C265 3348 70 xor ecx,dword ptr ds:[eax+70]
00C9C268 3348 60 xor ecx,dword ptr ds:[eax+60]
00C9C26B F6C1 80 test cl,80
00C9C26E 75 13 jnz short 00C9C283
以前脫Armadillo 3.0以上的殼時總是在Magic Jump處下 硬體執行 斷點,每次斷下後改標誌Z=1,使其JMP。如果直接改為JMP,程式會異常出錯!Armadillo舊版可以直接改的。今天晚上(或者說是凌晨啦)為了這個問題,我細心跟蹤了數個小時,終於搞定了這個問題!
1、直接改00C9C24F jmp 00C9C295,這樣就不必下硬體斷點每次改標誌位了! :-)
2、Ctrl+F在當前位置查詢命令: salc 在00C9C5A8處,當看到jmp、salc、salc程式碼連在一起時,呵呵,恭喜,找到地方了,在salc上面的jmp處下斷! 8)
00C9C594 FF75 F4 push dword ptr ss:[ebp-C]
00C9C597 E8 A7540000 call 00CA1A43
00C9C59C FF75 BC push dword ptr ss:[ebp-44]
00C9C59F E8 8E430000 call 00CA0932
00C9C5A4 59 pop ecx
00C9C5A5 59 pop ecx
00C9C5A6 EB 03 jmp short 00C9C5AB//此處下斷
00C9C5A8 D6 salc
00C9C5A9 D6 salc
F9執行,斷在00C9C5A6處。當然,由於是動態解碼,每次除錯看到的地址可能是不同的,但程式碼是相同的!其實斷在00C9C5A6處時,IAT解密已經完成了。現在我們返回Magic Jump 處,改回原先修改的程式碼,在00C9C24F處點右鍵->“撤銷選擇”即可。
00C9C24F EB 44 jmp short 00C9C295//修改的Magic Jump,撤銷選擇
00C9C24F 74 44 je short 00C9C295//改回原先的程式碼
為何要這樣做?我發現程式在下面會依據原先的程式碼進行解碼,以前下 硬體斷點 操作沒有修改原始碼,所以解碼正確。而直接修改Magic Jump後改變了原先的程式碼,導致解碼不正確而異常出錯!現在我們在解碼以前恢復原先的程式碼,因此就不會再出錯了! 8)
取消以前的所有斷點。現在就可以在401000段下記憶體斷點了,不用分兩步來操作了,爽!
―――――――――――――――――――――――――――――――――
三、401000段 記憶體斷點 大法,直達OEP
這個方法jwh51兄、fxyang兄等許多兄弟經常使用,我試了一下,果然挺爽。
Alt+M 檢視記憶體,在401000開始的段上下 記憶體訪問斷點,F9執行,直接中斷在OEP處
004378EF 55 push ebp//在這兒用LordPE糾正ImageSize後完全DUMP這個程式
004378F0 8BEC mov ebp,esp
004378F2 6A FF push -1
004378F4 68 98AF4700 push MrCaptor.0047AF98
004378F9 68 546A4300 push MrCaptor.00436A54
004378FE 64:A1 00000000 mov eax,dword ptr fs:[0]
00437904 50 push eax
00437905 64:8925 00000000 mov dword ptr fs:[0],esp
0043790C 83EC 58 sub esp,58
0043790F 53 push ebx
00437910 56 push esi
00437911 57 push edi
00437912 8965 E8 mov dword ptr ss:[ebp-18],esp
00437915 FF15 00F44600 call dword ptr ds:[46F400] ; kernel32.GetVersion
執行ImportREC 1.6,選擇這個程式。把OEP改為000378EF,點IT AutoSearch,CUT掉無效函式。FixDump,正常執行!
測試了一下,這個快速脫殼發對於fxyang兄發的 圍棋助手 等標準殼同樣有效!
――――――――――――――――――――――――
四、破解
程式採用了Armadillo的註冊模組,脫殼後自然就不必註冊了,30天的時間限制也不存在了。
“You have X days left for evaluation”的NAG可以修改以下地方:
00423BE8 3D E7030000 cmp eax,3E7
00423BED 74 3D je short 00423C2C//改為JMP
至於“Unregistered copy of Mr. Captor”等等字樣就隨你改啦。
―――――――――――――――――――――――――――――――――
, _/
/| _.-~/ _ , 青春都一餉
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 換了破解輕狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊――fly [OCN][FCG][NUKE][DCM]
2004-03-16 03:33
相關文章
- 關於雙程式Armadillo標準殼的脫法2015-11-15
- Armadillo V3.6雙程式標準殼 ------神速脫殼大法2015-11-15
- Armadillo 3.6主程式脫殼2015-11-15
- 實戰Armadillo V3.60標準加殼方式的脫殼――WinXP的Notepad2015-11-15
- 殼的工作原理脫殼2013-04-10
- Armadillo V3.01標準加殼方式的脫殼(第一篇)--SoundEdit
Pro2015-11-15
- Armadillo V2.xx標準加殼方式的脫殼(第二篇)--Virtual
Personality 4.02015-11-15
- 用Armadillo標準加殼的程式的脫殼和引入表修復方案---OLLYDBG (8千字)2015-11-15
- ExeStealth 常用脫殼方法 + ExeStealth V2.72主程式脫殼2015-11-15
- International CueClub主程式脫殼(Softwrap殼)2004-09-12
- Armadillo3.60
加殼的EXE檔案脫殼全過程2004-09-08
- SoftDefender主程式脫殼2015-11-15
- 以殼解殼--SourceRescuer脫殼手記破解分析2004-11-16
- VBExplorer.exe脫殼教程
附脫殼指令碼2015-11-15指令碼
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- “愛加密” 動態脫殼法2014-11-21加密
- Armadillo殼時間問題的解決And脫殼――Mr.Captor
V2.82015-11-15APT
- Armadillo 2.52加殼原理分析和改進的脫殼方法
(12千字)2015-11-15
- 脫殼基本知識2015-11-15
- iOS逆向學習之五(加殼?脫殼?)2019-10-10iOS
- 十、iOS逆向之《越獄砸殼/ipa脫殼》2021-03-18iOS
- C32Asm外殼脫殼分析筆記2015-11-15ASM筆記
- 脫殼----對用Petite2.2加殼的程式進行手動脫殼的一點分析
(5千字)2000-07-27
- 先分析,再脫殼(一)2003-09-04
- IconEdit2
脫殼2002-03-28
- [翻譯]利用程式碼注入脫殼2015-11-15
- Krypton
0.5加殼程式脫殼及輸入表修復記2004-10-06
- ACProtect 1.21專業版主程式的脫殼2015-11-15
- 轉載:Petite 脫殼“標準”解決方法 (1千字)2001-02-06
- 360加固保動態脫殼2014-11-17
- EasyBoot5.03脫殼+暴破2004-11-17boot
- 用Ollydbg快速手脫Krypton 0.5加殼程式――Krypton主程式
等2015-11-15
- 脫中國遊戲中心大廳程式的殼2000-10-08遊戲
- 教你如何寫UPX脫殼指令碼2019-05-11指令碼
- ☆Steel
Box☆脫殼――taos的New Protection2004-12-13
- 寫給新手
- 淺談脫殼方法2004-12-18
- EmbedPE
1.13 詳細分析和脫殼2005-01-03
- 脫殼後軟體減肥大法2015-11-15