幻影 V2.33 脫殼+修復――dbpe.exe主程式
標 題:幻影 V2.33 脫殼+修復——dbpe.exe主程式
發信人:fly
時 間:2004年1月08日 10:39
詳細資訊:
幻影 V2.33 脫殼+修復――dbpe.exe主程式
幻影下載: http://dbpe.allit.net/ (或者網上搜尋)
軟體大小: 2.94 M
【軟體簡介】:幻影 是一個為 WINDOWS 下的EXE,DLL,OCX.32位可執行檔案加密系統。 它為程式加上一層堅硬的保護殼。還可以為程式設定限制註冊功能。即使你沒有程式的原始碼你也可以用幻影在程式上加上執行次數限制,執行天數限制,執行有效日期限制。加密程式支援Windows98,Windows Me,Windows 2000,Windows XP。
【作者宣告】:只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!
【除錯環境】:WinXP、flyODBG、PEiD、LordPE、ImportREC、Idt Tool
―――――――――――――――――――――――――――――――――
【過 程】:
Ollydbg1.09D 中文修改版 ―― flyODBG 下載頁面:
http://tongtian.net/pediybbs/viewtopic.php?t=1532
OllyDbg各類外掛:可以下載 花指令去除器、IsDebug等外掛
http://www.pediy.com/tools/Debuggers/ollydbg/plugin.htm
設定Ollydbg忽略所有的異常選項。老規矩:用IsDebug 1.4外掛去掉flyODBG的偵錯程式標誌。載入後彈出“是壓縮程式碼――要繼續進行分析嗎?”,點“否”。
―――――――――――――――――――――――――――――――――
一、淺談 幻影 的除錯
幻影 是國產加殼程式的驕傲!雖然有了脫殼機,但幻影依舊是值得研究的。幻影 最大的特點可謂是其反跟蹤了,幻影的Anti能力之強在Xtreme-Protector未出之前是首屈一指的。正如 CoDe_inJect 大俠所言:“這個殼在國內如日中天,奧妙在於哪裡?就在於anti做得比較完善,它是我見到的最早使用驅動的殼,雖然驅動的運用僅僅是為了在NT下切到Ring0,但他開創了殼使用驅動的先例。對idt進行修改,改變了int 1 and int 3的地址。”
雖然 幻影 威力巨大,但還是有許多的Cracker不顧藍色畫面當機、硬碟傷痕而潛心研究,共享出寶貴的資料!感謝 :-)
偶覺得用修改的Ollydbg+IsDebug+花指令去除器等外掛能夠比較“爽”的除錯幻影。
對於 幻影 對IDT的修改,偶找了個小工具:tMD[CsP]的Idt Tool,這樣用Ollydbg除錯出錯後用Idt Tool恢復一下除錯前的IDT就不會讓 幻影 來幫偶們自動重啟啦。:-D
很忙,抽點時間再次分析一下,算是對前幾天發的《1分鐘尋找 幻影 V2.33 殼的OEP》的補充吧。
―――――――――――――――――――――――――――――――――
二、避開IAT加密,得到正確的輸入表
004FE000 EB 20 jmp short dbpe.004FE022//進入OD後停在這!
F9執行,彈出要求註冊的對話方塊。此時在GetProcAddress處下硬體執行斷點。
當然要點“試用”啦,返回OD,再次中斷。
77E5A5FD 55 push ebp//斷在這!然後取消這個硬體斷點
77E5A5FE 8BEC mov ebp,esp
77E5A600 51 push ecx
77E5A601 51 push ecx
77E5A602 53 push ebx
77E5A603 57 push edi
77E5A604 8B7D 0C mov edi,dword ptr ss:[ebp+C]
77E5A607 BB FFFF0000 mov ebx,0FFFF
77E5A60C 3BFB cmp edi,ebx
77E5A60E 0F86 6B83FFFF jbe kernel32.77E5297F
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
看看GetProcAddress堆疊:
0012FF78 7FF80D42 /CALL 到 GetProcAddress 來自 7FF80D3C ★★這裡!:-)
0012FF7C 77DA0000 |hModule = 77DA0000 (advapi32)
0012FF80 004D0E7E ProcNameOrOrdinal = "RegCloseKey"
0012FF84 7FF8571A ASCII "user.dat"
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
Ctrl+G:7FF80D42 在7FF80D42處再下 硬體執行 斷點!F9執行,斷下!
執行 hoto 大俠的 花指令去除器 ,填入 地址=7FF7EEBB 大小=FFFF 呵呵,大範圍搜尋,彈出去除了1842個花指令,看看效果:牛!:-) 看來 hoto 大俠是在分析 幻影 的時候寫這個外掛的,呵呵。
7FF80D35 50 push eax
7FF80D36 FFB5 F9C64200 push dword ptr ss:[ebp+42C6F9]
7FF80D3C FF95 02854300 call dword ptr ss:[ebp+438502]; kernel32.GetProcAddress
7FF80D42 90 nop//斷在這!然後取消斷點
7FF80D43 90 nop
…… …… 省 略 …… ……
7FF80D9F 90 nop
7FF80DA0 90 nop
7FF80DA1 3985 45134300 cmp dword ptr ss:[ebp+431345],eax; //EAX=正確函式
7FF80DA7 75 4B jnz short 7FF80DF4
7FF80DA9 90 nop
7FF80DAA 90 nop
…… …… 省 略 …… ……
7FF80DD4 90 nop
7FF80DD5 90 nop
7FF80DD6 C685 547C4200 01 mov byte ptr ss:[ebp+427C54],1
7FF80DDD 90 nop
7FF80DDE 90 nop
…… …… 省 略 …… ……
7FF80E24 90 nop
7FF80E25 90 nop
7FF80E26 80BD 547C4200 01 cmp byte ptr ss:[ebp+427C54],1
7FF80E2D 0F85 59030000 jnz 7FF8118C
7FF80E33 90 nop
…… …… 省 略 …… ……
7FF81036 90 nop
7FF81037 90 nop
7FF81038 8B85 7CD84200 mov eax,dword ptr ss:[ebp+42D87C]
7FF8103E 90 nop
7FF8103F 90 nop
…… …… 省 略 …… ……
7FF8106F 90 nop
7FF81070 90 nop
7FF81071 33D2 xor edx,edx
7FF81073 90 nop
7FF81074 90 nop
…… …… 省 略 …… ……
7FF810C4 90 nop
7FF810C5 90 nop
7FF810C6 03F8 add edi,eax
7FF810C8 90 nop
7FF810C9 90 nop
…… …… 省 略 …… ……
7FF810F8 90 nop
7FF810F9 90 nop
7FF810FA 89BD 4C7C4200 mov dword ptr ss:[ebp+427C4C],edi
7FF81100 90 nop
7FF81101 90 nop
…… …… 省 略 …… ……
7FF811E1 39BD D7D14200 cmp dword ptr ss:[ebp+42D1D7],edi
7FF811E7 76 10 jbe short 7FF811F9
7FF811E9 90 nop
7FF811EA 90 nop
7FF811EB 90 nop
7FF811EC 90 nop
7FF811ED 90 nop
7FF811EE 89BD D7D14200 mov dword ptr ss:[ebp+42D1D7],edi//①、NOP掉! ★★★
…… …… 省 略 …… ……
7FF811DF 90 nop
7FF811E0 90 nop
7FF811E1 39BD D7D14200 cmp dword ptr ss:[ebp+42D1D7],edi
7FF811E7 76 10 jbe short 7FF811F9
…… …… 省 略 …… ……
7FF8122D 90 nop
7FF8122E 90 nop
7FF8122F 89BD D3D14200 mov dword ptr ss:[ebp+42D1D3],edi//②、NOP掉! ★★★
7FF81235 90 nop
…… …… 省 略 …… ……
7FF8126C 90 nop
7FF8126D 890F mov dword ptr ds:[edi],ecx ★★★
//③、改為mov dword ptr ds:[edi],eax 呵呵,正確的函式寫入正確的地址 :-)
7FF81272 90 nop
7FF81273 90 nop
7FF81274 83C6 04 add esi,4
7FF81277 90 nop
7FF81278 90 nop
7FF81279 90 nop
7FF8127A 90 nop
7FF8127B 90 nop
7FF8127C 83C7 04 add edi,4
…… …… 省 略 …… ……
7FF81296 E9 71F9FFFF jmp 7FF80C0C//迴圈!
OK,修改3個地方偶就得到了完整的輸入表啦!:-)
1、7FF811EE mov dword ptr ss:[ebp+42D1D7],edi//①、NOP掉!
2、7FF8122F mov dword ptr ss:[ebp+42D1D3],edi//②、NOP掉!
3、7FF8126D mov dword ptr ds:[edi],ecx
改為 mov dword ptr ds:[edi],eax//正確的函式寫入正確的地址
1和2這兩處NOP掉是避免 幻影 對 地址指標 的加密,這樣函式就寫入正確的地址了。
―――――――――――――――――――――――――――――――――
二、尋找OEP,DUMP程式
可以參看偶前幾天發的筆記:《1分鐘尋找 幻影 V2.33 殼的OEP》
http://tongtian.net/pediybbs/viewtopic.php?p=14280
不用麻煩,在改完上面的3個地方後,Ctrl+F在當前位置下查詢命令:jmp eax 在7FF8BFE7處 ,這就是 ☆夢寐以求☆ 的OEP一跳 :-) 可以在其上的POPAD的7FF8BFDB記憶體處下 記憶體訪問 斷點,F9斷在7FF8BFDB
7FF8BFDB 61 popad //斷在這!
7FF8BFDC 58 pop eax ;00401000//這就是OEP值
7FF8BFDD 83F8 FF cmp eax,-1
7FF8BFE0 75 05 jnz short 7FF8BFE7
7FF8BFE2 33C0 xor eax,eax
7FF8BFE4 C2 0C00 retn 0C
7FF8BFE7 FFE0 jmp eax//飛向光明之巔!:-)
00401000 EB 10 jmp short 00401012//可以在這兒用LordPE糾正ImageSize後完全DUMP這個程式
00401002 66:623A bound di,dword ptr ds:[edx]
00401005 43 inc ebx
00401006 2B2B sub ebp,dword ptr ds:[ebx]
00401008 48 dec eax
00401009 4F dec edi
0040100A 4F dec edi
0040100B 4B dec ebx
0040100C 90 nop
0040100D E9 30844B00 jmp 008B9442
00401012 A1 23844B00 mov eax,dword ptr ds:[4B8423]
00401017 C1E0 02 shl eax,2
0040101A A3 27844B00 mov dword ptr ds:[4B8427],eax
0040101F 52 push edx
00401020 6A 00 push 0
00401022 E8 3B5F0B00 call 004B6F62 ; jmp to kernel32.GetModuleHandleA
――――――――――――――――――――――――
三、修正部分地址
幻影的主程式還有一些地址加密:
004B6E58 FF25 08014D80 jmp dword ptr ds:[804D0108]
004B6E5E FF25 0C014D80 jmp dword ptr ds:[804D010C]
…… …… 省 略 …… ……
004B7302 FF25 B8074D80 jmp dword ptr ds:[804D07B8]
004B7308 FF25 BC074D80 jmp dword ptr ds:[804D07BC]
這些地方的[804D0108]是經過修改了,此時修復輸入表還是無法執行的。不過偶們可以再次簡單處理使其指向正確的地址。
把上面地址段內的[80XXXXXX]前面的80全部替換成00,就OK啦。 呵呵 :-)
004B6E58 FF25 08014D00 jmp dword ptr ds:[4D0108] ; advapi32.RegCloseKey
004B6E5E FF25 0C014D00 jmp dword ptr ds:[4D010C] ; advapi32.RegCreateKeyExA
004B6E64 FF25 10014D00 jmp dword ptr ds:[4D0110] ; advapi32.RegFlushKey
004B6E6A FF25 14014D00 jmp dword ptr ds:[4D0114] ; advapi32.RegOpenKeyExA
004B6E70 FF25 18014D00 jmp dword ptr ds:[4D0118] ; advapi32.RegQueryValueExA
可以直接在Ollydbg裡修改後再DUMP程式,也可以DUMP之後用16進位制工具修改。
注意:不要“濫殺”無辜!:-D 也不能遺漏。改的只是jmp dword ptr ds:[80XXXXXX]的前2位:80->00
―――――――――――――――――――――――――――――――――
四、修復輸入表
執行ImportREC,選擇這個程式。把OEP改為00001000,RVA=000D0108 大小=00000CF0 點IT AutoSearch,點“Get Import”,CUT掉幾個無效函式。FixDump,正常執行!
雖然 幻影 主程式能夠正常執行了,但是執行加殼功能時會提示“建立資料檔案錯誤!加密失敗!”,呵呵,這個暗樁偶就不追了,有興趣就自己再去研究吧,或者對比swift大俠的破解版分析。
相信 D Boy 老師的 幻影 新版加殼系統就快“出爐”了。:-)
―――――――――――――――――――――――――――――――――
, _/
/| _.-~/ _ , 青春都一餉
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 換了破解輕狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊――fly [OCN][FCG][NUKE][DCM]
2004-01-08 22:22
相關文章
- 偽 SVK Protector 1.32 脫殼+修復――SVK Protector
DEMO 1.32 主程式2015-11-15
- SoftDefender主程式脫殼2015-11-15
- Krypton
0.5加殼程式脫殼及輸入表修復記2004-10-06
- International CueClub主程式脫殼(Softwrap殼)2004-09-12
- ExeStealth 常用脫殼方法 + ExeStealth V2.72主程式脫殼2015-11-15
- Armadillo 3.6主程式脫殼2015-11-15
- 淺談DBPE2.33脫殼修復2015-11-15
- 幻影v1.5b3脫殼分析筆記2000-09-15筆記
- 用OD對Aspr加殼程式的手動脫殼及修復 (7千字)2015-11-15
- HTMLZip脫殼後的Import Table的修復 (750字)2001-02-10HTMLImport
- 幻影v1.5b3脫殼分析筆記之二2000-09-15筆記
- Asprotect1.23 Rc4 之SynchroMagic脫殼修復+破解2015-11-15
- EncryptPE
2003.5.18 主程式脫殼2004-06-19
- 用Armadillo標準加殼的程式的脫殼和引入表修復方案---OLLYDBG (8千字)2015-11-15
- 壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼2015-11-15
- 老妖的 C32Asm V0.4.12 脫殼+修復+破解2015-11-15ASM
- Blaze Media Pro5.05脫殼+基本修復CC(int3)+破解2015-11-15
- 睡不著,帖一個:aspr程式的脫殼修復體會
(8千字)2015-11-15
- Alex
Protector V1.0 脫殼――alexprot.exe 主程式2004-10-17
- XcR V0.11 脫殼――XcR.ExE 主程式2015-11-15
- DAEMON Protect 0.6.7脫殼――protect beta-last.exe主程式2015-11-15AST
- 用Ollydbg快速手脫Krypton 0.5加殼程式――Krypton主程式
等2015-11-15
- 某殼分析+修復(二)2018-05-14
- 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
- ASProtect 1.23RC4之System Cleaner
4.91d脫殼修復and破解2015-11-15
- Visual Protect V3.54 脫殼 ―― VisualProtect.exe
主程式2015-11-15
- 淺談SVKP 1.3X殼的輸入表修復――登錄檔醫生 V2.96 脫殼+破解2015-11-15
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- 殼的工作原理脫殼2013-04-10
- 對Crunch v1.1主程式檔案的脫殼方法 ---ljtt2000-11-30
- Protection Plus V4.X 脫殼――SoftwareKey V1.1 主程式2015-11-15
- Acprotect之完美解除安裝XP V9.15脫殼修復 (狗尾續貂)2015-11-15
- [翻譯]利用程式碼注入脫殼2015-11-15
- VBExplorer.exe脫殼教程
附脫殼指令碼2015-11-15指令碼
- 模擬跟蹤+修復方法之ACProtect脫殼――完美解除安裝XP V9.122015-11-15