妖幻TRW and videofixer的脫殼方法之我之拙見 (13千字)
妖幻TRW and videofixer的脫殼方法之我之拙見。
videofixer.exe這個程式會利用Findwindow,或者createfiles 之類的函式查詢TRW,如果發現後用Terminateprocess結束掉TRW。可是他這樣的做法並沒有什麼
用,只是使trw成為妖幻般的偵錯程式。這個時候你用CTRL+N無法撥出,但是此時可以用CTRL+M撥出,如果你以前設定有斷點,這時所有斷點都是有效的。這個時候
程式中是沒有TRW的,記憶體中也沒有TRW的視窗控制程式碼了!這個時候用什麼findwindow、createfiles之類的函式再也無法發現TRW了,所以我說videofixer根本不反
TRW!
1、videofixer的OEP
用ice載入後設斷點 bpx createfilea+1 do "d esp->8"按幾下後就看到下面的內容
=======================================
016F:0070D4CD 5C 5C 2E 5C 53 49 43 45-00 5C 5C 2E 5C 4E 54 49 \\.\SICE.\\.\NTI
016F:0070D4DD 43 45 00 5C 5C 2E 5C 4E-54 49 43 45 37 38 37 31 CE.\\.\NTICE7871
016F:0070D4ED 00 5C 5C 2E 5C 4E 54 49-43 45 44 30 35 32 00 5C .\\.\NTICED052.\
016F:0070D4FD 5C 2E 5C 54 52 57 44 45-42 55 47 00 5C 5C 2E 5C \.\TRWDEBUG.\\.\
016F:0070D50D 54 52 57 00 5C 5C 2E 5C-54 52 57 32 30 30 30 00 TRW.\\.\TRW2000.
016F:0070D51D 5C 5C 2E 5C 53 55 50 45-52 42 50 4D 00 5C 5C 2E \\.\SUPERBPM.\\.
016F:0070D52D 5C 49 43 45 44 55 4D 50-00 5C 5C 2E 5C 52 45 47 \ICEDUMP.\\.\REG
016F:0070D53D 4D 4F 4E 00 5C 5C 2E 5C-46 49 4C 45 4D 4F 4E 00 MON.\\.\FILEMON.
016F:0070D54D 5C 5C 2E 5C 52 45 47 56-58 44 00 5C 5C 2E 5C 46 \\.\REGVXD.\\.\F
016F:0070D55D 49 4C 45 56 58 44 00 5C-5C 2E 5C 56 4B 45 59 50 ILEVXD.\\.\VKEYP
016F:0070D56D 52 4F 44 00 5C 5C 2E 5C-42 57 32 4B 00 5C 5C 2E ROD.\\.\BW2K.\\.
016F:0070D57D 5C 53 49 57 44 45 42 55-47 00 00 60 E8 00 00 00 \SIWDEBUG..`....
016F:0070D58D 00 5E 83 EE 06 B9 43 03-00 00 29 CE BA 33 07 50 .^....C...)..3.P
016F:0070D59D EC C1 E9 02 83 E9 02 83-F9 00 7C 1A 8B 04 8E 8B ..........|.....
016F:0070D5AD 5C 8E 04 03 C3 C1 C8 0D-2B C2 81 EA 6D 8A 83 79 \.......+...m..y
016F:0070D5BD 89 04 8E 49 EB E1 61 61-C3 00 00 00 00 00 C3 41 ...I..aa.......A
016F:0070D5CD 0F 88 02 00 00 00 03 D7-EB 01 E8 8B D5 50 E8 01 .............P..
016F:0070D5DD 00 00 00 79 58 58 66 1B-DD E8 01 00 00 00 76 83 ...yXXf.......v.
016F:0070D5ED 04 24 06 C3 49 E8 01 00-00 00 7F 83 04 24 06 C3 .$..I.......$..
016F:0070D5FD 66 C1 DB 11 E8 01 00 00-00 7B 83 C4 04 85 D9 50 f........{.....P
=========================================
每安一次F5就檢查一種除錯工具。當檢查的到最後一個SIWDEBUG後,F12回到如下
0167:0070D25E 8DB5CD644000 LEA ESI,[EBP+004064CD]
0167:0070D264 6A00 PUSH 00
0167:0070D266 6880000000 PUSH 00000080
0167:0070D26B 6A03 PUSH 03
0167:0070D26D 6A00 PUSH 00
0167:0070D26F 6A03 PUSH 03
0167:0070D271 68000000C0 PUSH C0000000
0167:0070D276 56 PUSH ESI <-esi 內放上面的黑名單
0167:0070D277 50 PUSH EAX
0167:0070D278 8B851D444000 MOV EAX,[EBP+0040441D]
0167:0070D27E 8038CC CMP BYTE PTR [EAX],CC
0167:0070D281 7410 JZ 0070D293
0167:0070D283 90 NOP
0167:0070D284 90 NOP
0167:0070D285 90 NOP
0167:0070D286 90 NOP
0167:0070D287 58 POP EAX
0167:0070D288 FF951D444000 CALL [EBP+0040441D] <--call createfilea
=========================================
這個時候下命令 tracex 00400000 00700000
5秒後來到OEP處。
0167:004E4F4E 53 PUSH EBX <-OEP
0167:004E4F4F B8A84A4E00 MOV EAX,004E4AA8
0167:004E4F54 E81320F2FF CALL 00406F6C
0167:004E4F59 8B1D3C704E00 MOV EBX,[004E703C]
0167:004E4F5F 8B03 MOV EAX,[EBX]
0167:004E4F61 E87E20F8FF CALL 00466FE4
0167:004E4F66 8B0D6C714E00 MOV ECX,[004E716C]
0167:004E4F6C 8B03 MOV EAX,[EBX]
0167:004E4F6E 8B15689C4D00 MOV EDX,[004D9C68]
0167:004E4F74 E88320F8FF CALL 00466FFC
0167:004E4F79 8B0DF8714E00 MOV ECX,[004E71F8]
0167:004E4F7F 8B03 MOV EAX,[EBX]
0167:004E4F81 8B15B4964D00 MOV EDX,[004D96B4]
0167:004E4F87 E87020F8FF CALL 00466FFC
0167:004E4F8C 8B0D0C6E4E00 MOV ECX,[004E6E0C]
0167:004E4F92 8B03 MOV EAX,[EBX]
0167:004E4F94 8B1514994D00 MOV EDX,[004D9914]
0167:004E4F9A E85D20F8FF CALL 00466FFC
0167:004E4F9F 8B0DE8714E00 MOV ECX,[004E71E8]
=======================================
起初我不大信這裡是OEP一直很困惑。飛葉賢弟授我一法也是來到這裡,我才信這裡是OEP啊,飛葉賢弟不愧為脫神,確實讓麥當娜都汗顏啊!
2、輸入表的問題
用ice載入後 下命令 g 00710fe0 這個時候你d ebx 看到如下
===========================================
0167:0050A9C0 44 65 6C 65 74 65 43 72-69 74 69 63 61 6C 53 65 DeleteCriticalSe<-函式名
0167:0050A9D0 63 74 69 6F 6E 00 00 00-89 AC 2C CE AC 68 4E 2D ction.....,..hN-
0167:0050A9E0 8E 2D 6C 2C 8D 6A AC 6C-8E 2D ED CD 00 00 00 00 .-l,.j.l.-......
0167:0050A9F0 A8 CD 8E AC 4E 68 4E 2D-8E 2D 6C 2C 8D 6A AC 6C ....NhN-.-l,.j.l
0167:0050AA00 8E 2D ED CD 00 00 00 00-29 CD 2D 8E 2D 2C 8D 2D .-......).-.-,.-
0167:0050AA10 4F AC 68 4E 2D 8E 2D 6C-2C 8D 6A AC 6C 8E 2D ED O.hN-.-l,.j.l.-.
0167:0050AA20 CD 00 00 00 CA 2D 4E 8E-AE 2C 8D C8 4E AC AC 00 .....-N..,..N...
0167:0050AA30 00 00 CA 2D 4E 8E AE 2C-8D 28 8D 8D ED 6C 00 00 ...-N..,.(...l..
0167:0050AA40 00 00 89 ED 6C 2C 8D C8-4E AC AC 00 00 00 89 ED ....l,..N.......
哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪PROT32?
0167:00710FDC 90 NOP
0167:00710FDD 90 NOP
0167:00710FDE 90 NOP
0167:00710FDF 60 PUSHAD
0167:00710FE0 2BC0 SUB EAX,EAX \
0167:00710FE2 8803 MOV [EBX],AL \ 這9個位元組把函式名消掉了,一定要NOP掉。
0167:00710FE4 43 INC EBX /
0167:00710FE5 3803 CMP [EBX],AL /
0167:00710FE7 75F9 JNZ 00710FE2
0167:00710FE9 61 POPAD
0167:00710FEA 0BC0 OR EAX,EAX
0167:00710FEC 0F842EFFFFFF JZ 00710F20
0167:00710FF2 3B85F0BD4100 CMP EAX,[EBP+0041BDF0]
0167:00710FF8 750A JNZ 00711004
0167:00710FFA 90 NOP
0167:00710FFB 90 NOP
0167:00710FFC 90 NOP
0167:00710FFD 90 NOP
0167:00710FFE 8D85DB444000 LEA EAX,[EBP+004044DB]
=========================
還有:
================================
0167:00710F50 60 PUSHA
0167:00710F51 2BC0 SUB EAX,EAX \
0167:00710F53 8803 MOV [EBX],AL \這裡將DLL的名稱清0,也要NOP掉。
0167:00710F55 43 INC EBX /
0167:00710F56 3803 CMP [EBX],AL /
0167:00710F58 75F9 JNZ 00710F53
0167:00710F5A 61 POPA
0167:00710F5B 8985303F4000 MOV [EBP+00403F30],EAX
0167:00710F61 C785343F40000000+MOV DWORD [EBP+00403F34],00
0167:00710F6B 8B95383F4000 MOV EDX,[EBP+00403F38]
0167:00710F71 8B06 MOV EAX,[ESI]
0167:00710F73 0BC0 OR EAX,EAX
0167:00710F75 7507 JNZ 00710F7E
=============================
這樣函式就OK了!
3、修復程式
以上都做完就是修復程式了,dump出來的程式中會有CALL 0070XXXX這樣的指令,我怎麼跟都是這樣的,看來只能將這些指令後面的子程式DUMP出來以節點的
方式加入了。
感慨:
我每天平均要畫10個小時的圖紙,然後再抽時間看這些殼子,真累!感覺自己都要枯萎了!
今天是我25週歲生日,我只身在一個陌生的城市裡!沒有一個朋友,我唯一認識的人and親人就是我姑夫了!鬱悶……
寫這些東西是我利用午飯時間寫的,寫的倉促,見諒!
8月14 中午 12點
相關文章
- 先分析,再脫殼(二) (13千字)2003-09-04
- iOS逆向學習之五(加殼?脫殼?)2019-10-10iOS
- 股市風暴4.0的外殼分析與脫殼方法(一) (7千字)2001-06-10
- 十、iOS逆向之《越獄砸殼/ipa脫殼》2021-03-18iOS
- FTPrint的脫殼(asprotect) (2千字)2001-02-05FTP
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- Armadillo 2.52加殼原理分析和改進的脫殼方法
(12千字)2015-11-15
- 脫Crunch/PE -> BitArts的殼。 (3千字)2002-05-03
- jdpack的脫殼及破解 (5千字)2002-06-25
- HTMLZip 1.0 beta 的脫殼 (3千字)2001-02-03HTML
- PicturesToExe3.51的脫殼 (2千字)2001-04-22REST
- telock脫殼總結 (12千字)2001-09-27
- 轉載:Petite 脫殼“標準”解決方法 (1千字)2001-02-06
- ASPROtect 1.22加殼的ahaview2.0脫殼 (5千字)2002-03-24View
- ExeStealth 常用脫殼方法 + ExeStealth V2.72主程式脫殼2015-11-15
- 脫Flashfxp 1.3 build 780的殼 (10千字)2001-08-15UI
- 脫PicturesToExe v3.60的殼 (1千字)2001-09-15REST
- 脫殼----對用Petite2.2加殼的程式進行手動脫殼的一點分析
(5千字)2000-07-27
- nSpack
v1.3 脫殼之OM指令碼2015-11-15指令碼
- 談談如何使用加殼保護自己的軟體不被常用方法脫殼(2千字)2000-10-10
- 關於用ASProtect v1.3加殼軟體的脫殼方法體會 (5千字)2001-11-21
- WinKawaks 1.45脫殼筆記
(10千字)2002-08-12筆記
- 一點脫殼經驗。(7千字)2001-04-20
- The Bat! 1.39脫殼筆記 (1千字)2000-03-12BAT筆記
- 對PECompact加殼的DLL脫殼的一點分析 (7千字)2000-08-17
- 脫Advanced Email Extractor PRO的殼 (19千字)2001-08-19AI
- 殼的工作原理脫殼2013-04-10
- 手動脫殼的教程(由petite v2.2加殼) (4千字)2001-11-26
- ArtCursors 3.03 ASPR殼軟體脫殼後修整記 (10千字)2015-11-15
- Angular 之我見2020-08-31Angular
- 對Asprotect脫殼的一點總結
(20千字)2000-08-12
- 某IOT蠕蟲病毒分析之UPX脫殼實戰2018-04-11
- tElock
XXX 之forgot、heXer修改版脫殼2004-07-04Go
- APK加固之靜態脫殼機編寫入門2015-10-30APK
- Asprotect 1.2x 加殼的 Advanced Direct
Remailer 2.17 脫殼 (3千字)2002-06-20REMAI
- 寫給新手
- 淺談脫殼方法2004-12-18
- 脫Remote Administrator v2.0的殼 (8千字)2001-06-24REM
- 用OD對Aspr加殼程式的手動脫殼及修復 (7千字)2015-11-15