首页
社区
课程
招聘
[求助如何判断自效验方式?
发表于: 2007-10-13 09:32 3591

[求助如何判断自效验方式?

2007-10-13 09:32
3591
对于我这个新手来说判断自效验方式是很困难的,又想多提问多学习,但无奈现在这里每天新手只能发2个帖子,所以我要珍惜这个地方!

我现在有一个很小的软件,带壳文件680KB 脱壳后 1.8M

用PE查壳为:ASPack 2.12 -> Alexey Solodovnikov

应该很简单的一个壳,于是选择用ASPack 2.12 脱壳机脱壳!

脱壳以后PE查为: Borland Delphi 6.0 - 7.0 是用Delphi 6.0 - 7.0编写的应该算脱壳成功了!

但脱壳后的文件虽然运行正常但会在一定时间的时候自动关闭 该时间为60秒

一个哥哥建议下断点  bp SetTimer 调试,于是我就按照这个去做了!

用OD载入后在这里↓

0054602C >/$  55            push    ebp
0054602D  |.  8BEC          mov     ebp, esp
0054602F  |.  83C4 EC       add     esp, -14
00546032  |.  33C0          xor     eax, eax
00546034  |.  8945 EC       mov     dword ptr [ebp-14], eax
00546037  |.  B8 A45C5400   mov     eax, 00545CA4
0054603C  |.  E8 3B09ECFF   call    0040697C
00546041  |.  33C0          xor     eax, eax
00546043  |.  55            push    ebp
00546044  |.  68 F5605400   push    005460F5
00546049  |.  64:FF30       push    dword ptr fs:[eax]
0054604C  |.  64:8920       mov     dword ptr fs:[eax], esp
0054604F  |.  A1 7CB15400   mov     eax, dword ptr [54B17C]
00546054  |.  8B00          mov     eax, dword ptr [eax]
00546056  |.  E8 8D88F4FF   call    0048E8E8
0054605B  |.  A1 7CB15400   mov     eax, dword ptr [54B17C]
00546060  |.  8B00          mov     eax, dword ptr [eax]

用 bp SetTimer 下断↓

77D18C2E >  B8 1E120000     mov     eax, 121E ;←断在这里了
77D18C33    BA 0003FE7F     mov     edx, 7FFE0300
77D18C38    FF12            call    dword ptr [edx]
77D18C3A    C2 1000         retn    10
77D18C3D    90              nop
77D18C3E    90              nop
77D18C3F    90              nop
77D18C40    90              nop
77D18C41    90              nop
77D18C42 >  B8 C5110000     mov     eax, 11C5
77D18C47    BA 0003FE7F     mov     edx, 7FFE0300
77D18C4C    FF12            call    dword ptr [edx]
77D18C4E    C2 0800         retn    8
77D18C51    90              nop
77D18C52    90              nop
77D18C53    90              nop
77D18C54    90              nop
77D18C55    90              nop
77D18C56    8BFF            mov     edi, edi
77D18C58    55              push    ebp
77D18C59    8BEC            mov     ebp, esp
77D18C5B    8B4D 08         mov     ecx, dword ptr [ebp+8]
77D18C5E    B8 0A800000     mov     eax, 800A
77D18C63    3BC8            cmp     ecx, eax
77D18C65    0F87 D74B0000   ja      77D1D842
77D18C6B    0F84 65360000   je      77D1C2D6
77D18C71    6A 04           push    4
77D18C73    58              pop     eax
77D18C74    3BC8            cmp     ecx, eax
77D18C76    0F82 BA330000   jb      77D1C036

返回领空到这里↓
00438371  |.  85C0          test    eax, eax
00438373  |.  75 21         jnz     short 00438396
00438375  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
00438378  |.  A1 04B55400   mov     eax, dword ptr [54B504]
0043837D  |.  E8 42E3FCFF   call    004066C4
00438382  |.  8B4D F8       mov     ecx, dword ptr [ebp-8]
00438385  |.  B2 01         mov     dl, 1
00438387  |.  A1 A8874100   mov     eax, dword ptr [4187A8]
0043838C  |.  E8 0750FDFF   call    0040D398
00438391  |.  E8 96BDFCFF   call    0040412C
00438396  |>  33C0          xor     eax, eax
00438398  |.  5A            pop     edx
00438399  |.  59            pop     ecx
0043839A  |.  59            pop     ecx
0043839B  |.  64:8910       mov     dword ptr fs:[eax], edx
0043839E  |.  68 B3834300   push    004383B3
004383A3  |>  8D45 F8       lea     eax, dword ptr [ebp-8]
004383A6  |.  E8 45C3FCFF   call    004046F0
004383AB  \.  C3            retn
004383AC   .^ E9 43BDFCFF   jmp     004040F4
004383B1   .^ EB F0         jmp     short 004383A3
004383B3   .  59            pop     ecx
004383B4   .  59            pop     ecx
004383B5   .  5D            pop     ebp
004383B6   .  C3            retn
004383B7      90            nop

向上拉查找跳↓

00438325  |.  68 AC834300   push    004383AC
0043832A  |.  64:FF30       push    dword ptr fs:[eax]
0043832D  |.  64:8920       mov     dword ptr fs:[eax], esp
00438330  |.  6A 01         push    1                                               ; /TimerID = 1
00438332  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ; |
00438335  |.  8B40 34       mov     eax, dword ptr [eax+34]        ; |
00438338  |.  50            push    eax                                             ; |hWnd
00438339  |.  E8 32F1FCFF   call    <jmp.&user32.KillTimer>        ; \KillTimer
0043833E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00438341  |.  8378 30 00    cmp     dword ptr [eax+30], 0
00438345  |.  74 4F         je      short 00438396
00438347  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
0043834A  |.  8078 40 00    cmp     byte ptr [eax+40], 0
0043834E  |.  74 46         je      short 00438396
00438350  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00438353  |.  66:8378 3A 00 cmp     word ptr [eax+3A], 0
00438358  |.  74 3C         je      short 00438396
0043835A  |.  6A 00         push    0                                             ; /Timerproc = NULL
0043835C  |.  8B45 FC       mov     eax, dword ptr [ebp-4]         ; |
0043835F  |.  8B40 30       mov     eax, dword ptr [eax+30]       ; |
00438362  |.  50            push    eax                                           ; |Timeout
00438363  |.  6A 01         push    1                                             ; |TimerID = 1
00438365  |.  8B45 FC       mov     eax, dword ptr [ebp-4]         ; |
00438368  |.  8B40 34       mov     eax, dword ptr [eax+34]      ; |
0043836B  |.  50            push    eax                                           ; |hWnd
0043836C  |.  E8 5FF2FCFF   call    <jmp.&user32.SetTimer>     ; \SetTimer
00438371  |.  85C0          test    eax, eax
00438373  |.  75 21         jnz     short 00438396
00438375  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
00438378  |.  A1 04B55400   mov     eax, dword ptr [54B504]

将 00438358  |.  74 3C         je      short 00438396

改为 00438358  |.  74 3C         jMP      short 00438396

保存后的文件可以打开60秒也不关闭但无法使用了

我在想,它不应该是打开文件后创建了定时器了吧,如果有时间限制为什么没有脱壳的就一点问题都没有,脱壳的就60秒自动关闭呢,究竟是脱壳脱坏了还是汇编的不正确呢,还是还有其他自效验,我应该如何下手呢?

新手每天的帖子只能发2个,我也知道哥哥姐姐们也很忙,但还是恳求您们在百忙之中高抬贵手,教教我这个刚起步的新手,非常感激!

感谢 卡卡哥哥对我的帮助和支持,虽然问题没有解决 但您在那么忙的情况下还为我解答问题已经很可贵了,真的谢谢您!!

有愿意帮助我的哥哥姐姐请留下QQ 我会象您请教 或+我的QQ 20001015

最后祝大家工作顺利 事业有成!!

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
帮你顶一下,也需要了解
2007-10-24 17:47
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
可以用GetFileSize,CreateFileA等函数设断。一般自校验会打开自身,以判断是不是被脱壳。
2007-10-24 20:12
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有快速檢測出自校驗類型的程式嘛
2007-11-2 21:45
0
游客
登录 | 注册 方可回帖
返回
//