首页
社区
课程
招聘
[求助]请教下关于ESP定律问题
发表于: 2007-4-15 03:59 5170

[求助]请教下关于ESP定律问题

2007-4-15 03:59
5170
文件查壳:ASPack 2.x (without poly) -> Alexey Solodovnikov,呵呵,有谁知道这是什么壳吗?然后OLLICE载入:

004E3001 >  33C0            xor     eax, eax          //停在此处,继续向下
004E3003    64:8B20         mov     esp, dword ptr fs:[eax]
004E3006    64:8F00         pop     dword ptr fs:[eax]
004E3009    EB 02           jmp     short MIR.004E300D
004E300B    78 69           js      short MIR.004E3076
004E300D    60              pushad                   //来到入口点,此时ESP是0012FFE4
004E300E    E8 00000000     call    MIR.004E3013     //此时下断点 HW 0012FFE0
004E3013    5D              pop     ebp
004E3014    BB EDFFFFFF     mov     ebx, -13
004E3019    03DD            add     ebx, ebp
004E301B    99              cdq
004E301C    81EB 00300E00   sub     ebx, 0E3000

F9后来到这里:
004E33AF    61              popad
004E33B0    75 08           jnz     short MIR.004E33BA
004E33B2    B8 01000000     mov     eax, 1
004E33B7    C2 0C00         retn    0C
004E33BA    68 BC214200     push    MIR.004221BC
004E33BF    C3              retn                    //此处断下  
004E33C0    8B85 26040000   mov     eax, dword ptr [ebp+426]
004E33C6    8D8D 3B040000   lea     ecx, dword ptr [ebp+43B]
004E33CC    51              push    ecx
004E33CD    50              push    eax
004E33CE    FF95 490F0000   call    near dword ptr [ebp+F49]

据ESP定律,所断之处应该是OEP第二句,那么也就是说004e33BA处是OEP?请指教,若在断点之处继续向下跟,则跳到这里:

004221BC    E8 ABAC0000     call    MIR.0042CE6C   //在此处单步跟入,则有下面代码
004221C1  ^ E9 16FEFFFF     jmp     MIR.00421FDC
004221C6    50              push    eax
004221C7    64:FF35 0000000>push    dword ptr fs:[0]

单步进入CALL处时出现:

0042CE6C    55              push    ebp      //是否此处是真正OEP?请指教
0042CE6D    8BEC            mov     ebp, esp
0042CE6F    83EC 10         sub     esp, 10
0042CE72    A1 A4954400     mov     eax, dword ptr [4495A4]
0042CE77    8365 F8 00      and     dword ptr [ebp-8], 0
0042CE7B    8365 FC 00      and     dword ptr [ebp-4], 0
0042CE7F    53              push    ebx
0042CE80    57              push    edi
0042CE81    BF 4EE640BB     mov     edi, BB40E64E
0042CE86    3BC7            cmp     eax, edi
0042CE88    BB 0000FFFF     mov     ebx, FFFF0000
0042CE8D    74 0D           je      short MIR.0042CE9C
0042CE8F    85C3            test    ebx, eax
0042CE91    74 09           je      short MIR.0042CE9C
0042CE93    F7D0            not     eax
0042CE95    A3 A8954400     mov     dword ptr [4495A8], eax
0042CE9A    EB 60           jmp     short MIR.0042CEFC
0042CE9C    56              push    esi
0042CE9D    8D45 F8         lea     eax, dword ptr [ebp-8]
0042CEA0    50              push    eax
0042CEA1    FF15 70914300   call    near dword ptr [439170]          ; kernel32.GetSystemTimeAsFileTime
0042CEA7    8B75 FC         mov     esi, dword ptr [ebp-4]
0042CEAA    3375 F8         xor     esi, dword ptr [ebp-8]
0042CEAD    FF15 18924300   call    near dword ptr [439218]          ; kernel32.GetCurrentProcessId
请问哪处才是真正OEP?我在第一中断处DUMP出来后程序可以运行,但查壳无变化,在0042CE6C处DUP出来后程序无法初使化,修复ITA找得到许多无用的指针。请哪位高手来指教下。谢谢

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 47147
活跃值: (20465)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
1.这个是ASPack ,wwww.ASPack .com
2.004221BC是入口点
2007-4-15 09:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢老大回复,我先看下。

我去网站看了一下,都是洋文,呵呵,看不懂多少。但是我找了个aspack 2.12的加壳软件找了个小程序试了下,您说的很对,这里我有些不大明白的地方,比如,我在断下的前一句,就是
004E33BA    68 BC214200     push    MIR.004221BC 这里DUMP出来之后程序也是可以运行的。您指的入口点处DUP出来后程序还是可以运行,这二者有何区别?

另我按照您指和入口点出DUMP出来以后,PEID查壳,却还是有壳的:ASPack 2.x (without poly) -> Alexey Solodovnikov,但是我却再脱不下去了,不过这样已经能看到一些有用的信息了,向前进了一步了。请再多多指教,还有那个ESP定律,我这样子用,应该是对的吧?
2007-4-15 09:32
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
正在学习中!
2007-4-15 09:38
0
游客
登录 | 注册 方可回帖
返回
//