ASTON Ver1.5 (3千字)
1、Asprotect1.22保護,G到OEP(41f544)處直接Dump取程式。
2、按正常方法用ImportREC修正IAT。
3、執行脫殼後的程式非法操作:
暗樁一
這個程式關鍵是PropertySheet函式的PROPSHEETHEADER結構陣列,脫殼後與脫殼前該結構值變化了。
int PropertySheet(
LPCPROPSHEETHEADER lppsph
);
0167:0041ED31 C743040C010000 MOV DWord Ptr [EBX+04],0000010C //0000010C傳給PROPSHEETHEADER結構
0167:0041ED38 33C9 XOR ECX,ECX
0167:0041ED3A 894B08 MOV [EBX+08],ECX
0167:0041ED3D 8B12 MOV EDX,[EDX]
0167:0041ED3F 89530C MOV [EBX+0C],EDX
0167:0041ED42 C7431001000000 MOV DWord Ptr [EBX+10],00000001
0167:0041ED49 8B15FC104200 MOV EDX,[004210FC]
0167:0041ED4F 8B12 MOV EDX,[EDX]
0167:0041ED51 895314 MOV [EBX+14],EDX
0167:0041ED54 C7431808000000 MOV DWord Ptr [EBX+18],00000008
0167:0041ED5B 8B1510164200 MOV EDX,[00421610]
0167:0041ED61 8B12 MOV EDX,[EDX]
0167:0041ED63 89531C MOV [EBX+1C],EDX
0167:0041ED66 894320 MOV [EBX+20],EAX
0167:0041ED69 B8688F4100 MOV EAX,00418F68
0167:0041ED6E 894324 MOV [EBX+24],EAX
0167:0041ED71 53 PUSH EBX
0167:0041ED72 55 PUSH EBP
0167:0041ED73 31D2 XOR EDX,EDX
0167:0041ED75 89E5 MOV EBP,ESP
0167:0041ED77 55 PUSH EBP
0167:0041ED78 68ADED4100 PUSH 0041EDAD //改成 PUSH 0041EDAB,出異常就跳到此,哈哈,爽。
0167:0041ED7D 6890EA4100 PUSH 0041EA90
0167:0041ED82 648B02 MOV EAX,FS:[EDX]
0167:0041ED85 890534224300 MOV [00432234],EAX
0167:0041ED8B 50 PUSH EAX
0167:0041ED8C 648922 MOV FS:[EDX],ESP //建立SEH
0167:0041ED8F BA54104200 MOV EDX,00421054
0167:0041ED94 B90F000000 MOV ECX,0000000F
下面一段程式碼SMC還原00421054處指令:
0167:0041ED99 FE02 INC Byte Ptr [EDX]
0167:0041ED9B 42 INC EDX
0167:0041ED9C 49 DEC ECX
0167:0041ED9D 75FA JNZ 0041ED99
0167:0041ED9F B854104200 MOV EAX,00421054
0167:0041EDA4 6820114000 PUSH 00401120
0167:0041EDA9 FFD0 CALL Near EAX//即CALL 00421054
{
以下一段程式碼,程式用上述SMC形成:
.........
0167:00421056 MOV EAX,[EAX+02]
0167:00421059 MOV EAX,[`KERNEL32!GetLocalTime`]
0167:0042105B PUSH DWord Ptr [`KERNEL32!GetLocalTime`]
0167:0042105D POP DWord Ptr [`KERNEL32!GetLocalTime`]//脫後的程式在此產生異常會跳到0041EDAD
0167:0042105F JMP Near EBX
}
0167:0041EDAB EB13 JMP 0041EDC0
0167:0041EDAD 8B053C224300 MOV EAX,[0043223C]
0167:0041EDB3 B9F3000000 MOV ECX,000000F3
0167:0041EDB8 21C8 AND EAX,ECX
0167:0041EDBA 89053C224300 MOV [0043223C],EAX//清PROPSHEETHEADER結構的值0000010C為0
0167:0041EDC0 BA54104200 MOV EDX,00421054
0167:0041EDC5 B90F000000 MOV ECX,0000000F
0167:0041EDCA FE0A DEC Byte Ptr [EDX]
0167:0041EDCC 42 INC EDX
0167:0041EDCD 49 DEC ECX
0167:0041EDCE 75FA JNZ 0041EDCA
0167:0041EDD0 31D2 XOR EDX,EDX
0167:0041EDD2 8B0534224300 MOV EAX,[00432234]
0167:0041EDD8 648902 MOV FS:[EDX],EAX
0167:0041EDDB 89EC MOV ESP,EBP
0167:0041EDDD 5D POP EBP
0167:0041EDDE 5B POP EBX
0167:0041EDDF 53 PUSH EBX
0167:0041EDE0 E89F29FEFF CALL 00401784// CALL PropertySheet
//脫殼後D EBX會發現從PROPSHEETHEADER結構資料有一處不對,就是0000010C值,修正後程式所有的介面出來了,但還是非法操作。
暗樁二
本想用hmempcy找出錯的地方,但呼叫太多了,不成功,後來想到訊息函式:
hdc=BeginPaint(Hwnd,&ps);
程式用它獲取裝置描述表,呼叫的也很頻繁的,所以在0167:0041ED78後,啟用BeginPaint斷點,中斷10次,來到如下:
0167:004190A6 50 PUSH EAX
0167:004190A7 8B4508 MOV EAX,[EBP+08]
0167:004190AA 50 PUSH EAX
0167:004190AB E88881FEFF CALL 00401238//呼叫BeginPaint函式
0167:004190B0 8945F4 MOV [EBP-0C],EAX
0167:004190B3 6A01 PUSH 00000001
0167:004190B5 8B45F4 MOV EAX,[EBP-0C]
0167:004190B8 50 PUSH EAX
0167:004190B9 E84A81FEFF CALL 00401208
0167:004190BE A168104200 MOV EAX,[00421068]
0167:004190C3 50 PUSH EAX
0167:004190C4 A164104200 MOV EAX,[00421064]
0167:004190C9 50 PUSH EAX
0167:004190CA E86180FEFF CALL 00401130
0167:004190CF FFD0 CALL Near EAX// 這裡非法操作!執行這EAX=000000,你nop掉就可成功
0167:004190D1 8945F8 MOV [EBP-08],EAX
0167:004190D4 8D45F8 LEA EAX,[EBP-08]
0167:004190D7 50 PUSH EAX
相關文章
- 初學者(9) (3千字)2000-05-07
- 初學者(15) (3千字)2000-07-04
- 初學者(20) (3千字)2000-07-15
- 破解Easy CD-DA Extractor 3 (3千字)2002-03-16
- 破解MP3隨身聽! (3千字)2002-03-28
- 軟體狗,dongle
(3千字)2002-12-17
- 破解入門5 (3千字)2000-09-23
- 暴力破解3 (6千字)2001-02-18
- 財智系列破解 (3千字)2001-07-22
- WinZip Nag 的去除 (3千字)2001-09-13
- 破解實戰!polyview (3千字)2000-06-27View
- Photo Watermark破解(SMC) (3千字)2015-11-15
- diy pe教學3 (28千字)2002-08-14
- 我的破解心得(1) (3千字)2001-03-13
- 我的破解心得(6) (3千字)2001-03-13
- 破解ThumNailer v7.0 (3千字)2001-08-07AI
- 聽力之友1.0破解 (3千字)2002-02-28
- 我的破解之路-BBOY (3千字)2000-07-21
- PicaView 1.32破解實戰
(3千字)2000-03-03View
- Delphi元件破解教程(一)
(3千字)2015-11-15元件
- 如何破解df3 v1.00.17 CD Protect (3千字)2000-12-28
- 脫Crunch/PE -> BitArts的殼。 (3千字)2002-05-03
- HTMLZip 1.0 beta 的脫殼 (3千字)2001-02-03HTML
- Readbook 1.31破解心得
(3千字)2000-03-01
- AC3D3.5 For Windows (13千字)2015-11-153DWindows
- SentinelLM加密分析及破解方法 (3千字)2015-11-15加密
- 打狗棒法:深思3軟體狗(47千字)2002-06-30
- dbpe2.10的asm SDK (3千字)2002-11-03ASM
- 簡單方法避開斷點 (3千字)2003-03-02斷點
- Flagimation1.02 破解(入門) (3千字)2000-10-01
- 炒股理財演算法分析 (3千字)2001-03-31演算法
- flashget0.96去除廣告條方法 (3千字)2001-06-15
- WINZIP的密碼校對原理 (3千字)2001-08-29密碼
- SolSuite v8.0破解手記 (3千字)2001-09-08UI
- 用OllyDBg動態破解入門 (3千字)2001-11-13
- ReGet Junior 2.0破解手記(一) (3千字)2002-02-23
- 可恨的Windows優化大師 (3千字)2000-08-01Windows優化
- 菜鳥破解錄之 CleanReg 3.2.6 (3千字)2000-08-15