首页
社区
课程
招聘
[旧帖] [求助]SimplePack V1.1X (Method1)加壳的软件 0.00雪花
发表于: 2007-7-22 17:11 5480

[旧帖] [求助]SimplePack V1.1X (Method1)加壳的软件 0.00雪花

2007-7-22 17:11
5480
最近遇到了个软件是SimplePack V1.1X (Method1)加壳的 搜索论坛有一篇介绍SimplePack V1.1X (Method1)脱壳的 按照他说的方法脱不了 陷入死循环 用esp定律可以可以脱 脱完后显示是Microsoft Visual Basic 5.0 / 6.0写的 不知道是否真正脱了 运行脱壳后程序软件自动删除程序后关机 请高手指点是没脱完壳还是程序有自效验

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
http://www.skycn.com/soft/23745.html
2007-7-22 17:21
0
雪    币: 1355
活跃值: (339)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
3
呵呵,明显是自校验和自删除技术嘛
我最讨厌这样做了,痛心啊。~~~连个提示警告都没有~~~恶心

原程序字节大小:466934字节
脱壳后未优化:1643008字节

下断点:可以直接在命令栏里输入“BP MSVBVM60.rtcFileLen”好了没?好了就F9吧,断在这里:

7346E967 >  55              push    ebp
7346E968    8BEC            mov     ebp, esp
7346E96A    81EC 40010000   sub     esp, 140
7346E970    8D85 C0FEFFFF   lea     eax, dword ptr [ebp-140]
7346E976    50              push    eax

CTRL+F9返回到上一级,可以看到:
00569127    FF15 C8124000   call    dword ptr [<&MSVBVM60.rtcFileLen>; MSVBVM60.rtcFileLen

而且EAX显示:00191200 即十进制的 1643008 (字节)
哼哼,明显是调用vb里面:filelen()函数来获取程序大小的嘛
接下来一步步F8,小心点,不要错按F9哦

00568F95    50              push    eax
00568F96    FF15 C8124000   call    dword ptr [<&MSVBVM60.rtcFileLen>; MSVBVM60.rtcFileLen 获取大小
00568F9C    8945 BC         mov     dword ptr [ebp-44], eax
00568F9F    BE 03000000     mov     esi, 3
00568FA4    8975 B4         mov     dword ptr [ebp-4C], esi
00568FA7    56              push    esi
00568FA8    8D4D B4         lea     ecx, dword ptr [ebp-4C]
00568FAB    51              push    ecx
00568FAC    8D55 A4         lea     edx, dword ptr [ebp-5C]
00568FAF    52              push    edx
00568FB0    FF15 24134000   call    dword ptr [<&MSVBVM60.rtcLeftCha>; MSVBVM60.rtcLeftCharVar 这个东西这里是取获取大小结果的前面三位,这里即为:164

00568FB6    C785 6CFFFFFF D>mov     dword ptr [ebp-94], 1D2————这个玩意转成十进制:466嘛,即原文件大小的前三位

接下来开始变形运算比较了:(具体怎么算毫无意义,不去理会)
00568FC0    89B5 64FFFFFF   mov     dword ptr [ebp-9C], esi
00568FC6    8D45 A4         lea     eax, dword ptr [ebp-5C]
00568FC9    50              push    eax
00568FCA    8D8D 64FFFFFF   lea     ecx, dword ptr [ebp-9C]
00568FD0    51              push    ecx
00568FD1    8D55 94         lea     edx, dword ptr [ebp-6C]
00568FD4    52              push    edx
00568FD5    FF15 CC104000   call    dword ptr [<&MSVBVM60.__vbaVarXo>; MSVBVM60.__vbaVarXor XOR运算
00568FDB    50              push    eax
00568FDC    FF15 84104000   call    dword ptr [<&MSVBVM60.__vbaBoolE>; MSVBVM60.__vbaBoolErrVar BOOL量

00568FE2    8BF0            mov     esi, eax
00568FE4    8D45 A4         lea     eax, dword ptr [ebp-5C]
00568FE7    50              push    eax
00568FE8    8D4D B4         lea     ecx, dword ptr [ebp-4C]
00568FEB    51              push    ecx
00568FEC    6A 02           push    2
00568FEE    FF15 40104000   call    dword ptr [<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList
00568FF4    83C4 0C         add     esp, 0C
00568FF7    66:3BF3         cmp     si, bx ————关键比较

00568FFA    0F84 BE030000   je      005693BE                         ; 改必须跳走——关键自校验跳
00569000    8B45 08         mov     eax, dword ptr [ebp+8]
00569003    8B10            mov     edx, dword ptr [eax]
00569005    8D4D B4         lea     ecx, dword ptr [ebp-4C]
00569008    51              push    ecx
00569009    50              push    eax
0056900A    FF52 6C         call    dword ptr [edx+6C]
0056900D    8D4D B4         lea     ecx, dword ptr [ebp-4C]
00569010    FF15 20104000   call    dword ptr [<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVar
00569016    E9 A3030000     jmp     005693BE

看来只要将这里改成必须跳走就完成了(后面的检测文件大小不是自校验部分了,真正的跳走就在这里了)

00568FFA    0F84 BE030000   je      005693BE 改成:——————————————————第一处

00568FFA   /E9 BF030000     jmp     005693BE                         ; 改必须跳走
00568FFF   |90              nop

还没完,测试发现还有时不时自校验~~~~郁闷,再等等,马上补充好

下面这些地方同样要改必须跳走的。而且程序名称不要改动,依照原样。烦恼啊
怎么找到的?呵呵,方法跟上面一样,只是多留个心眼。小心为妙。

004E9B82   /74 06           je      short 004E9B8A                   ; 这里必须改成跳走——————第二处

00569083   /0F84 35030000   je      005693BE                         ; 这里改成必须跳走——————第三处

005691D9   /0F84 DF010000   je      005693BE                           ;这里改成必须跳走——————第四处

00569286   /0F84 32010000   je      005693BE                            ;这里改成必须跳走——————第五处

0056930F   /0F84 A9000000   je      005693BE                            ;这里改成必须跳走——————第六处

0056965B   /0F84 BD020000   je      0056991E                            ;这里改成必须跳走——————第七处

005696F5   /0F84 23020000   je      0056991E                            ;这里改成必须跳走——————第八处

005697F3   /0F84 25010000   je      0056991E                             ;这里改成必须跳走——————第九处

00569879   /0F84 9F000000   je      0056991E                              ;这里改成必须跳走——————第十处

005698FF   /74 1D           je      short 0056991E                            ;这里改成必须跳走——————第十一处

00564DAF   /74 06           je      short 00564DB7                           ;这里改成必须跳走——————第十二处

呵呵,我再看看,还有的暗桩的话再改。。。郁闷都被放倒了三次了。。。

本来想破出注册码写注册机的,可是我是在网吧:

碰到了这样一个情况:


没办法啊~~哈哈~~我先试着怎样突破网吧严密封锁来到系统管理员模式下来破~~呵呵,不行,
就爆破掉,改改标志,反正也没什么功能限制和时间限制。。。说实话,这个软件是我这些天
碰到的最好的一个,最漂亮~~~喜欢它

如果你们要破解的方法的话就断点断在这,一定没问题的,看得出程序是重启验证的了
004E678D    8B45 CC         mov     eax, dword ptr [ebp-34]          ; 取假注册码
004E6790    50              push    eax
004E6791    FF15 68104000   call    dword ptr [<&MSVBVM60.rtcTrimBst>; 去掉前后多余空格
004E6797    8BD0            mov     edx, eax
004E6799    8D4D C8         lea     ecx, dword ptr [ebp-38]
004E679C    FF15 30134000   call    dword ptr [<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove

004E68A3    8B45 C8         mov     eax, dword ptr [ebp-38]          ; 取假注册码
004E68A6    50              push    eax
004E68A7    8B35 34104000   mov     esi, dword ptr [<&MSVBVM60.__vba>; MSVBVM60.__vbaLenBstr
004E68AD    FFD6            call    esi                              ; 取假注册码的长度,这里9位
004E68AF    33DB            xor     ebx, ebx
004E68B1    83F8 03         cmp     eax, 3
呵呵,这些地方都是很好玩的

004E68B1    83F8 03         cmp     eax, 3                           ; 3位以上
004E68B4    0F9CC3          setl    bl
004E68B7    F7DB            neg     ebx
004E68B9    8B4D CC         mov     ecx, dword ptr [ebp-34]          ; 获取用户名
004E68BC    51              push    ecx
004E68BD    FFD6            call    esi                              ; 取用户名长度
004E68BF    33D2            xor     edx, edx
004E68C1    83F8 02         cmp     eax, 2                           ; 2位以上
004E68C4    0F9CC2          setl    dl
004E68C7    F7DA            neg     edx
004E68C9    23DA            and     ebx, edx
004E68CB    8D45 C8         lea     eax, dword ptr [ebp-38]
004E68CE    50              push    eax
004E68CF    8D4D CC         lea     ecx, dword ptr [ebp-34]          ; 装载用户名
.
.
.
由于我的系统权限问题和机器码问题,下面的分析是没什么意义了.直接修改了未注册标记,我就将就着用一会儿,呵呵...反正也没功能和时间限制,听说会时不时地提示"未注册",我等了很久都没有看到,如果你们谁看到的就告诉我一下,最好把截图传给我,我好解除这个
恼人的骚扰信息.

刚才用着又被放倒了,分析的结果是:暗桩太多了,还有很长时间的定时自校验,可以肯定不是通过FILELEN函数的,莫非是什么CRC或者MD5?郁闷,我来点干脆的,直接把“call    dword ptr [edx+6C]”给NOP了,一共NOP了29次,郁闷啊,看来还真阴险。

这样就不怕关机威胁了,可以放心得分析和调试去了。呵呵,自校验被废掉了,但是程序出了个问题了:数字形式的时钟打不开了,我先把这个版本发上来,等有时间了再剔除BUG。或者等下班后回家用自己的电脑来解出注册码,这样就完美了。。。期待,这款软件越看越喜欢了 真的好有特点,好漂亮好逼真~~~有决心端掉它~~~大家一起研究

另外作者很可能利用了CALL ESI来替换了传统的跳转
上传的附件:
2007-8-6 20:01
0
雪    币: 1355
活跃值: (339)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
4
挖,谁看到了这个软件的骚扰提示信息什么"未注册"之类的?是最新版的2.62.0738
2007-8-7 03:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
先谢谢大侠帮忙 作者费的心思还真多 如果事先知道这么厉害我是万万不敢碰的 这个软件会不定期在左上角弹出一个未注册窗口 一会儿就消失了我也只是看到过一次 顺便问一下SimplePack V1.1X (Method1)的壳用ESP定律脱壳可以吗 论坛上介绍脱壳的方法很复杂我用其方法没成功
大侠加我QQ吧:646817729
2007-8-7 19:06
0
雪    币: 1355
活跃值: (339)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
6
不好意思哦,我是菜鸟,我不喜欢用QQ,所以就没有申请,或者申请了就丢了。比较讨厌QQ。

我有邮箱的,maplescg@tzc.edu.cn 请先联系我,一起学习吧。我想聘请你当版主,不知道你

意下如何?先发邮件跟我交流一下吧。而且这个软件我带回家一试,还是出现了什么请用管理员登陆之类的问题。机器码都

没看到,就没心思接着破了。呵呵,真是不好意思,该壳可以ESP来脱,也可以试试PEID直接脱,最有信心的是手动来脱。

这个不是猛壳呢
2007-8-7 19:55
0
游客
登录 | 注册 方可回帖
返回
//