吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 28836|回复: 43
收起左侧

[Windows] Safengine Shielden v2.1.7.0脱壳视频

  [复制链接]
wuqing1501 发表于 2012-8-16 12:09
本帖最后由 wuqing1501 于 2012-8-16 15:21 编辑

Safengine Shielden v2.1.7.0脱壳视频
发完帖子后 发现电脑中了病毒 大家注意杀毒 抱歉啊!!
发完帖子后 发现电脑中了病毒 大家注意杀毒 抱歉啊!!
发完帖子后 发现电脑中了病毒 大家注意杀毒 抱歉啊!!
发完帖子后 发现电脑中了病毒 大家注意杀毒 抱歉啊!!


给使用SE的人的建议 一定要用SE的 api 处理全选项最大强度加密增加难度,最好使用SE的 VM把关键代码VM掉  尽量不要使用免费版的授权  因为免费版 是严重放水的 下面的方法只适合初学者 高手飞过吧


SE的加密强度是非常高的,不是我等可以搞定的,在此之所以脱壳,是因为听到朋友说有人在52破解
论坛发布了SE的脱壳(链接地址 http://www.52pojie.cn/thread-160458-1-1.html),也就怀着学
习的态度学习之。

因为样本的加壳难度非常的低(IAT基本上没有处理,没有DLL模拟,没有资源保护,没有使用VM也就
没有ANTIDUMP),故可以采用这样的方式处理,如果上面说的那么多种都有的话我是会放弃的。。。
之所以这么简单还做个视频教程,其实是朋友想让做个,顺便就传上论坛吧。。。
过程还是很简单的,大概也就看个流程吧。。
开始吧。
第一、遇到SE之类的所有的强壳的时候,首要的保证就是要有一个可以使软件正常运行的OD。。
OK 可以正常运行。。
第二、开始调试
对CODE段下内存访问断点,为什么不用别的断点?个人调试的经验吧,内存写入断点不会被ANTI
F9运行吧,一直运行到什么时候呢?看数据窗口,等CODE段的内容全部解码。。。
这个样本因为加密简单,没有保护资源等等,所以直接下段运行后code段已经解码了。。
如果加密复杂的就要一直等到CODE段解码,并且IAT 全部写入以后 这个时候就说明 已经解码完毕并
处理完了IAT 马上要到OEP了,所以这个时候我们对code段下个内存访问断点,然后F9吧,直到软件
停止在oep附近。

OEP
00401806    55              PUSH EBP                                 ; 其实这里才是OEP
00401807    8BEC            MOV EBP,ESP                              ; OEP 附近
00401809    6A FF           PUSH -1
0040180B    68 10244000     PUSH 00402410
00401810    68 00184000     PUSH 00401800
00401815    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
0040181B    50              PUSH EAX
0040181C    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
第三、修复IAT吧
oep 到了以后 就不停的F7吧,对于加密简单的,是可以这样处理的。。。
看视频吧,
这里,看看返回的结果是什么?是不是DLL基址呢?是不是相当于LoadLibraryA 的效果呢

004F523D    E8 4DB8F1FF     CALL 00410A8F
004F5242  ^ E9 80FEFFFF     JMP 004F50C7
00410A8F  - E9 E7123F7C     JMP kernel32.LoadLibraryA
0012FF08   004F5141  /CALL to LoadLibraryA from se.004F513C
0012FF0C   004F5158  \FileName = "MSVCRT.dll"
看到了吧 这里修改以后 刚好是 调用的 那就说明这样调用是可以的没有错的
F9吧
继续F7 看看这个地址 过后是不是EAX就是API地址?是不是相当于GetProcAddress?

004F50DB    50              PUSH EAX
004F5052    E8 7AE0F1FF     CALL 004130D1
004F5057  ^ EB BF           JMP SHORT 004F5018
004130D1  - E9 6A7D3F7C     JMP kernel32.GetProcAddress
0012FF04   004F516B  /CALL to GetProcAddress from se.004F5166
0012FF08   77BE0000  |hModule = 77BE0000 (msvcrt)
0012FF0C   004F5189  \ProcNameOrOrdinal = "__p__fmode"

这里很关键 如果有时候 iAT 加密的时候  加密强度比较高 这里出现的就不是 API的名称 这种方法也就失效了。。。
不好意思刚才误按了F2 重来一下吧。继续上次的。。

再来看一个API 继续F7

重新来一遍吧因为有些代码已经执行过了。。
直接去OEP吧
做完这些后 该上UIF了
OK了
用Ir修复一下IAT吧
修复了 把CODE段 以及SE段 修改为可写
可以运行的
但是这个时候 不能跨平台的 因为 IAT的调用是 偏位的 我们看下
004FC008  7C80AE40  kernel32.GetProcAddress
004FC00C  7C801629  kernel32.DeviceIoControl
004FC010  7C80B741  kernel32.GetModuleHandleA
004FC014  00000000
004FC018  77BF9CC5  msvcrt.??2@YAPAXI@Z
004FC01C  77C05C94  msvcrt._except_handler3
004FC020  77C04E51  msvcrt.__dllonexit
004FC024  77BFC407  msvcrt.malloc
004FC028  77C323D8  OFFSET msvcrt._adjust_fdiv
004FC02C  77C09D67  msvcrt._initterm
004FC030  77C16F70  msvcrt.memcpy
004FC034  77C180F9  msvcrt.wcsrchr
004FC038  77C17A90  msvcrt.strncpy
004FC03C  00000000
004FC040  77D1A9B6  user32.wsprintfW
004FC044  00000000
004FC048  76D32841  iphlpapi.GetInterfaceInfo
004FC04C  00000000
004FC050  77DA6C27  advapi32.RegCloseKey
004FC054  77DA7ABB  advapi32.RegQueryValueExA
004FC058  77DA7852  advapi32.RegOpenKeyExA

$ ==>    >7C9300C4  ntdll.RtlAllocateHeap
$+4      >7C801D7B  kernel32.LoadLibraryA
$+8      >7C80AE40  kernel32.GetProcAddress
$+C      >7C801629  kernel32.DeviceIoControl
$+10     >7C80B741  kernel32.GetModuleHandleA
$+14     >00000000
$+18     >77BF9CC5  msvcrt.??2@YAPAXI@Z
$+1C     >77C05C94  msvcrt._except_handler3
$+20     >77C04E51  msvcrt.__dllonexit
$+24     >77BFC407  msvcrt.malloc
$+28     >77C323D8  OFFSET msvcrt._adjust_fdiv
$+2C     >77C09D67  msvcrt._initterm
$+30     >77C16F70  msvcrt.memcpy
$+34     >77C180F9  msvcrt.wcsrchr
$+38     >77C17A90  msvcrt.strncpy
$+3C     >00000000
$+40     >77D1A9B6  user32.wsprintfW
$+44     >00000000
$+48     >76D32841  iphlpapi.GetInterfaceInfo
$+4C     >00000000
$+50     >77DA6C27  advapi32.RegCloseKey
$+54     >77DA7ABB  advapi32.RegQueryValueExA
$+58     >77DA7852  advapi32.RegOpenKeyExA
$+5C     >00000000
第一次录这个玩意 竟然断了三次,因为录像过程中同事发消息被录了所以截取了一段 重新录 大家将就看吧。。。
继续吧
但是看下IR修复的是 004ff000  而程序中的调用是 004FC000 需要修改一下这里。
我偷懒了 找块空地吧  写这个代码
修正一下OEP
00401A30      60            PUSHAD
00401A31      B9 5C000000   MOV ECX,5C
00401A36      BE 00F04F00   MOV ESI,<&kernel32.HeapAlloc>
00401A3B      BF 00C04F00   MOV EDI,004FC000
00401A40      F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
00401A42      61            POPAD
00401A43    ^ E9 BEFDFFFF   JMP <ModuleEntryPoint>
可以运行了。。。
虚拟机 测试一下
可以运行 可以跨平台了。。
这次就到这里了  第一次做的很不好 希望大家不要介意 其实这个就是大概的流程
对于 加密复杂的 如果有DLL模拟的话只要 开始先去掉DLL模拟  到OEP以后 修正一下 资源 就可以了
但是对于 API 全选项 高强度加密的 我就搞不定了  对于ANTIDUMP的 我也搞不定的  就这样吧
下次见。。。。。。。。
笨笨鼠。。

下载地址:
http://dl.dbank.com/c0qbzgks9a

http://115.com/file/c2sbz0lt#
Safengine Shielden v2.1.7.0脱壳视频.rar

免费评分

参与人数 5热心值 +5 收起 理由
TheEnd + 1 膜拜大牛,嘿嘿,Avast!扫描没发现毒呢!
半斤八兩 + 1 晴妹纸,牛X
291196966 + 1 解压密码呢
kuwo911 + 1 感谢发布原创作品,[吾爱破解论坛]因你更精.
Sound + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.

查看全部评分

本帖被以下淘专辑推荐:

  • · 教程|主题: 123, 订阅: 88

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Sound 发表于 2012-8-16 12:15
这个样本 貌似是最小保护、

点评

现在签名 是否还违规呢 不好意思 修改过了  发表于 2012-8-16 12:24
a13686593572 发表于 2012-8-16 12:19
 楼主| wuqing1501 发表于 2012-8-16 12:21
Sound 发表于 2012-8-16 12:15
这个样本 貌似是最小保护、

却是是最小保护 的  本来觉得太简单了 就不想做了 朋友想看 就费点事 录一下而已 加密强度高的 搞不定 我是抛砖 等着引玉呢
Chief 发表于 2012-8-16 12:31
如果是最小保护的话,不脱壳用Patch的话反而更容易。
不过楼主分享精神可佳。期待更多视频教程。
kuwo911 发表于 2012-8-16 13:07
感谢分享精彩教程   期待楼主更多作品分享
291196966 发表于 2012-8-16 20:11
解压要密码?
963705 发表于 2012-8-16 17:23
下来学习下。。SE好强大
阿杰 发表于 2012-8-16 13:59
高手在民间啊。。
leisurely 发表于 2012-8-16 13:09
学习一下牛人的教程,谢谢分享了~~
q5293435 发表于 2012-8-16 13:38
商业版SE怎么过OD
Ruin 发表于 2012-8-16 13:51
晴师傅 果然威武
Ruin 发表于 2012-8-16 13:51
晴师傅 果然威武
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表