WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 3284查看
  • 2回复

主题

好友

604

积分

高级会员

发表于 2009-12-7 15:36:20 |显示全部楼层
过程

最近很多朋友加我QQ问我ASProtect 2.1x SKE怎么脱,我都做过教程了,只不过修复方法没公布

出来而已,今天我就在把总体步骤写给大家,大家自己看吧,我也很忙,不可能一个个辅导大家怎么脱!

  脱壳基本功就要熟悉初步的汇编知识,只有懂得这些,才能顺利的找出壳的下手点!

用 PEid 0.94 显示为 ASProtect 2.1x SKE -> Alexey Solodovnikov
用flyDBG载入,ALT+O, 设置内存访问异常,以及下面“同时忽略以下指定的异常或者异常范围”,其余选项全部忽略。(注:怎么设置内存访问,选项-调试设置-忽乐所有内存访问异常,把底下的全部去掉!)
  

008D2001 > 60           pushad                         ; OD入口 (这里就是壳的入口点)   
008D2002   E8 03000000     call TestDogj.008D200A (这里千万记住不要用ESP定律脱)
008D2007 - E9 EB045D45     jmp 45EA24F7
008D200C   55           push ebp
008D200D   C3           retn
008D200E   E8 01000000     call TestDogj.008D2014

---------------------------------------------------------------------------------------------------------------
找到OEP   (这个壳大概30几次异常,这里我重点说下,各位兄弟先一直访问异常,看看程序在哪运行的,在程序之前运行的访问异常,找到大跳转的地方,或者返回值!下断)

Shift+F9,一直到第二次出现855CCAEF。

Alt+M,在该dll的code段,F2下断。

Shift+F9,来到OEP了。

008BFF4C   55           push ebp
008BFF4D   8BEC         mov ebp,esp
008BFF4F   83C4 B4       add esp,-4C
008BFF52   B8 E4FD8B00     mov eax,TestDogj.008BFDE4
008BFF57   E8 E064FBFF     call TestDogj.0087643C
008BFF5C   E8 EF38FBFF     call TestDogj.00873850
008BFF61   8D40 00       lea eax,dword ptr ds:[eax]
008BFF64   0000         add byte ptr ds:[eax],al
---------------------------------------------------------------------------------------------------------------
二、发现IAT、call xxxxxxxx。

Ctrl+B:FF 25。

008711D8 - FF25 A8318C00   jmp dword ptr ds:[8C31A8]             ; kernel32.CloseHandle
008711DE   8BC0         mov eax,eax
008711E0 - FF25 A4318C00   jmp dword ptr ds:[8C31A4]             ; kernel32.CreateFileA
008711E6   8BC0         mov eax,eax
008711E8   E8 13EE2D00     call 00B50000                     ; call xxxxxxxx①
008711ED   7B 8B         jpo short TestDog1.0087117A
008711EF   C0E8 0B       shr al,0B
008711F2   EE           out dx,al
008711F3   2D 00D48BC0     sub eax,C08BD400                   ; call xxxxxxxx①
008711F8   E8 03EE2D00     call 00B50000

右键--->数据窗口跟随--->内存地址。

在数据窗口右键--->长型--->地址。

向上滚动来到IAT开始。

008C3104 1FFC7DB3
008C3108 7C93188A ntdll.RtlDeleteCriticalSection                 ; IAT开始②
008C310C 7C9210ED ntdll.RtlLeaveCriticalSection
008C3110 7C921005 ntdll.RtlEnterCriticalSection
008C3114 7C809FA1 kernel32.InitializeCriticalSection
.................
008C3134 7C80A0C7 kernel32.WideCharToMultiByte
008C3138 7C809CAD kernel32.MultiByteToWideChar
008C313C 768C6426                                     ; IAT加密
008C3140 7C810311 kernel32.lstrcpynA
008C3144 7C80C729 kernel32.lstrcpyA
008C3148 397191AA                                     ; IAT加密
008C314C 4524D92E                                     ; IAT加密
008C3150 5083EFAF                                     ; IAT加密
008C3154 7C80AC28 kernel32.GetProcAddress
008C3158 82EE7A98                                     ; IAT加密
..................
008C36F0 5D17BD2E comctl32.ImageList_Destroy
008C36F4 5D17BB5B comctl32.ImageList_Create
008C36F8 00000000
008C36FC 77DC3238 ADVAPI32.StartServiceA                     ; IAT结束③
008C3700 BC9A88FE
向上滚动来到IAT结束。

现在,我们得到这些必要的数据,开始解决IAT加密的问题。

主题

好友

6

积分

禁止访问

发表于 2010-3-31 09:20:40 |显示全部楼层
巴厘岛婚礼,时尚前卫浪漫海外婚礼尽在ido99, www.ido99.cn,浪漫预约:4006685199
回复

使用道具 举报

主题

好友

186

积分

注册会员

发表于 2010-5-9 15:30:20 |显示全部楼层
很深奥啊~研究学习
回复

使用道具 举报

快速发帖

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

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

GMT+8, 2024-5-3 23:36 , Processed in 0.058792 second(s), 17 queries .

返回顶部