ASF-AVI-RM-WMV Repair V1.41 脫殼去暗樁+漢化完美爆破
標 題:ASF-AVI-RM-WMV Repair V1.41 脫殼去暗樁+漢化完美爆破
發信人:David
時 間:2004年2月27日 04:25
詳細資訊:
【脫文標題】 ASF-AVI-RM-WMV Repair V1.41 脫殼去暗樁+完美爆破
【脫文作者】 weiyi75[Dfcg]
【作者郵箱】 weiyi75@sohu.com
【作者主頁】 Dfcg官方大本營
【使用工具】 Ollydbg1.10b,ImportREC1.42,Loadpe
【破解平臺】 Win2000/XP
【軟體名稱】 ASF-AVI-RM-WMV Repair V 1.41
【下載地址】 http://www.fixdown.com/soft/9924.htm
【軟體簡介】 ASF-AVI-RM-WMV Repair 是一個可以幫助你快速的修復被意外損壞的多媒體影片檔案格式的修復工具,程式支援包括ASF,AVI,RM,RMVB,WMV,WMADIVX,XVID,MPEG-4,等常用的影片檔案格式
【軟體大小】 639KB
【加殼方式】 ASProtect 1.23 RC4 Registered -> Alexey Solodovnikov
【保護方式】 沒有使用Asprotcet的Rsa演算法保護,採用自行研究的加密演算法,啟動時校驗註冊碼,10天試
用期限制,SDK防脫殼暗樁。
【破解宣告】 我是一隻小菜鳥,偶得一點心得,願與大家分享:
--------------------------------------------------------------------------------
【破解內容】
第一部分,脫去Asprotect1.23外殼保護,補上Stolen Code,修復IAT。
首先Peid查殼,為ASProtect 1.23 RC4 Registered -> Alexey Solodovnikov。
Ollydbg載入程式,隱藏OD,OD異常設定忽略除記憶體異常外的全部異常。
00401000 > 68 01504A00 PUSH RepairVi.004A5001 //加殼程式入口點
00401005 E8 01000000 CALL RepairVi.0040100B
0040100A C3 RETN
0040100B C3 RETN
0040100C F9 STC
0040100D 9C PUSHFD
0040100E 31DD XOR EBP,EBX
00401010 F69A F48AA45C NEG BYTE PTR DS:[EDX+5CA48AF4]
00401016 AE SCAS BYTE PTR ES:[EDI]
00401017 25 C4945BC8 AND EAX,C85B94C4
0040101C D3C4 ROL ESP,CL
0040101E DC26 FSUB QWORD PTR DS:[ESI]
00401020 9D POPFD
00401021 94 XCHG EAX,ESP
00401022 B9 E2D941BE MOV ECX,BE41D9E2
00401027 91 XCHG EAX,ECX
00401028 B4 70 MOV AH,70
0040102A CA 9058 RETF 5890 ; 遠距返回
...........................................................................
這次用點新東西,用OllyScript的Asprotect1.23 rc4 指令碼到達最後一次異常。
011E3D03 3100 XOR DWORD PTR DS:[EAX],EAX //確定指令碼執行完畢按鈕到達地球人都知道的位置。
011E3D05 64:8F05 0000000>POP DWORD PTR FS:[0]
011E3D0C 58 POP EAX
011E3D0D 833D BC7E1E01 0>CMP DWORD PTR DS:[11E7EBC],0
011E3D14 74 14 JE SHORT 011E3D2A
011E3D16 6A 0C PUSH 0C
011E3D18 B9 BC7E1E01 MOV ECX,11E7EBC
011E3D1D 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
011E3D20 BA 04000000 MOV EDX,4
011E3D25 E8 E6D2FFFF CALL 011E1010
011E3D2A FF75 FC PUSH DWORD PTR SS:[EBP-4]
011E3D2D FF75 F8 PUSH DWORD PTR SS:[EBP-8]
011E3D30 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
011E3D33 8338 00 CMP DWORD PTR DS:[EAX],0
011E3D36 74 02 JE SHORT 011E3D3A
011E3D38 FF30 PUSH DWORD PTR DS:[EAX]
011E3D3A FF75 F0 PUSH DWORD PTR SS:[EBP-10]
011E3D3D FF75 EC PUSH DWORD PTR SS:[EBP-14]
011E3D40 C3 RETN //這裡下斷點,Shift+F9到這裡後取消斷點。
...........................................................................
雖然多種辦法可以到達Stolen Code,複習一下手動找Stolen Code位置,也很快的。
如無特別說明,一律F7步進,F4跳出迴圈或到達指定位置。
011F60D8 80F0 44 XOR AL,44
011F60DB 0F84 09000000 JE 011F60EA
011F60E1 81D1 DC1DA872 ADC ECX,72A81DDC
011F60E7 0FB7FF MOVZX EDI,DI
011F60EA E8 0B000000 CALL 011F60FA
011F60FA 50 PUSH EAX ; RepairVi.004A595D
011F60FB 81C7 0DA0B27D ADD EDI,7DB2A00D
011F6101 81E9 1A917F18 SUB ECX,187F911A
011F6107 B5 7A MOV CH,7A
011F6109 5F POP EDI
011F610A 66:81C7 792D ADD DI,2D79
011F610F 5B POP EBX
011F6110 68 6C2A8437 PUSH 37842A6C
011F6115 BF 5881BF7D MOV EDI,7DBF8158
011F611A 59 POP ECX
011F611B 0F83 22000000 JNB 011F6143
011F6143 81E9 CECCD86D SUB ECX,6DD8CCCE //這裡停一下。
011F6149 81C3 0E160000 ADD EBX,160E
011F614F BF E852A012 MOV EDI,12A052E8
011F6154 2BD2 SUB EDX,EDX
011F6156 E8 09000000 CALL 011F6164
011F615B 3D 32830039 CMP EAX,39008332
011F6160 ^ 7E DF JLE SHORT 011F6141 //中間的迴圈過程等沒必要執行。
011F6162 2C F5 SUB AL,0F5
011F6164 66:B8 7158 MOV AX,5871
011F6168 58 POP EAX
011F6169 0F8B 11000000 JPO 011F6180
011F616F 52 PUSH EDX
011F6170 68 2ECA6E55 PUSH 556ECA2E
011F6175 59 POP ECX
011F6176 5F POP EDI
011F6177 66:8BC2 MOV AX,DX
011F617A 81F1 9217F440 XOR ECX,40F41792
011F6180 E9 05000000 JMP 011F618A //F4直接下來。
011F618A 8B3413 MOV ESI,DWORD PTR DS:[EBX+EDX]
011F618D 66:8BFA MOV DI,DX
011F6190 81C6 B27ADE78 ADD ESI,78DE7AB2
011F6196 51 PUSH ECX
011F6197 8ACA MOV CL,DL
011F6199 0FBFF9 MOVSX EDI,CX
011F619C 59 POP ECX
011F619D 81EE 03AAC857 SUB ESI,57C8AA03
011F61A3 0F8E 0C000000 JLE 011F61B5
011F61B5 E9 07000000 JMP 011F61C1
011F61C1 81EE 807D8F45 SUB ESI,458F7D80
011F61C7 8BFE MOV EDI,ESI
011F61C9 893413 MOV DWORD PTR DS:[EBX+EDX],ESI
011F61CC 8BCB MOV ECX,EBX
011F61CE 66:8BC1 MOV AX,CX
011F61D1 66:8BC7 MOV AX,DI
011F61D4 E8 0B000000 CALL 011F61E4
011F61D9 ^ 77 E4 JA SHORT 011F61BF
011F61DB 4D DEC EBP
011F61DC 0213 ADD DL,BYTE PTR DS:[EBX]
011F61DE 50 PUSH EAX
011F61DF 49 DEC ECX
011F61E0 4E DEC ESI
011F61E1 6F OUTS DX,DWORD PTR ES:[EDI] ; I/O 命令
011F61E2 7C 05 JL SHORT 011F61E9
011F61E4 B5 18 MOV CH,18
011F61E6 B8 03C9DE24 MOV EAX,24DEC903
011F61EB 0FBFFE MOVSX EDI,SI
011F61EE 58 POP EAX
011F61EF 81EA D6EBD358 SUB EDX,58D3EBD6
011F61F5 E9 12000000 JMP 011F620C //同理直接下來,看都不用看。
011F620C 81C2 D2EBD358 ADD EDX,58D3EBD2
011F6212 66:81C8 0C99 OR AX,990C
011F6217 B4 6E MOV AH,6E
011F6219 81FA 60EBFFFF CMP EDX,-14A0
011F621F 0F85 1C000000 JNZ 011F6241
011F6225 8BFE MOV EDI,ESI
011F6227 66:B8 2F83 MOV AX,832F
011F622B E9 31000000 JMP 011F6261 //F4直接下來。
011F6261 5B POP EBX ; RepairVi.00400000
011F6262 58 POP EAX
011F6263 05 2662FEDE ADD EAX,DEFE6226
011F6268 5C POP ESP
011F6269 EB 3F JMP SHORT 011F62AA
011F62AA 03C3 ADD EAX,EBX ; RepairVi.00400000
011F62AC BB F2000000 MOV EBX,0F2
011F62B1 0BDB OR EBX,EBX
011F62B3 75 02 JNZ SHORT 011F62B7
011F62B5 50 PUSH EAX
011F62B6 C3 RETN
011F62B7 E8 00000000 CALL 011F62BC
011F62BC 5D POP EBP
011F62BD 81ED 23014B00 SUB EBP,4B0123
011F62C3 8D85 D2004B00 LEA EAX,DWORD PTR SS:[EBP+4B00D2]
011F62C9 8D8D 69014B00 LEA ECX,DWORD PTR SS:[EBP+4B0169]
011F62CF 03CB ADD ECX,EBX
011F62D1 8941 01 MOV DWORD PTR DS:[ECX+1],EAX
011F62D4 8D85 11014B00 LEA EAX,DWORD PTR SS:[EBP+4B0111]
011F62DA 8D8D D6004B00 LEA ECX,DWORD PTR SS:[EBP+4B00D6]
011F62E0 8901 MOV DWORD PTR DS:[ECX],EAX
011F62E2 B8 58140000 MOV EAX,1458
011F62E7 8D8D DB004B00 LEA ECX,DWORD PTR SS:[EBP+4B00DB]
011F62ED 8901 MOV DWORD PTR DS:[ECX],EAX
011F62EF 8D8D 69014B00 LEA ECX,DWORD PTR SS:[EBP+4B0169]
011F62F5 8D85 69134B00 LEA EAX,DWORD PTR SS:[EBP+4B1369]
011F62FB 51 PUSH ECX
011F62FC 50 PUSH EAX
011F62FD E8 7BFFFFFF CALL 011F627D
011F6302 64:EB 02 JMP SHORT 011F6307 //F4直接下來。
011F6307 /2E:EB 01 JMP SHORT 011F630B ; 多餘的字首
011F630B 83EC 1A SUB ESP,1A
011F630E 83C4 16 ADD ESP,16
011F6311 66:8135 1A631F0>XOR WORD PTR DS:[11F631A],0C6CB
011F7E0A F2: PREFIX REPNE: ; 多餘的字首
011F7E0E 50 PUSH EAX
011F7E0F 2E:EB 02 JMP SHORT 011F7E14 ; 多餘的字首
011F7E14 8F4424 00 POP DWORD PTR SS:[ESP] ; 011F7DF2
011F7E18 65:EB 02 JMP SHORT 011F7E1D ; 多餘的字首
011F7E1D F2: PREFIX REPNE: ; 多餘的字首
011F7E21 66:0FBCC7 BSF AX,DI
011F7E25 66:812D 2E7E1F0>SUB WORD PTR DS:[11F7E2E],6B2A
011F7E2E F2: PREFIX REPNE: ; 多餘的字首
011F7E33 83E0 67 AND EAX,67
011F7E36 66:812D 3F7E1F0>SUB WORD PTR DS:[11F7E3F],0B47A
011F7E3F /EB 01 JMP SHORT 011F7E42
011F7E42 /EB 02 JMP SHORT 011F7E46
011F7E46 8D83 3A184A79 LEA EAX,DWORD PTR DS:[EBX+794A183A]
011F7E4C F2: PREFIX REPNE: ; 多餘的字首
011F7E51 66:812D 5B7E1F0>SUB WORD PTR DS:[11F7E5B],98C5
011F7E5A /3E:EB 02 JMP SHORT 011F7E5F ; 多餘的字首
011F7E5F 06 PUSH ES
011F7E60 EB 02 JMP SHORT 011F7E64
011F7E64 C74424 00 477E1>MOV DWORD PTR SS:[ESP],11F7E47
011F7E6C 58 POP EAX
011F7E6D FF50 2B CALL DWORD PTR DS:[EAX+2B]
011F7E7B 58 POP EAX ; 011F7E70
011F7E7C EB 01 JMP SHORT 011F7E7F
011F7E7F /EB 02 JMP SHORT 011F7E83
011F7E83 8D4458 6F LEA EAX,DWORD PTR DS:[EAX+EBX*2+6F]
011F7E87 F2: PREFIX REPNE: ; 多餘的字首
011F7E8B F2: PREFIX REPNE: ; 多餘的字首
011F7E90 8D81 4CDFC21F LEA EAX,DWORD PTR DS:[ECX+1FC2DF4C]
011F7E96 58 POP EAX
011F7E97 64:EB 02 JMP SHORT 011F7E9C ; 多餘的字首
011F7E9C 55 PUSH EBP * //這裡看到ESP的值是0012FFA4,難怪12ffc0的硬體寫入斷點沒斷下來,EBP的值也不是12fff0模擬跟蹤也失敗,所以這個程式用0012FFA0的硬體寫入斷點一步就可以斷下來,不過手動跟蹤也非常快。
011F7E9D 8BEC MOV EBP,ESP * //執行的結果是esp=ebp=12ffa0
011F7E9F 6A FF PUSH -1 * 帶*的內容是Stolen Code
011F7EA1 68 30284700 PUSH 472830 *
011F7EA6 68 E4234400 PUSH 4423E4 *
011F7EAB 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] *
011F7EB1 64:EB 02 JMP SHORT 011F7EB6 ; 多餘的字首
011F7EB6 50 PUSH EAX *
011F7EB7 64:8925 0000000>MOV DWORD PTR FS:[0],ESP *
011F7EBE 83EC 58 SUB ESP,58 *
011F7EC1 64:EB 02 JMP SHORT 011F7EC6 ; 多餘的字首
011F7EC6 53 PUSH EBX *
011F7EC7 64:EB 02 JMP SHORT 011F7ECC ; 多餘的字首
011F7ECC 56 PUSH ESI *
011F7ECD 64:EB 02 JMP SHORT 011F7ED2 ; 多餘的字首
011F7ED2 57 PUSH EDI *
011F7ED3 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP *
011F7ED6 64:EB 02 JMP SHORT 011F7EDB ; 多餘的字首
011F7EDB /64:EB 01 JMP SHORT 011F7EDF ; 多餘的字首
011F7EDF 68 EA3E4400 PUSH 443EEA
011F7EE4 68 5B7D1F01 PUSH 11F7D5B
011F7EE9 C3 RETN
011F7D5B 60 PUSHAD
011F7D5C 9C PUSHFD
011F7D5D FC CLD
011F7D5E BF 9A7D1F01 MOV EDI,11F7D9A
011F7D63 B9 58140000 MOV ECX,1458
011F7D68 F3:AA REP STOS BYTE PTR ES:[EDI] //F7可以看著它迴圈執行Stolen Code
011F7D6A 9D POPFD
011F7D6B 61 POPAD
011F7D6C C3 RETN
.......................................................................
整理一下Stolen Code
PUSH EBP
MOV EBP,ESP
PUSH -1
PUSH 00472830
PUSH 004423E4
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
SUB ESP,58
PUSH EBX
PUSH ESI
PUSH EDI
MOV DWORD PTR SS:[EBP-18],ESP
.......................................................
00443EC4 0000 ADD BYTE PTR DS:[EAX],AL //真Oep,OD直接補上整理的Stolen Code
00443EC6 0000 ADD BYTE PTR DS:[EAX],AL
00443EC8 0000 ADD BYTE PTR DS:[EAX],AL
00443ECA 0000 ADD BYTE PTR DS:[EAX],AL
00443ECC 0000 ADD BYTE PTR DS:[EAX],AL
00443ECE 0000 ADD BYTE PTR DS:[EAX],AL
00443ED0 0000 ADD BYTE PTR DS:[EAX],AL
00443ED2 0000 ADD BYTE PTR DS:[EAX],AL
00443ED4 0000 ADD BYTE PTR DS:[EAX],AL
00443ED6 0000 ADD BYTE PTR DS:[EAX],AL
00443ED8 0000 ADD BYTE PTR DS:[EAX],AL
00443EDA 0000 ADD BYTE PTR DS:[EAX],AL
00443EDC 0000 ADD BYTE PTR DS:[EAX],AL
00443EDE 0000 ADD BYTE PTR DS:[EAX],AL
00443EE0 0000 ADD BYTE PTR DS:[EAX],AL
00443EE2 0000 ADD BYTE PTR DS:[EAX],AL
00443EE4 0000 ADD BYTE PTR DS:[EAX],AL
00443EE6 0000 ADD BYTE PTR DS:[EAX],AL
00443EE8 0000 ADD BYTE PTR DS:[EAX],AL
00443EEA FF15 C4834600 CALL DWORD PTR DS:[4683C4] 偽OEP,捲軸往上面看。
00443EF0 33D2 XOR EDX,EDX
00443EF2 8AD4 MOV DL,AH
00443EF4 8915 C0F24800 MOV DWORD PTR DS:[48F2C0],EDX
00443EFA 8BC8 MOV ECX,EAX
00443EFC 81E1 FF000000 AND ECX,0FF
00443F02 890D BCF24800 MOV DWORD PTR DS:[48F2BC],ECX
00443F08 C1E1 08 SHL ECX,8
00443F0B 03CA ADD ECX,EDX
00443F0D 890D B8F24800 MOV DWORD PTR DS:[48F2B8],ECX
00443F13 C1E8 10 SHR EAX,10
00443F16 A3 B4F24800 MOV DWORD PTR DS:[48F2B4],EAX
00443F1B 6A 01 PUSH 1
00443F1D E8 84330000 CALL RepairVi.004472A6
...........................................................
00443EC4 55 PUSH EBP //OD用外掛脫殼,修正入口為 43Ec4 重建輸入表選方式2
00443EC5 8BEC MOV EBP,ESP
00443EC7 6A FF PUSH -1
00443EC9 68 30284700 PUSH RepairVi.00472830
00443ECE 68 E4234400 PUSH RepairVi.004423E4
00443ED3 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00443ED9 50 PUSH EAX
00443EDA 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
00443EE1 83EC 58 SUB ESP,58
00443EE4 53 PUSH EBX
00443EE5 56 PUSH ESI
00443EE6 57 PUSH EDI
00443EE7 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00443EEA FF15 C4834600 CALL DWORD PTR DS:[4683C4]
00443EF0 33D2 XOR EDX,EDX
00443EF2 8AD4 MOV DL,AH
00443EF4 8915 C0F24800 MOV DWORD PTR DS:[48F2C0],EDX
00443EFA 8BC8 MOV ECX,EAX
00443EFC 81E1 FF000000 AND ECX,0FF
00443F02 890D BCF24800 MOV DWORD PTR DS:[48F2BC],ECX
00443F08 C1E1 08 SHL ECX,8
00443F0B 03CA ADD ECX,EDX
00443F0D 890D B8F24800 MOV DWORD PTR DS:[48F2B8],ECX
00443F13 C1E8 10 SHR EAX,10
00443F16 A3 B4F24800 MOV DWORD PTR DS:[48F2B4],EAX
00443F1B 6A 01 PUSH 1
00443F1D E8 84330000 CALL RepairVi.004472A6
...........................................................
IAT修復
執行ImportREC,OEP填入00043EC4,自動搜尋,獲得輸入資訊,先用跟蹤等級1修復,然後用Asprotect1.3外掛
修復剩下的幾個指標,修復先脫殼的Unpack.exe。
第二部分,去除暗樁
OD載入修復的檔案,F9執行。
OD提示訪問違反。
看堆疊友好提示
0012BEB0 0040DF22 返回到 Unpack_.0040DF22 來自 011E14A4 //錯誤來自0040DF22
0012BEB4 00469440 Unpack_.00469440
0012BEB8 00000004
0012BEBC FFFFFFFF
0012BEC0 004872C8 Unpack_.004872C8
0012BEC4 FFFFFFFF
0012BEC8 0012C3C8
0012BECC 0012FF08 指標到下一個 SEH 記錄
那麼Ctrl+G 去0040DF22 看看。
0040DF1C FF15 08FF4700 CALL DWORD PTR DS:[47FF08] //ds:[47FF08]指向殼中,跟蹤原程式發現其
作用是呼叫解壓程式。
0040DF22 FF15 00FF4700 CALL DWORD PTR DS:[47FF00] //這裡出錯,這個Call是加密剛才解壓的程式
繼續執行,脫殼後要NOP掉。
0040DF28 E9 27000000 JMP Unpack_.0040DF54
0040DF2D D5 24 AAD 24 //點清除分析可看到和我一樣的程式碼。
0040DF2F 2D 81F42C54 SUB EAX,542CF481
0040DF34 3D 463DA974 CMP EAX,74A93D46
0040DF39 3938 CMP DWORD PTR DS:[EAX],EDI
0040DF3B EC IN AL,DX ; I/O 命令
0040DF3C 9B WAIT
0040DF3D 872A XCHG DWORD PTR DS:[EDX],EBP
0040DF3F C2 44D6 RETN 0D644
0040DF42 92 XCHG EAX,EDX
0040DF43 08DF OR BH,BL
0040DF45 A9 1EF9B175 TEST EAX,75B1F91E
0040DF4A 45 INC EBP
0040DF4B D9CA FXCH ST(2)
0040DF4D 05 44530606 ADD EAX,6065344
0040DF52 5E POP ESI
0040DF53 F1 INT1
0040DF54 FF15 04FF4700 CALL DWORD PTR DS:[47FF04]
0040DF5A 8D86 F43A0000 LEA EAX,DWORD PTR DS:[ESI+3AF4]
0040DF60 50 PUSH EAX
0040DF61 FF15 5C834600 CALL DWORD PTR DS:[<&kernel32.Initialize>; KERNEL32.InitializeCriticalSection
0040DF67 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
0040DF6B 8BC6 MOV EAX,ESI
0040DF6D 5F POP EDI
0040DF6E 5E POP ESI
0040DF6F 5B POP EBX
0040DF70 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040DF77 83C4 10 ADD ESP,10
0040DF7A C2 0400 RETN 4
...........................................................................
看DS:[47FF08]裡面的內容是011E14A4,ds:[48D4E0]裡面的內容是011E1440。兩個地方都是指向殼中,SDK!
Od載入原程式
跟進 0040DF1C FF15 08FF4700 CALL DWORD PTR DS:[47FF08]
011E14A4 55 PUSH EBP //跟進,暈,好多程式碼啊,殼是不可能搬回的,它進殼中的過程我
們沒必有知道,但它從殼中取出程式碼動態修改程式領空程式碼我們脫殼後是需要的。
011E14A5 8BEC MOV EBP,ESP
011E14A7 53 PUSH EBX
011E14A8 56 PUSH ESI
011E14A9 8B5D 0C MOV EBX,DWORD PTR SS:[EBP+C]
011E14AC 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8]
011E14AF 8BC3 MOV EAX,EBX
011E14B1 E8 8E10FFFF CALL 011D2544
011E14B6 A3 1C631E01 MOV DWORD PTR DS:[11E631C],EAX
011E14BB 8B15 1C631E01 MOV EDX,DWORD PTR DS:[11E631C]
011E14C1 8BC6 MOV EAX,ESI
011E14C3 8BCB MOV ECX,EBX
011E14C5 E8 8611FFFF CALL 011D2650
011E14CA 891D 007D1E01 MOV DWORD PTR DS:[11E7D00],EBX
011E14D0 53 PUSH EBX
011E14D1 8BCE MOV ECX,ESI
011E14D3 8B15 FC7C1E01 MOV EDX,DWORD PTR DS:[11E7CFC]
011E14D9 A1 F87C1E01 MOV EAX,DWORD PTR DS:[11E7CF8]
011E14DE E8 2DFBFFFF CALL 011E1010
011E14E3 833D B0791E01 0>CMP DWORD PTR DS:[11E79B0],0
011E14EA 75 05 JNZ SHORT 011E14F1
011E14EC E8 4FFFFFFF CALL 011E1440
011E14F1 5E POP ESI
011E14F2 5B POP EBX
011E14F3 5D POP EBP
011E14F4 C2 0800 RETN 8 //返回40DF22
.........................................................
0040DF1C FF15 08FF4700 CALL DWORD PTR DS:[47FF08] //透過 011E14F4 C2 0800 RETN 8 返回40DF22,這裡知道了隨便給它一個retn 8就可以過關。
0040AF15 FF15 D8D44800 CALL DWORD PTR DS:[48D4D8] //到這裡,下面和我們脫殼後看到的一樣。但是F8透過這句話,下面的程式碼發生大變化。
0040DF28 /E9 01000000 JMP RepairVi.0040DF2E
0040DF2D |ED IN EAX,DX ; I/O 命令
0040DF2E 391D 4CDA4700 CMP DWORD PTR DS:[47DA4C],EBX
0040DF34 7F 05 JG SHORT RepairVi.0040DF3B
0040DF36 E8 05EDFFFF CALL RepairVi.0040CC40
0040DF3B E8 70ECFFFF CALL RepairVi.0040CBB0
0040DF40 85C0 TEST EAX,EAX
0040DF42 77 0A JA SHORT RepairVi.0040DF4E
0040DF44 C786 E0380000 0>MOV DWORD PTR DS:[ESI+38E0],19720203
0040DF4E EB 04 JMP SHORT RepairVi.0040DF54
0040DF50 EA 54F978FF 150>JMP FAR 0415:FF78F954 ; 遠距跳轉
0040DF57 FF47 00 INC DWORD PTR DS:[EDI]
0040DF5A 8D86 F43A0000 LEA EAX,DWORD PTR DS:[ESI+3AF4]
0040DF60 50 PUSH EAX
0040DF61 FF15 5C834600 CALL DWORD PTR DS:[46835C]
0040DF67 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
0040DF6B 8BC6 MOV EAX,ESI
0040DF6D 5F POP EDI
0040DF6E 5E POP ESI
0040DF6F 5B POP EBX
0040DF70 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040DF77 83C4 10 ADD ESP,10
0040DF7A C2 0400 RETN 4
..........................................................
原先地址內容,未執行Call之前。
0040DF28 /E9 27000000 JMP Unpack_.0040DF54
0040DF2D |D5 24 AAD 24
0040DF2F |2D 81F42C54 SUB EAX,542CF481
0040DF34 |3D 463DA974 CMP EAX,74A93D46
0040DF39 |3938 CMP DWORD PTR DS:[EAX],EDI
0040DF3B |EC IN AL,DX ; I/O 命令
0040DF3C |9B WAIT
0040DF3D |872A XCHG DWORD PTR DS:[EDX],EBP
0040DF3F |C2 44D6 RETN 0D644
0040DF42 |92 XCHG EAX,EDX
0040DF43 |08DF OR BH,BL
0040DF45 |A9 1EF9B175 TEST EAX,75B1F91E
0040DF4A |45 INC EBP
0040DF4B |D9CA FXCH ST(2)
0040DF4D |05 44530606 ADD EAX,6065344
0040DF52 |5E POP ESI
0040DF53 |F1 INT1
0040DF54 FF15 04FF4700 CALL DWORD PTR DS:[47FF04]
0040DF5A 8D86 F43A0000 LEA EAX,DWORD PTR DS:[ESI+3AF4]
0040DF60 50 PUSH EAX
0040DF61 FF15 5C834600 CALL DWORD PTR DS:[<&kernel32.Initialize>; KERNEL32.InitializeCriticalSection
0040DF67 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
0040DF6B 8BC6 MOV EAX,ESI
0040DF6D 5F POP EDI
0040DF6E 5E POP ESI
0040DF6F 5B POP EBX
0040DF70 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040DF77 83C4 10 ADD ESP,10
0040DF7A C2 0400 RETN 4
....................................................................
看到這些,你說說我們脫殼的程式能正常執行嗎?
為了驗證下面兩個語句作用。
0040DF1C FF15 08FF4700 CALL DWORD PTR DS:[47FF08] //不用說,是從殼中解壓需要的資料。
0040DF22 FF15 00FF4700 CALL DWORD PTR DS:[47FF00] F2在這裡下斷點,F9執行。
0040DF28 /E9 27000000 JMP RepairVi.0040DF54 //呵呵,程式又變成這種樣子,所以0040DF22處的Call是加密0040DF1C解壓出來的資料,反脫殼用的,我們脫殼時已經執行了這句,中了招。
0040DF2D |D5 24 AAD 24
0040DF2F |2D 81F42C54 SUB EAX,542CF481
0040DF34 |3D 463DA974 CMP EAX,74A93D46
0040DF39 |3938 CMP DWORD PTR DS:[EAX],EDI
0040DF3B |EC IN AL,DX ; I/O 命令
0040DF3C |9B WAIT
0040DF3D |872A XCHG DWORD PTR DS:[EDX],EBP
0040DF3F |C2 44D6 RETN 0D644
0040DF42 |92 XCHG EAX,EDX
0040DF43 |08DF OR BH,BL
0040DF45 |A9 1EF9B175 TEST EAX,75B1F91E
0040DF4A |45 INC EBP
0040DF4B |D9CA FXCH ST(2)
0040DF4D |05 44530606 ADD EAX,6065344
0040DF52 |5E POP ESI
0040DF53 |F1 INT1
0040DF54 FF15 04FF4700 CALL DWORD PTR DS:[47FF04]
0040DF5A 8D86 F43A0000 LEA EAX,DWORD PTR DS:[ESI+3AF4]
0040DF60 50 PUSH EAX
0040DF61 FF15 5C834600 CALL DWORD PTR DS:[46835C]
0040DF67 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
0040DF6B 8BC6 MOV EAX,ESI
0040DF6D 5F POP EDI
0040DF6E 5E POP ESI
0040DF6F 5B POP EBX
0040DF70 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040DF77 83C4 10 ADD ESP,10
0040DF7A C2 0400 RETN 4
............................................................
修復第一處暗樁。
0040DF1C FF15 08FF4700 CALL DWORD PTR DS:[47FF08] //不用說,是從殼中解壓需要的資料。資料我們在後面補上,看到它最後用retn 8返回。
Ctrl+F隨便在程式中找個返回地址給它吧。
0040EB41 C2 0800 RETN 8 //我選的這裡。
命令列 dd 47FF08
修改殼中資料 00B41C08 為 0040EB41
0040DF22 FF15 00FF4700 CALL DWORD PTR DS:[47FF00] //它是個加密Call,當然要NOP掉,直接用OD修改,注意使用NOP填充核取方塊要打上,這是基本的彙編知識。
第二步,用正確的解碼替換錯誤的程式碼,OD直接二進位制複製下面的全部內容,這裡OD一個工具足夠了,Winhex
不要嫉妒啊。先分析一下下面的內容有沒有花指令,指向殼中的程式碼。
0040DF28 /E9 01000000 JMP RepairVi.0040DF2E
0040DF2D |ED IN EAX,DX ; I/O 命令
0040DF2E 391D 4CDA4700 CMP DWORD PTR DS:[47DA4C],EBX
0040DF34 7F 05 JG SHORT RepairVi.0040DF3B
0040DF36 E8 05EDFFFF CALL RepairVi.0040CC40
0040DF3B E8 70ECFFFF CALL RepairVi.0040CBB0
0040DF40 85C0 TEST EAX,EAX
0040DF42 77 0A JA SHORT RepairVi.0040DF4E
0040DF44 C786 E0380000 0>MOV DWORD PTR DS:[ESI+38E0],19720203
0040DF4E EB 04 JMP SHORT RepairVi.0040DF54 //注意這裡。
0040DF50 EA 54F978FF 150>JMP FAR 0415:FF78F954 ; 遠距跳轉
0040DF57 FF47 00 INC DWORD PTR DS:[EDI]
0040DF54 FF15 04FF4700 CALL DWORD PTR DS:[47FF04] //這也是加密Call,NOP掉。
0040DF54 > 90 NOP
0040DF55 . 90 NOP
0040DF56 . 90 NOP
0040DF57 . 90 NOP
0040DF58 . 90 NOP
0040DF59 . 90 NOP
0040DF5A 8D86 F43A0000 LEA EAX,DWORD PTR DS:[ESI+3AF4]
0040DF60 50 PUSH EAX
0040DF61 FF15 5C834600 CALL DWORD PTR DS:[46835C]
0040DF67 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
0040DF6B 8BC6 MOV EAX,ESI
0040DF6D 5F POP EDI
0040DF6E 5E POP ESI
0040DF6F 5B POP EBX
0040DF70 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040DF77 83C4 10 ADD ESP,10
0040DF7A C2 0400 RETN 4
..........................................................
將上面解碼的內容二進位制貼上進入脫殼的程式,注意位置小心操作。
補上程式碼後。
0040DF1C FF15 08FF4700 CALL DWORD PTR DS:[47FF08] //注意DS:[48D4E0]指標要修改指向程式中。
0040DF22 90 NOP
0040DF23 90 NOP
0040DF24 90 NOP
0040DF25 90 NOP
0040DF26 90 NOP
0040DF27 90 NOP
0040DF28 E9 01000000 JMP fsfsfsf.0040DF2E
0040DF2D ED IN EAX,DX ; I/O 命令
0040DF2E 391D 4CDA4700 CMP DWORD PTR DS:[47DA4C],EBX
0040DF34 7F 05 JG SHORT fsfsfsf.0040DF3B
0040DF36 E8 05EDFFFF CALL fsfsfsf.0040CC40
0040DF3B E8 70ECFFFF CALL fsfsfsf.0040CBB0
0040DF40 85C0 TEST EAX,EAX
0040DF42 77 0A JA SHORT fsfsfsf.0040DF4E
0040DF44 C786 E0380000 0>MOV DWORD PTR DS:[ESI+38E0],19720203
0040DF4E EB 04 JMP SHORT fsfsfsf.0040DF54
0040DF50 EA 54F97890 909>JMP FAR 9090:9078F954 ; 遠距跳轉
0040DF57 90 NOP
0040DF58 90 NOP
0040DF59 90 NOP
0040DF5A 8D86 F43A0000 LEA EAX,DWORD PTR DS:[ESI+3AF4]
0040DF60 50 PUSH EAX
0040DF61 FF15 5C834600 CALL DWORD PTR DS:[<&kernel32.Initialize>; KERNEL32.InitializeCriticalSection
0040DF67 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
0040DF6B 8BC6 MOV EAX,ESI
0040DF6D 5F POP EDI
0040DF6E 5E POP ESI
0040DF6F 5B POP EBX
0040DF70 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040DF77 83C4 10 ADD ESP,10
0040DF7A C2 0400 RETN 4
.................................................................
將所有修改內容複製到程式中,儲存為一個檔案。
這個程式校驗處較多,處理方式相同,我就不一一解釋了。
修復第二處暗樁。
OD載入修復後的程式,F9執行,程式介面出來了。別高興,最關鍵的修復功能還沒有試,肯定還有暗樁。
執行修復檔案功能。
OD提示訪問違反。
看堆疊友好提示
0012B8C4 0040FB65 返回到 Unpack1.0040FB65 來自 011E1440 //錯誤來自0040FB65
0012B8C8 0012C3C8
0012B8CC 0012C3C8
0012B8D0 00000001
0012B8D4 0012C3C8
0012B8D8 0012C3C8
0012B8DC 0012B8F8 指標到下一個 SEH 記錄
0012B8E0 004654AA SE 控制程式碼
..................................................
Ctrl+G 0040FB65
0040FB5F FF15 00FF4700 CALL DWORD PTR DS:[47FF00] //加密解壓程式碼,NOP掉。
0040FB65 E9 DA000000 JMP Unpack1.0040FC44 //一眼看出這是錯誤的程式碼,必須修正。
0040FB6A 06 PUSH ES
0040FB6B 96 XCHG EAX,ESI
0040FB6C B6 1D MOV DH,1D
0040FB6E 16 PUSH SS
0040FB6F 6B54C9 3B D1 IMUL EDX,DWORD PTR DS:[ECX+ECX*8+3B],-2F
0040FB74 27 DAA
0040FB75 D6 SALC
0040FB76 E2 4C LOOPD SHORT Unpack1.0040FBC4
0040FB78 53 PUSH EBX
0040FB79 CB RETF ; 遠距返回
0040FB7A 3A87 D5FEDB1A CMP AL,BYTE PTR DS:[EDI+1ADBFED5]
0040FB80 FD STD
0040FB81 9B WAIT
0040FB82 ^ EB F6 JMP SHORT Unpack1.0040FB7A
0040FB84 44 INC ESP
0040FB85 71 00 JNO SHORT Unpack1.0040FB87
0040FB87 4F DEC EDI
0040FB88 7A F4 JPE SHORT Unpack1.0040FB7E
.........................................................................
切換到加殼程式中,Ctrl+G 0040FB5F
0040FB5F FF15 00FF4700 CALL DWORD PTR DS:[47FF00] //下斷點,執行檔案修復時中斷,取消斷點。
0040FB65 E9 DA000000 JMP RepairVi.0040FC44 F8執行到這句程式動態解碼。
0040FB6A 06 PUSH ES
0040FB6B 96 XCHG EAX,ESI
0040FB6C B6 1D MOV DH,1D
0040FB6E 16 PUSH SS
0040FB6F 6B54C9 3B D1 IMUL EDX,DWORD PTR DS:[ECX+ECX*8+3B],-2F
0040FB74 27 DAA
0040FB75 D6 SALC
0040FB76 E2 4C LOOPD SHORT RepairVi.0040FBC4
0040FB78 53 PUSH EBX
0040FB79 CB RETF ; 遠距返回
................................................................
0040FB5F FF15 00FF4700 CALL DWORD PTR DS:[47FF00] //解碼後,二進位制複製下面全部內容。這個加密Call當然要NOP掉。
0040FB65 /E9 01000000 JMP RepairVi.0040FB6B
0040FB6A |3E:8B86 D038000>MOV EAX,DWORD PTR DS:[ESI+38D0]
0040FB71 8B78 04 MOV EDI,DWORD PTR DS:[EAX+4]
0040FB74 8B4F 24 MOV ECX,DWORD PTR DS:[EDI+24]
0040FB77 8B57 20 MOV EDX,DWORD PTR DS:[EDI+20]
0040FB7A 51 PUSH ECX
0040FB7B 52 PUSH EDX
0040FB7C E8 3FCDFFFF CALL RepairVi.0040C8C0
0040FB81 83C4 08 ADD ESP,8
0040FB84 85C0 TEST EAX,EAX
0040FB86 75 09 JNZ SHORT RepairVi.0040FB91
0040FB88 A1 4CDA4700 MOV EAX,DWORD PTR DS:[47DA4C]
0040FB8D 85C0 TEST EAX,EAX
0040FB8F 7E 05 JLE SHORT RepairVi.0040FB96
0040FB91 BB 01000000 MOV EBX,1
0040FB96 57 PUSH EDI
0040FB97 E8 94CDFFFF CALL RepairVi.0040C930
0040FB9C 83C4 04 ADD ESP,4
0040FB9F 8986 E8380000 MOV DWORD PTR DS:[ESI+38E8],EAX
0040FBA5 85DB TEST EBX,EBX
0040FBA7 8996 EC380000 MOV DWORD PTR DS:[ESI+38EC],EDX
0040FBAD 0F84 8B000000 JE RepairVi.0040FC3E
0040FBB3 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C]
0040FBB7 50 PUSH EAX
0040FBB8 6A 04 PUSH 4
0040FBBA 56 PUSH ESI
0040FBBB 68 F0F74000 PUSH RepairVi.0040F7F0
0040FBC0 6A 00 PUSH 0
0040FBC2 6A 00 PUSH 0
0040FBC4 FF15 48834600 CALL DWORD PTR DS:[468348]
0040FBCA 85C0 TEST EAX,EAX
0040FBCC 8986 303B0000 MOV DWORD PTR DS:[ESI+3B30],EAX
0040FBD2 75 12 JNZ SHORT RepairVi.0040FBE6
0040FBD4 5F POP EDI
0040FBD5 5E POP ESI
0040FBD6 5B POP EBX
0040FBD7 8B4C24 08 MOV ECX,DWORD PTR SS:[ESP+8]
0040FBDB 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040FBE2 83C4 14 ADD ESP,14
0040FBE5 C3 RETN
0040FBE6 6A 00 PUSH 0
0040FBE8 8D8E 380F0000 LEA ECX,DWORD PTR DS:[ESI+F38]
0040FBEE C786 2C3B0000 0>MOV DWORD PTR DS:[ESI+3B2C],0
0040FBF8 E8 387A0400 CALL RepairVi.00457635
0040FBFD 6A 00 PUSH 0
0040FBFF 8D8E 20190000 LEA ECX,DWORD PTR DS:[ESI+1920]
0040FC05 E8 2B7A0400 CALL RepairVi.00457635
0040FC0A 6A 00 PUSH 0
0040FC0C 8D8E 141E0000 LEA ECX,DWORD PTR DS:[ESI+1E14]
0040FC12 E8 1E7A0400 CALL RepairVi.00457635
0040FC17 6A 00 PUSH 0
0040FC19 8D8E 08230000 LEA ECX,DWORD PTR DS:[ESI+2308]
0040FC1F E8 117A0400 CALL RepairVi.00457635
0040FC24 6A 01 PUSH 1
0040FC26 8D8E E8310000 LEA ECX,DWORD PTR DS:[ESI+31E8]
0040FC2C E8 047A0400 CALL RepairVi.00457635
0040FC31 8B8E 303B0000 MOV ECX,DWORD PTR DS:[ESI+3B30]
0040FC37 51 PUSH ECX
0040FC38 FF15 4C834600 CALL DWORD PTR DS:[46834C]
0040FC3E EB 04 JMP SHORT RepairVi.0040FC44 //這裡還藏有一句花指令。
0040FC40 E5 87 IN EAX,87 ; I/O 命令
0040FC42 2E:72 FF JB SHORT RepairVi.0040FC44 ; 多餘的字首
0040FC3E |> EB 04 JMP SHORT Crackme.0040FC44
0040FC44 |> FF15 04FF4700 CALL DWORD PTR DS:[47FF04] //加密Call,脫殼後必須NOP掉,因為它指向殼中。
0040FC45 15 04FF4700 ADC EAX,RepairVi.0047FF04
0040FC4A 85DB TEST EBX,EBX
0040FC4C 75 43 JNZ SHORT RepairVi.0040FC91
0040FC4E 6A 6C PUSH 6C
0040FC50 E8 29880400 CALL RepairVi.0045847E
0040FC55 83C4 04 ADD ESP,4
0040FC58 894424 10 MOV DWORD PTR SS:[ESP+10],EAX
0040FC5C 85C0 TEST EAX,EAX
0040FC5E 895C24 1C MOV DWORD PTR SS:[ESP+1C],EBX
0040FC62 74 0C JE SHORT RepairVi.0040FC70
0040FC64 53 PUSH EBX
0040FC65 8BC8 MOV ECX,EAX
0040FC67 E8 14D3FFFF CALL RepairVi.0040CF80
0040FC6C 8BF0 MOV ESI,EAX
0040FC6E EB 02 JMP SHORT RepairVi.0040FC72
0040FC70 33F6 XOR ESI,ESI
0040FC72 85F6 TEST ESI,ESI
0040FC74 C74424 1C FFFFF>MOV DWORD PTR SS:[ESP+1C],-1
0040FC7C 74 13 JE SHORT RepairVi.0040FC91
0040FC7E 8B16 MOV EDX,DWORD PTR DS:[ESI]
0040FC80 8BCE MOV ECX,ESI
0040FC82 FF92 B8000000 CALL DWORD PTR DS:[EDX+B8]
0040FC88 8B06 MOV EAX,DWORD PTR DS:[ESI]
0040FC8A 6A 01 PUSH 1
0040FC8C 8BCE MOV ECX,ESI
0040FC8E FF50 04 CALL DWORD PTR DS:[EAX+4]
0040FC91 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14]
0040FC95 5F POP EDI
0040FC96 5E POP ESI
0040FC97 B8 01000000 MOV EAX,1
0040FC9C 5B POP EBX
0040FC9D 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0040FCA4 83C4 14 ADD ESP,14
0040FCA7 C3 RETN
.....................................................................
儲存所有的修改,兩處暗樁去掉後,程式正常執行並可以修復檔案,另外10天試用期隨著殼的脫去化為烏有。
最後爆破它,用別人的KEY註冊感覺不爽。
破解分析參考我的 AVI MPEG RM WMV Joiner4.11脫殼+破解,過程查不多。
關鍵跳轉分析如下。
0040D73F . E8 FCEEFFFF CALL Crack.0040C640
0040D744 . 83C4 0C ADD ESP,0C
0040D747 . 85C0 TEST EAX,EAX
0040D749 . 74 0A JE SHORT Crack.0040D755 //爆破點,jne 40D755
0040D74B . C786 C0000000>MOV DWORD PTR DS:[ESI+C0],1 //全域性標誌位賦值。
破解後任意名字註冊。
--------------------------------------------------------------------------------
【版權宣告】 本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!
相關文章
- VideoSplitter V2.31 脫殼去暗樁+完美爆破2015-11-15IDE
- ASProtect 1.23 SDK之 Aspack2.12r 主程式脫殼去暗樁2015-11-15
- 同益起名大師
3.29 脫殼加爆破2004-09-22
- 手動脫殼ASProtect 1.23beta21之Aspack2.12的主程式and暗樁分析2015-11-15
- UltraEdit32 v10找註冊碼+去暗樁2015-11-15
- 我已爆破3.62版,要小心啊!有暗樁的…… (15千字)AcitveX控制元件2001-11-06控制元件
- 殼的工作原理脫殼2013-04-10
- Grduw最新版破解過程(爆破keyfile,nag,時間限制,暗樁,字元加密)... (10千字)2001-10-16字元加密
- 壹次脫殼法――Armadillo 雙程式標準殼 快速脫殼2015-11-15
- VBExplorer.exe脫殼教程
附脫殼指令碼2015-11-15指令碼
- ASProtect
1.23RC4 以殼解殼+暗樁修復+解除自校驗+破解――ArtCursors V3.99B32004-06-16
- HyperSnap-DX
5.61 漢化版主程式脫殼--第一部分2004-11-12
- ExeStealth 常用脫殼方法 + ExeStealth V2.72主程式脫殼2015-11-15
- 易語言3.5很暗的暗樁分析:)2015-11-15
- 以殼解殼--SourceRescuer脫殼手記破解分析2004-11-16
- 脫殼基本知識2015-11-15
- SoftDefender主程式脫殼2015-11-15
- International CueClub主程式脫殼(Softwrap殼)2004-09-12
- 脫殼----對用pecompact加殼的程式進行手動脫殼
(1千字)2000-07-30
- iOS逆向學習之五(加殼?脫殼?)2019-10-10iOS
- 先分析,再脫殼(一)2003-09-04
- IconEdit2
脫殼2002-03-28
- 十、iOS逆向之《越獄砸殼/ipa脫殼》2021-03-18iOS
- C32Asm外殼脫殼分析筆記2015-11-15ASM筆記
- Acprotect之完美解除安裝XP V9.15脫殼修復 (狗尾續貂)2015-11-15
- “愛加密” 動態脫殼法2014-11-21加密
- 360加固保動態脫殼2014-11-17
- EasyBoot5.03脫殼+暴破2004-11-17boot
- Armadillo 3.6主程式脫殼2015-11-15
- 脫殼----對用Petite2.2加殼的程式進行手動脫殼的一點分析
(5千字)2000-07-27
- 模擬跟蹤+修復方法之ACProtect脫殼――完美解除安裝XP V9.122015-11-15
- 教你如何寫UPX脫殼指令碼2019-05-11指令碼
- ☆Steel
Box☆脫殼――taos的New Protection2004-12-13
- 寫給新手
- 淺談脫殼方法2004-12-18
- EmbedPE
1.13 詳細分析和脫殼2005-01-03
- [翻譯]利用程式碼注入脫殼2015-11-15
- 脫殼後軟體減肥大法2015-11-15
- 一次簡單的脫殼2024-08-30