首页
社区
课程
招聘
[求助]这个软件是UPX的壳,居然脱不了!
发表于: 2007-8-7 23:31 6292

[求助]这个软件是UPX的壳,居然脱不了!

2007-8-7 23:31
6292
用PEID标准扫描什么都发现不了,用深度扫描和核心扫描能找到UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
用 UPX专用脱壳机 脱不了,就连 UPXShellEx 也脱不了,然后我手动脱壳后,发现用 Import REConstructor 修复不了。所以程序运行不了。
更奇怪的是,这个手动脱了壳的程序用OD居然加载不了!!! 加载时显示:无法启动文件:18ab: 
这究竟是怎么回事呢?
下面我贴出脱壳前的一段代码让大家帮我分析一下吧,谢了!

006687F1 > $  BE 00105900   mov     esi, 00591000 ================OD加载后停在这里
006687F6   .  8DBE 0000E7FF lea     edi, dword ptr [esi+FFE70000]=======根据UPX手动脱壳的方法,
006687FC   .  57            push    edi======================往下找跨段跳转。
006687FD   .  83CD FF       or      ebp, FFFFFFFF================我在00668968处找到了这个跳转。
00668800   .  EB 10         jmp     short 00668812
00668802      90            nop
00668803      90            nop
00668804      90            nop
00668805      90            nop
00668806      90            nop
00668807      90            nop
00668808   >  8A06          mov     al, byte ptr [esi]
0066880A   .  46            inc     esi
0066880B   .  8807          mov     byte ptr [edi], al
0066880D   .  47            inc     edi
0066880E   >  01DB          add     ebx, ebx
00668810   .  75 07         jnz     short 00668819
00668812   >  8B1E          mov     ebx, dword ptr [esi]
00668814   .  83EE FC       sub     esi, -4
00668817   .  11DB          adc     ebx, ebx
00668819   >^ 72 ED         jb      short 00668808
0066881B   .  B8 01000000   mov     eax, 1
00668820   >  01DB          add     ebx, ebx
00668822   .  75 07         jnz     short 0066882B
00668824   .  8B1E          mov     ebx, dword ptr [esi]
00668826   .  83EE FC       sub     esi, -4
00668829   .  11DB          adc     ebx, ebx
0066882B   >  11C0          adc     eax, eax
0066882D   .  01DB          add     ebx, ebx
0066882F   .  73 0B         jnb     short 0066883C
00668831   .  75 28         jnz     short 0066885B
00668833   .  8B1E          mov     ebx, dword ptr [esi]
00668835   .  83EE FC       sub     esi, -4
00668838   .  11DB          adc     ebx, ebx
0066883A   .  72 1F         jb      short 0066885B
0066883C   >  48            dec     eax
0066883D   .  01DB          add     ebx, ebx
0066883F   .  75 07         jnz     short 00668848
00668841   .  8B1E          mov     ebx, dword ptr [esi]
00668843   .  83EE FC       sub     esi, -4
00668846   .  11DB          adc     ebx, ebx
00668848   >  11C0          adc     eax, eax
0066884A   .^ EB D4         jmp     short 00668820
0066884C   >  01DB          add     ebx, ebx
0066884E   .  75 07         jnz     short 00668857
00668850   .  8B1E          mov     ebx, dword ptr [esi]
00668852   .  83EE FC       sub     esi, -4
00668855   .  11DB          adc     ebx, ebx
00668857   >  11C9          adc     ecx, ecx
00668859   .  EB 52         jmp     short 006688AD
0066885B   >  31C9          xor     ecx, ecx
0066885D   .  83E8 03       sub     eax, 3
00668860   .  72 11         jb      short 00668873
00668862   .  C1E0 08       shl     eax, 8
00668865   .  8A06          mov     al, byte ptr [esi]
00668867   .  46            inc     esi
00668868   .  83F0 FF       xor     eax, FFFFFFFF
0066886B   .  74 75         je      short 006688E2
0066886D   .  D1F8          sar     eax, 1
0066886F   .  89C5          mov     ebp, eax
00668871   .  EB 0B         jmp     short 0066887E
00668873   >  01DB          add     ebx, ebx
00668875   .  75 07         jnz     short 0066887E
00668877   .  8B1E          mov     ebx, dword ptr [esi]
00668879   .  83EE FC       sub     esi, -4
0066887C   .  11DB          adc     ebx, ebx
0066887E   >^ 72 CC         jb      short 0066884C
00668880   .  41            inc     ecx
00668881   .  01DB          add     ebx, ebx
00668883   .  75 07         jnz     short 0066888C
00668885   .  8B1E          mov     ebx, dword ptr [esi]
00668887   .  83EE FC       sub     esi, -4
0066888A   .  11DB          adc     ebx, ebx
0066888C   >^ 72 BE         jb      short 0066884C
0066888E   >  01DB          add     ebx, ebx
00668890   .  75 07         jnz     short 00668899
00668892   .  8B1E          mov     ebx, dword ptr [esi]
00668894   .  83EE FC       sub     esi, -4
00668897   .  11DB          adc     ebx, ebx
00668899   >  11C9          adc     ecx, ecx
0066889B   .  01DB          add     ebx, ebx
0066889D   .^ 73 EF         jnb     short 0066888E
0066889F   .  75 09         jnz     short 006688AA
006688A1   .  8B1E          mov     ebx, dword ptr [esi]
006688A3   .  83EE FC       sub     esi, -4
006688A6   .  11DB          adc     ebx, ebx
006688A8   .^ 73 E4         jnb     short 0066888E
006688AA   >  83C1 02       add     ecx, 2
006688AD   >  81FD 00FBFFFF cmp     ebp, -500
006688B3   .  83D1 02       adc     ecx, 2
006688B6   .  8D142F        lea     edx, dword ptr [edi+ebp]
006688B9   .  83FD FC       cmp     ebp, -4
006688BC   .  76 0E         jbe     short 006688CC
006688BE   >  8A02          mov     al, byte ptr [edx]
006688C0   .  42            inc     edx
006688C1   .  8807          mov     byte ptr [edi], al
006688C3   .  47            inc     edi
006688C4   .  49            dec     ecx
006688C5   .^ 75 F7         jnz     short 006688BE
006688C7   .^ E9 42FFFFFF   jmp     0066880E
006688CC   >  8B02          mov     eax, dword ptr [edx]
006688CE   .  83C2 04       add     edx, 4
006688D1   .  8907          mov     dword ptr [edi], eax
006688D3   .  83C7 04       add     edi, 4
006688D6   .  83E9 04       sub     ecx, 4
006688D9   .^ 77 F1         ja      short 006688CC
006688DB   .  01CF          add     edi, ecx
006688DD   .^ E9 2CFFFFFF   jmp     0066880E
006688E2   >  5E            pop     esi
006688E3   .  89F7          mov     edi, esi
006688E5   .  B9 02A60000   mov     ecx, 0A602
006688EA   >  8A07          mov     al, byte ptr [edi]
006688EC   .  47            inc     edi
006688ED   .  2C E8         sub     al, 0E8
006688EF   >  3C 01         cmp     al, 1
006688F1   .^ 77 F7         ja      short 006688EA
006688F3   .  803F 22       cmp     byte ptr [edi], 22
006688F6   .^ 75 F2         jnz     short 006688EA
006688F8   .  8B07          mov     eax, dword ptr [edi]
006688FA   .  8A5F 04       mov     bl, byte ptr [edi+4]
006688FD   .  66:C1E8 08    shr     ax, 8
00668901   .  C1C0 10       rol     eax, 10
00668904   .  86C4          xchg    ah, al
00668906   .  29F8          sub     eax, edi
00668908   .  80EB E8       sub     bl, 0E8
0066890B   .  01F0          add     eax, esi
0066890D   .  8907          mov     dword ptr [edi], eax
0066890F   .  83C7 05       add     edi, 5
00668912   .  88D8          mov     al, bl
00668914   .^ E2 D9         loopd   short 006688EF
00668916   .  8DBE 00302600 lea     edi, dword ptr [esi+263000]
0066891C   >  8B07          mov     eax, dword ptr [edi]
0066891E   .  09C0          or      eax, eax
00668920   .  74 45         je      short 00668967
00668922   .  8B5F 04       mov     ebx, dword ptr [edi+4]
00668925   .  8D8430 30C026>lea     eax, dword ptr [eax+esi+26C030]
0066892C   .  01F3          add     ebx, esi
0066892E   .  50            push    eax
0066892F   .  83C7 08       add     edi, 8
00668932   .  FF96 D4C12600 call    dword ptr [esi+26C1D4]
00668938   .  95            xchg    eax, ebp
00668939   >  8A07          mov     al, byte ptr [edi]
0066893B   .  47            inc     edi
0066893C   .  08C0          or      al, al
0066893E   .^ 74 DC         je      short 0066891C
00668940   .  89F9          mov     ecx, edi
00668942   .  79 07         jns     short 0066894B
00668944   .  0FB707        movzx   eax, word ptr [edi]
00668947   .  47            inc     edi
00668948   .  50            push    eax
00668949   .  47            inc     edi
0066894A      B9            db      B9
0066894B   .  57            push    edi
0066894C   .  48            dec     eax
0066894D   .  F2:AE         repne   scas byte ptr es:[edi]
0066894F   .  55            push    ebp
00668950   .  FF96 D8C12600 call    dword ptr [esi+26C1D8]
00668956   .  09C0          or      eax, eax
00668958   .  74 07         je      short 00668961
0066895A   .  8903          mov     dword ptr [ebx], eax
0066895C   .  83C3 04       add     ebx, 4
0066895F   .^ EB D8         jmp     short 00668939
00668961   >  FF96 DCC12600 call    dword ptr [esi+26C1DC]
00668967   >  61            popad
00668968   .- E9 FB67DFFF   jmp     0045F168============就是这个跳转,按F8后我就用OD插件DUMP了
0066896D      00            db      00================用OD的插件的 方法一 来修复,修复成功,
0066896E      00            db      00===============但是运行不了,方法二 修复不了。
0066896F      00            db      00===============不用OD插件来修复,用 Import REConstructor 
00668970      00            db      00===============来修复也修复不了,所以运行不了:5ab: 
00668971      00            db      00
00668972      00            db      00
00668973      00            db      00
00668974      00            db      00
00668975      00            db      00
00668976      00            db      00

请那位老鸟帮帮忙~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
脱壳没问题的话可能是有检验
2007-8-8 20:42
0
雪    币: 90
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
加壳与脱壳要不要会汇编的,要不要有编程基础的
可以靠诉我吗,谢谢了
2007-8-8 20:50
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
基本代码要能看懂
可以一边调试一边学习
2007-8-8 21:49
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用 Import REConstructor 1.6 final 版终于修复了
现在新问题又出现了
这个被脱壳的程序运行后弹出“您的程序出现了错误”对话框,但是我用 C32ASM 和 OD 都查找不到这个 字符串 。用OD 调试运行(无论有没有隐藏OD)都会出现异常,按 shift + F9 后程序马上退出了,请问这种情况我应该怎么处理呢?
2007-8-9 12:00
0
雪    币: 280
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没有修复好。
2007-8-9 12:39
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那个不是系统的 错误对话框 ,是这个程序的自检对话框,只是我调试时有异常(估计是程序作者写的异常),shift+F9 后就退出了,对 Exitprocess 下断也断不了
2007-8-9 13:33
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
消息断点试下吧
2007-8-9 18:17
0
游客
登录 | 注册 方可回帖
返回
//