- UID
 - 37790
 
 注册时间2007-12-1
阅读权限10
最后登录1970-1-1
周游历练 
  
 
 
 
该用户从未签到  
 | 
 
我是个小菜,这是我的一个处女作,一个带狗的行业软件。 
第一次写文章或者说是记录也可以,写的不好。(高手路过) 
软件地址:http://www.mslaser.cn/xiazai.asp 
Peid查出是yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h) *的壳 
但是单步跟踪时才发现好像是双层壳(菜菜)。 
 
 
OD载入 
0076F000 >  60                pushad 
0076F001    F9                stc                //ESP定律 
0076F002    BE 0ACA5DB1       mov esi,B15DCA0A 
0076F007    EB 01             jmp short dkqg.0076F00A 
0076F009    7B FC             jpo short dkqg.0076F007 
0076F00B    50                push eax 
0076F00C    E8 01000000       call dkqg.0076F012 
0076F011    7A 58             jpe short dkqg.0076F06B 
0076F013    58                pop eax 
0076F014    F9                stc 
0076F015    E8 01000000       call dkqg.0076F01B 
0076F01A  - 76 83             jbe short dkqg.0076EF9F 
0076F01C    C404F8            les eax,fword ptr ds:[eax+edi*> 
0076F01F    E8 01000000       call dkqg.0076F025 
0076F024  - 78 83             js short dkqg.0076EFA9 
 
运行到下面的代码段 
00789AF3    4F                dec edi     //F8单步跟踪 
00789AF4    45                inc ebp 
00789AF5    50                push eax 
00789AF6    4F                dec edi 
00789AF7    45                inc ebp 
00789AF8    50                push eax 
00789AF9    60                pushad 
00789AFA    60                pushad 
00789AFB    E8 00000000       call dkqg.00789B00 
00789B00    5E                pop esi 
00789B01    83EE 06           sub esi,6 
00789B04    B9 35000000       mov ecx,35 
00789B09    29CE              sub esi,ecx 
00789B0B    BA 4F65BA73       mov edx,73BA654F 
00789B10    C1E9 02           shr ecx,2 
00789B13    83E9 02           sub ecx,2 
00789B16    83F9 00           cmp ecx,0 
00789B19    7C 1A             jl short dkqg.00789B35 
00789B1B    8B048E            mov eax,dword ptr ds:[esi+ecx*> 
00789B1E    8B5C8E 04         mov ebx,dword ptr ds:[esi+ecx*> 
 
遇到向上跳的,F4运行到所选 
00789EA8    83E9 02           sub ecx,2 
00789EAB    83F9 00           cmp ecx,0 
00789EAE    7C 1A             jl short dkqg.00789ECA 
00789EB0    8B048E            mov eax,dword ptr ds:[esi+ecx*> 
00789EB3    8B5C8E 04         mov ebx,dword ptr ds:[esi+ecx*> 
00789EB7    03C3              add eax,ebx 
00789EB9    C1C0 01           rol eax,1 
00789EBC    03C2              add eax,edx 
00789EBE    81EA C76EBE54     sub edx,54BE6EC7 
00789EC4    89048E            mov dword ptr ds:[esi+ecx*4],e> 
00789EC7    49                dec ecx 
00789EC8  ^ EB E1             jmp short dkqg.00789EAB 
00789ECA    61                popad                 //F4运行到所选 
00789ECB    EB 01             jmp short dkqg.00789ECE  //大跳转 
00789ECD  - E9 FF25D49E       jmp 9F4CC4D1 
00789ED2    78 00             js short dkqg.00789ED4 
00789ED4    0010              add byte ptr ds:[eax],dl 
一直单步跟踪到以下代码 
00401000    B8 70EA7600       mov eax,dkqg.0076EA70 
00401005    50                push eax 
00401006    64:FF35 00000000  push dword ptr fs:[0]    //ESP定律 
0040100D    64:8925 00000000  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] 
0040101C    6D                ins dword ptr es:[edi],dx 
0040101D    70 61             jo short dkqg.00401080 
0040101F    637432 00         arpl word ptr ds:[edx+esi],si 
00401023    65:04 54          add al,54 
00401026    72 75             jb short dkqg.0040109D 
00401028    65:8D0D 2C110908  lea ecx,dword ptr gs:[809112C] 
0040102F    57                push edi 
00401030    696465 43 E2C2420>imul esp,dword ptr ss:[ebp+43]> 
00401038    68 61720323       push 23037261 
ESP定律运行到以下代码,F8单步跟踪 
7C94A9B5    3B45 F8           cmp eax,dword ptr ss:[ebp-8] 
7C94A9B8    72 09             jb short ntdll.7C94A9C3 
7C94A9BA    3B45 F4           cmp eax,dword ptr ss:[ebp-C] 
7C94A9BD  ^ 0F82 53F9FFFF     jb ntdll.7C94A316 
7C94A9C3    50                push eax 
7C94A9C4    E8 67000000       call ntdll.7C94AA30 
7C94A9C9    84C0              test al,al 
7C94A9CB  ^ 0F84 45F9FFFF     je ntdll.7C94A316 
7C94A9D1    F605 FAB3997C 80  test byte ptr ds:[7C99B3FA],80 
7C94A9D8    0F85 05390200     jnz ntdll.7C96E2E3 
7C94A9DE    FF73 04           push dword ptr ds:[ebx+4] 
7C94A9E1    8D45 EC           lea eax,dword ptr ss:[ebp-14] 
7C94A9E4    50                push eax 
7C94A9E5    FF75 0C           push dword ptr ss:[ebp+C] 
7C94A9E8    53                push ebx 
7C94A9E9    56                push esi 
7C94A9EA    E8 5888FDFF       call ntdll.7C923247 
7C94A9EF    F605 FAB3997C 80  test byte ptr ds:[7C99B3FA],80 
7C94A9F6    8BF8              mov edi,eax 
 
一直跟踪到下面的JMP,这个JMP就是跳向OEP的 
0076EB35  - FFE0              jmp eax                        ; dkqg.0058BFF8 
0076EB37    F8                clc 
0076EB38    BF 5800006C       mov edi,6C000058 
0076EB3D    EB 76             jmp short dkqg.0076EBB5 
0076EB3F    0090 EB760054     add byte ptr ds:[eax+540076EB]> 
0076EB45    EB 76             jmp short dkqg.0076EBBD 
 
用LordPE脱壳,再用ImportREC修复一下 
0058BFF8    55                 push ebp     //这里就是OEP了 
 
Borland Delphi 6.0 - 7.0写的 
这个行业软件是有USB狗,目前我只能跟到这里了,狗还没打死(继续努力~!) 
如果能打掉狗会再贴上的。Q398298998(欢迎交流) |   
 
 
 
 |