WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2937查看
  • 0回复

主题

好友

4976

积分

论坛元老

发表于 2010-2-6 03:07:55 |显示全部楼层
下载页面:  sinker的朋友给他的,找sinker要  :-)
软件大小:  30 KB
发布日期:  20.10.2003

【软件简介】:PE Spin is a very simple PE protector, encryptor. Options(short): Add Debugger detection;Close program after: ... minut;API Redirection;Section names;Antidump protection;Password protection;Remove the OEP.

【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

【调试环境】:WinXP、OllyDbg、PEiD、LordPE、ImportREC

—————————————————————————————————
【脱壳过程】:
         
         
最近很是郁闷,碰巧看到这个东东,好像以前没见过,索性再捏个“软柿子”。
感觉PEspin的强度大体和EXE Stealth相仿,或许只能算作中等水平的保护壳吧?
—————————————————————————————————   
一、避开IAT加密,得到正确的输入表


老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。忽略所有的异常选项。
设置Ollydbg1.09D的调试设置选项:把 事件->标记首先暂停在->“系统断点”
77F7F571     C3                   retn

//进入OD后停在系统断点
复制代码
下断:BP VirtualAlloc    F9运行,断下。
当然也可以不忽略某些异常,看SEH信息走,但是偶觉得用这个断点稍微快点。
确定弹出的错误警告,Shift+F9走,在77E5980A处中断第2次,偶们可以行动了。
77E5980A     55                   push ebp

//中断2次,取消断点。 Ctrl+F9执行到返回

77E5980B     8BEC                 mov ebp,esp

77E5980D     FF75 14              push dword ptr ss:[ebp+14]

77E59810     FF75 10              push dword ptr ss:[ebp+10]

77E59813     FF75 0C              push dword ptr ss:[ebp+C]

77E59816     FF75 08              push dword ptr ss:[ebp+8]

77E59819     6A FF                push -1

77E5981B     E8 04000000          call kernel32.VirtualAllocEx

77E59820     5D                   pop ebp

77E59821     C2 1000              retn 10

//返回到 0040B873  
复制代码
0040B86D     FF95 FE284000        call dword ptr ss:[ebp+4028FE]; kernel32.VirtualAlloc

0040B873     50                   push eax

0040B874     8F85 B9284000        pop dword ptr ss:[ebp+4028B9]

0040B87A     8BB5 B6224000        mov esi,dword ptr ss:[ebp+4022B6]

0040B880     03B5 B3284000        add esi,dword ptr ss:[ebp+4028B3]

0040B886     3BB5 B3284000        cmp esi,dword ptr ss:[ebp+4028B3]

0040B88C     75 09                jnz short PESpin.0040B897



0040B897     817E 10 28AE0000     cmp dword ptr ds:[esi+10],0AE28

0040B89E     0F84 42010000        je PESpin.0040B9E6

//输入表处理结束之后,将跳到这个地址◆

0040B8A4     8B5E 0C              mov ebx,dword ptr ds:[esi+C]

0040B8A7     039D B3284000        add ebx,dword ptr ss:[ebp+4028B3]

0040B8AD     8BFB                 mov edi,ebx

0040B8AF     E8 3B0C0000          call PESpin.0040C4EF

0040B8B4     E8 01000000          call PESpin.0040B8BA

//跟进



0040B8BA     58                   pop eax     ; PESpin.0040B8B9

0040B8BB     53                   push ebx

0040B8BC     50                   push eax

0040B8BD     FFB5 E5284000        push dword ptr ss:[ebp+4028E5]

0040B8C3     814424 04 14000000   add dword ptr ss:[esp+4],14

0040B8CB     C3                   retn

//返回系统DLL,可以F7继续走到返回
复制代码
[esp+4]+14=[0012FF9C]=0040B8CD  所以直接在0040B8CD处下断,省点时间吧。
0040B8CD     85C0                 test eax,eax

//此处下断,F9断在这

0040B8CF     0F84 E0050000        je PESpin.0040BEB5

0040B8D5     50                   push eax

0040B8D6     E8 DDFDFFFF          call PESpin.0040B6B8

0040B8DB     56                   push esi

0040B8DC     53                   push ebx

0040B8DD     33C9                 xor ecx,ecx

0040B8DF     8A1419               mov dl,byte ptr ds:[ecx+ebx]

0040B8E2     F6C2 40              test dl,40

0040B8E5     74 04                je short PESpin.0040B8EB

0040B8E7     802419 5F            and byte ptr ds:[ecx+ebx],5F

0040B8EB     41                   inc ecx

0040B8EC     0AD2                 or dl,dl

0040B8EE     75 EF                jnz short PESpin.0040B8DF

0040B8F0     49                   dec ecx

0040B8F1     C1C1 10              rol ecx,10

0040B8F4     8A2B                 mov ch,byte ptr ds:[ebx]

0040B8F6     B1 04                mov cl,4

0040B8F8     33D2                 xor edx,edx

0040B8FA     3AAC15 03324000      cmp ch,byte ptr ss:[ebp+edx+403203]

0040B901     74 09                je short PESpin.0040B90C



0040B90C     C1E9 10              shr ecx,10

0040B90F     8DBC2A 04324000      lea edi,dword ptr ds:[edx+ebp+403204]

0040B916     8B3F                 mov edi,dword ptr ds:[edi]

0040B918     03FD                 add edi,ebp

0040B91A     87F3                 xchg ebx,esi

0040B91C     F3:A6                repe cmps byte ptr es:[edi],byte ptr ds:[esi]

//比较是否该加密

0040B91E     75 09                jnz short PESpin.0040B929

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-4 11:56 , Processed in 0.054691 second(s), 16 queries .

返回顶部