首页
社区
课程
招聘
[求助]ASProtect 1.23 RC4 - 1.3.08.24 的脱壳问题
发表于: 2007-8-5 12:23 5734

[求助]ASProtect 1.23 RC4 - 1.3.08.24 的脱壳问题

xss 活跃值
4
2007-8-5 12:23
5734
OE载入
设置Ollydbg忽略除了“内存访问异常”之外的所有其它异常选项。老规矩:用IsDebug 插件去掉Ollydbg的调试器标志。
载入后弹出“是压缩代码——要继续进行分析吗?”,点“否”。

00401000 >  68 01405100     push    00514001                        
00401005    E8 01000000     call    0040100B
0040100A    C3              retn
0040100B    C3              retn
0040100C    816A EB 6151907>sub     dword ptr [edx-15], 7C905161
00401013    D4 F8           aam     0F8
00401015    F2:             prefix repne:
00401016    08E0            or      al, ah
00401018    50              push    eax
00401019    B2 59           mov     dl, 59
0040101B    6963 DE CA275F9>imul    esp, dword ptr [ebx-22], 985F27CA
00401022    46              inc     esi
00401023    86C3            xchg    bl, al
00401025    3E:45           inc     ebp
00401027    2167 71         and     dword ptr [edi+71], esp
0040102A    19045B          sbb     dword ptr [ebx+ebx*2], eax
0040102D    78 10           js      short 0040103F
0040102F    51              push    ecx
00401030    8E08            mov     cs, word ptr [eax]                     ; 不允许段 CS
00401032    EA 735CA6E1 FA3>jmp     far 3AFA:E1A65C73
00401039    F0:6B7A CC DB   lock imul edi, dword ptr [edx-34], -25         ; 不允许锁定前缀
0040103E    38DF            cmp     bh, bl

shift+f9 28次就跳出NGA,程序运行了,所以shift+f9 27次来到最后一次异常

00F039EC    3100            xor     dword ptr [eax], eax                   ; 最后一次异常,代码都类似,Dump出来
00F039EE    64:8F05 0000000>pop     dword ptr fs:[0]
00F039F5    58              pop     eax
00F039F6    833D B07EF000 0>cmp     dword ptr [F07EB0], 0
00F039FD    74 14           je      short 00F03A13
00F039FF    6A 0C           push    0C
00F03A01    B9 B07EF000     mov     ecx, 0F07EB0
00F03A06    8D45 F8         lea     eax, dword ptr [ebp-8]
00F03A09    BA 04000000     mov     edx, 4
00F03A0E    E8 2DD1FFFF     call    00F00B40
00F03A13    FF75 FC         push    dword ptr [ebp-4]
00F03A16    FF75 F8         push    dword ptr [ebp-8]
00F03A19    8B45 F4         mov     eax, dword ptr [ebp-C]
00F03A1C    8338 00         cmp     dword ptr [eax], 0
00F03A1F    74 02           je      short 00F03A23
00F03A21    FF30            push    dword ptr [eax]
00F03A23    FF75 F0         push    dword ptr [ebp-10]
00F03A26    FF75 EC         push    dword ptr [ebp-14]
00F03A29    C3              retn                                           ; f2断点,shift+f9,再取消断点返回到 00F176A8

alt+m对code段下断点,f9+f7跟入到壳空间里

00F01C64    55              push    ebp                             
00F01C65    8BEC            mov     ebp, esp
00F01C67    8B45 08         mov     eax, dword ptr [ebp+8]
00F01C6A    85C0            test    eax, eax
00F01C6C    75 13           jnz     short 00F01C81
00F01C6E    813D A47AF000 0>cmp     dword ptr [F07AA4], 400000             ; ASCII "MZP"
00F01C78    75 07           jnz     short 00F01C81
00F01C7A    A1 A47AF000     mov     eax, dword ptr [F07AA4]
00F01C7F    EB 06           jmp     short 00F01C87
00F01C81    50              push    eax
00F01C82    E8 3135FFFF     call    00EF51B8                               ; jmp 到 kernel32.GetModuleHandleA
00F01C87    5D              pop     ebp
00F01C88    C2 0400         retn    4                                     :返回到 00407049

00407038      53            push    ebx
00407039      8BD8          mov     ebx, eax
0040703B      33C0          xor     eax, eax
0040703D      A3 10D74E00   mov     dword ptr [4ED710], eax
00407042      6A 00         push    0
00407044  |.  E8 2BFFFFFF   call    00406F74
00407049  |.  A3 18D74E00   mov     dword ptr [4ED718], eax                ;  Text2Gif.00400000
0040704E  |.  A1 18D74E00   mov     eax, dword ptr [4ED718]
00407053  |.  A3 BC304E00   mov     dword ptr [4E30BC], eax
00407058  |.  33C0          xor     eax, eax
0040705A  |.  A3 C0304E00   mov     dword ptr [4E30C0], eax
0040705F  |.  33C0          xor     eax, eax
00407061  |.  A3 C4304E00   mov     dword ptr [4E30C4], eax
00407066  |.  E8 C1FFFFFF   call    0040702C
0040706B  |.  BA B8304E00   mov     edx, 004E30B8
00407070  |.  8BC3          mov     eax, ebx
00407072  |.  E8 D5D5FFFF   call    0040464C                                :eax=004e27e0,根据资料是mov  eax, ####的值
00407077  |.  5B            pop     ebx
00407078  \.  C3            retn                                             :返回到004E2A75

004E2A38     \FC254D00      dd      Text2Gif.004D25FC
004E2A3C      94254D00      dd      Text2Gif.004D2594
004E2A40      8C294D00      dd      Text2Gif.004D298C
004E2A44      5C294D00      dd      Text2Gif.004D295C
004E2A48      F8314D00      dd      Text2Gif.004D31F8
004E2A4C      C8314D00      dd      Text2Gif.004D31C8
004E2A50      B0274E00      dd      Text2Gif.004E27B0
004E2A54      60274E00      dd      Text2Gif.004E2760
004E2A58      00            db      00
004E2A59      00            db      00
004E2A5A      00            db      00
004E2A5B      00            db      00
004E2A5C      B8274E00      dd      Text2Gif.004E27B8
004E2A60      00            db      00
004E2A61      00            db      00
004E2A62      00            db      00
004E2A63      00            db      00
004E2A64      00            db      00
004E2A65      00            db      00
004E2A66      00            db      00
004E2A67      00            db      00
004E2A68      00            db      00
004E2A69      00            db      00
004E2A6A      00            db      00
004E2A6B      00            db      00
004E2A6C      00            db      00
004E2A6D      00            db      00
004E2A6E      00            db      00
004E2A6F      00            db      00
004E2A70   .  E8 C345F2FF   call    00407038
004E2A75   .  33C0          xor     eax, eax                      :返回到这里
004E2A77   .  55            push    ebp
004E2A78   .  68 3D2B4E00   push    004E2B3D
004E2A7D   .  64:FF30       push    dword ptr fs:[eax]
004E2A80   .  64:8920       mov     dword ptr fs:[eax], esp
004E2A83   .  E8 0800F2FF   call    00402A90
004E2A88   .  48            dec     eax
004E2A89   .  75 54         jnz     short 004E2ADF
004E2A8B   .  8D55 EC       lea     edx, dword ptr [ebp-14]
004E2A8E   .  B8 01000000   mov     eax, 1
004E2A93   .  E8 5800F2FF   call    00402AF0
004E2A98   .  8B45 EC       mov     eax, dword ptr [ebp-14]
004E2A9B   .  BA 542B4E00   mov     edx, 004E2B54                          ;  ASCII "CHECKREG"
004E2AA0   .  E8 BB22F2FF   call    00404D60
004E2AA5   .  75 38         jnz     short 004E2ADF
004E2AA7   .  E8 0455FEFF   call    004C7FB0
004E2AAC   .  84C0          test    al, al
004E2AAE   .  74 09         je      short 004E2AB9
004E2AB0   .  6A 01         push    1                                      ; /ExitCode = 1
004E2AB2   .  E8 5147F2FF   call    00407208                               ; \ExitProcess
004E2AB7   .  EB 26         jmp     short 004E2ADF
004E2AB9   >  A1 70C24E00   mov     eax, dword ptr [4EC270]
004E2ABE   .  8338 00       cmp     dword ptr [eax], 0
004E2AC1   .  77 09         ja      short 004E2ACC
004E2AC3   .  6A 02         push    2                                      ; /ExitCode = 2
004E2AC5   .  E8 3E47F2FF   call    00407208                               ; \ExitProcess

可是又不像这样
004833D4    0000            ADD BYTE PTR DS:[EAX],AL
004833D6    0000            ADD BYTE PTR DS:[EAX],AL
004833D8    0000            ADD BYTE PTR DS:[EAX],AL
004833DA    0000            ADD BYTE PTR DS:[EAX],AL
004833DC    0000            ADD BYTE PTR DS:[EAX],AL
004833DE    0000            ADD BYTE PTR DS:[EAX],AL

我只好照猫画虎。程序是用Delphi写的, 入口代码应该是  11字节
  push ebp
  mov  ebp, esp
  add  esp, -10
  mov  eax, ####         eax=004e27e0

认为oep=004E2A60,去填偷去的代码,多出5字节就nop掉
后面用RecImport修复抓取文件,再补偷去代码,可是还是不能够运行
我搞的都头晕了,希望高手能够指出错误的地方,让我能够脱掉这个壳

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 472
活跃值: (4926)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
Good,都去搞2.0版本了,有脱壳脚本就懒了
遇到老版本想手动脱一下,主要卡在偷去的入口代码出了
2007-8-6 12:32
0
游客
登录 | 注册 方可回帖
返回