| 
	| 〖文章分类:电脑·手机·网络 / 软件编程·编译〗〖阅读选项〗 |  | 【加壳方式】PECompact 2.x -> Jeremy Collake 
 OllyDbg忽略内存访问异常,载入主程序:
 
 00401000 >  B8 1CBA5000     MOV     EAX, 0050BA1C
 00401005    50              PUSH    EAX
 00401006    64:FF35 0000000>PUSH    DWORD PTR FS:[0]
 0040100D    64:8925 0000000>MOV     DWORD PTR FS:[0],ESP
 00401014    33C0            XOR     EAX,EAX
 00401016    8908            MOV     DWORD PTR DS:[EAX],ECX
 00401018    50              PUSH    EAX
 00401019    45              INC     EBP
 0040101A    43              INC     EBX
 0040101B    6F              OUTS    DX,DWORD PTR ES:[EDI]            ; I/O command
 0040101C    6D              INS     DWORD PTR ES:[EDI],DX            ; I/O command
 
 bp VirtualAlloc  运行
 
 返回到用户代码:
 
 Ctrl+F搜索命令:call edi
 
 0050BAC1    8B4B 0C         MOV     ECX,DWORD PTR DS:[EBX+C]
 0050BAC4    894E 14         MOV     DWORD PTR DS:[ESI+14],ECX
 0050BAC7    FFD7            CALL    EDI        ;跟进去
 0050BAC9    8985 23120010   MOV     DWORD PTR SS:[EBP+10001223],EAX
 0050BACF    8BF0            MOV     ESI,EAX
 0050BAD1    59              POP     ECX
 0050BAD2    5A              POP     EDX
 
 进入call edi,来到:
 
 01240258    53              PUSH    EBX                              ; GameThru.0050B9F8
 01240259    57              PUSH    EDI
 0124025A    56              PUSH    ESI
 0124025B    55              PUSH    EBP
 0124025C    E8 00000000     CALL    01240261
 01240261    5D              POP     EBP
 01240262    81ED 30120010   SUB     EBP,10001230
 01240268    8DB5 27120010   LEA     ESI,DWORD PTR SS:[EBP+10001227]
 0124026E    8B46 FC         MOV     EAX,DWORD PTR DS:[ESI-4]
 
 Ctrl+F搜索命令:mov ecx,[esi+34]
 
 01240333    90              NOP
 01240334    90              NOP
 01240335    8B4E 34         MOV     ECX,DWORD PTR DS:[ESI+34]
 01240338    85C9            TEST    ECX,ECX      ; ecx=8D000保存原始Import,把它改成零
 0124033A    0F84 89000000   JE      012403C9      ; 这里强制跳过去,跟tE一样
 01240340    034E 08         ADD     ECX,DWORD PTR DS:[ESI+8]
 01240343    51              PUSH    ECX
 01240344    56              PUSH    ESI
 
 bp VirtualFree,中断两次以后返回(thx2fly):
 
 0050BADC    57              PUSH    EDI
 0050BADD    FF11            CALL    DWORD PTR DS:[ECX]
 0050BADF    8BC6            MOV     EAX,ESI                          ; GameThru.00487228
 0050BAE1    5A              POP     EDX
 0050BAE2    5E              POP     ESI
 0050BAE3    5F              POP     EDI
 0050BAE4    59              POP     ECX
 0050BAE5    5B              POP     EBX
 0050BAE6    5D              POP     EBP
 0050BAE7    FFE0            JMP     EAX        ; 飞向光明之颠^o^
 
 完全dump下来,修正输入表为8D000,收工。
 
 【OS自动脚本】
 
 ////////////////////////////////////////////
 
 ////    PECompact V2.X 完美脱壳脚本
 
 ////    cyclotron [BCG][DFCG][FCG][OCN]
 
 ////////////////////////////////////////////
 
 msg  "请忽略内存访问异常!"
 
 var  dwImport
 
 gpa  "VirtualAlloc","kernel32.dll"
 bp  $RESULT
 run
 
 bc  $RESULT
 rtu
 
 findop  eip,#FFD7#  //call edi
 bp  $RESULT
 run
 
 bc  $RESULT
 sti
 
 findop  eip,#8B4E34#  //mov ecx,[esi+34h]
 bp  $RESULT
 run
 
 bc  $RESULT
 sti
 mov  dwImport,ecx
 mov  ecx,0
 
 gpa  "VirtualFree","kernel32.dll"
 bp  $RESULT
 run
 run
 
 bc  $RESULT
 rtu
 
 findop  eip,#FFE0#  //jmp eax
 bp  $RESULT
 run
 bc  $RESULT
 
 msg  dwImport
 msg  "请转储文件!"
 
 
 Regards,
 cyclotron
 05.2.6
 
 
 |  | 文章作者:未知  更新日期:2005-12-02 |  | 〖文章浏览:〗〖发送文章〗〖打印文章〗 |  |  |  |