首页
社区
课程
招聘
[旧帖] [原创]潜水学习多日,自己加了个壳,看有高人脱的了否(共两个) 0.00雪花
发表于: 2008-1-1 02:28 6883

[旧帖] [原创]潜水学习多日,自己加了个壳,看有高人脱的了否(共两个) 0.00雪花

2008-1-1 02:28
6883
test1     没有 key      http://www.91files.com/?5WXKG5H7THCNSO4QWGFQ
test2     有锁定硬件的key 保护     http://www.91files.com/?79ZH6GNME7QNYI3BN5P1

看有高人能脱的了
1  去掉 msgbox.dll 的引用
2  脱壳。

注:
1  两个test加壳方法完全相同 ,只是 test2 加了硬件key注册。
2  请上传脱壳后的程序
3  去掉 msgbox.dll 的引用算成功1半(当然,重写个空的dll不算啊 ),也请上传
4  能说出如何加的壳,怎么加的 也算很厉害了!!!

是否有高人 出来挑战!!!!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
这叫什么事啊
2008-1-1 09:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这叫自以为壳很强  但是想请各位大侠确认确认
2008-1-1 16:15
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
刚发现看雪本身就有挑战赛,,还有奖品。。。。。。

呵呵 。  这个壳很强吗???老大能否写点自己脱壳的教程啊??(不一定该程序,任意的都行)
2008-1-1 16:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
顶起来!!!!
2008-1-2 08:55
0
雪    币: 87
活跃值: (47)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
6
VMprotect1.22以上版本吗?vmp1.55?
2008-1-2 09:20
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
7
回复楼主如下:
第一,你的MsgBox.dll与本程序没有任何关联。脱壳之后自然而然的就不需要引用了。
第二,你的一切都是建立在最里层的Aspr的基础上,所以第二个测试锁Key没有意义。

方法。针对第一个,第二个有Key也一样。OD载入,隐藏OD,对MSVBVM60.ThunRTMain下断点,断下之后,在反汇编窗口中跟随[esp+4]。然后向上找到Jmp到ThunRTMain的那一行。将其下两行改为push [esp+8]的内容,call这一行的地址。然后再push上新建EIP,Dump。使用ImortREC选取进程,输入OEP,自动获取,然后载入输入表,Fix。即可运行。
2008-1-2 15:56
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼上的真是高人啊  直接学习
2008-1-2 20:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
该不会是~来请人帮助脱壳的吧
2008-1-2 20:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
无聊的菜鸟才是真正的高人啊!
2008-1-2 21:01
0
雪    币: 208
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哈哈.这个故事真是有趣,我都没有看到楼主上传的东西
2008-1-2 21:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
请上传 脱壳后的程序  谢谢
2008-1-3 13:19
0
雪    币: 203
活跃值: (279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
lz想证明自己目前在看雪的水平.
2008-1-3 14:52
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
14
响应你的需求。参见附件。脱壳后未优化,体积有点大。
另外纠正了一下我前面一个回复中部分错误。
上传的附件:
2008-1-3 15:47
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
跟着无聊兄学习一下,第一个照着可以成功脱掉
至于第二个带KEY的,我多做了一步,就是在输入KEY之后改了AL标志位
具体步骤:
OD载入程序,下断:bp MessageBoxA  BP ThunRTMain  SHIFT+F9 

程序被断下,是程序的NAG提示,我们不管它,点确定,出现要输入KEY,

我们任意输入,然后点击OK,OD中,MessageBoxA已成功断下,F9,ALT+F9

找断首然后下断
代码如下:''bbs.pediy.com" 是我输入的假KEY
0132C010    53              push    ebx              段首
0132C011    8BD8            mov     ebx, eax
0132C013    B8 04983401     mov     eax, 1349804                ; ASCII "bbs.pediy.com"
0132C018    BA 00010000     mov     edx, 100
0132C01D    E8 82A1FDFF     call    013061A4
0132C022    B8 04993401     mov     eax, 1349904
0132C027    BA 00010000     mov     edx, 100
0132C02C    E8 73A1FDFF     call    013061A4
0132C031    68 00010000     push    100
0132C036    68 04983401     push    1349804                     ; ASCII "bbs.pediy.com"
0132C03B    A1 389A3401     mov     eax, dword ptr [1349A38]
0132C040    50              push    eax
0132C041    E8 A2A0FDFF     call    013060E8                    ; jmp 到 USER32.GetWindowTextA
0132C046    68 00010000     push    100
0132C04B    68 04993401     push    1349904
0132C050    A1 3C9A3401     mov     eax, dword ptr [1349A3C]
0132C055    50              push    eax
0132C056    E8 8DA0FDFF     call    013060E8                    ; jmp 到 USER32.GetWindowTextA
0132C05B    B8 04983401     mov     eax, 1349804                ; ASCII "bbs.pediy.com"
0132C060    E8 53B5FDFF     call    013075B8
0132C065    85C0            test    eax, eax
0132C067    74 0E           je      short 0132C077
0132C069    B8 04983401     mov     eax, 1349804                ; ASCII "bbs.pediy.com"
0132C06E    E8 45B5FDFF     call    013075B8
0132C073    85C0            test    eax, eax
0132C075    75 04           jnz     short 0132C07B
0132C077    33C0            xor     eax, eax
0132C079    EB 02           jmp     short 0132C07D
0132C07B    B0 01           mov     al, 1
0132C07D    A2 B4263401     mov     byte ptr [13426B4], al
0132C082    803D B4263401 0>cmp     byte ptr [13426B4], 0
0132C089    74 15           je      short 0132C0A0
0132C08B    6A 01           push    1
0132C08D    68 04993401     push    1349904
0132C092    68 04983401     push    1349804                     ; ASCII "bbs.pediy.com"
0132C097    E8 1CFAFFFF     call    0132BAB8
0132C09C    85C0            test    eax, eax
0132C09E    75 04           jnz     short 0132C0A4               //我改的是这个跳转,目的是让他执行MOV AL,1
0132C0A0    33C0            xor     eax, eax
0132C0A2    EB 02           jmp     short 0132C0A6
0132C0A4    B0 01           mov     al, 1
0132C0A6    A2 B4263401     mov     byte ptr [13426B4], al
0132C0AB    803D B4263401 0>cmp     byte ptr [13426B4], 0
0132C0B2    75 18           jnz     short 0132C0CC
0132C0B4    6A 30           push    30
0132C0B6    A1 682A3401     mov     eax, dword ptr [1342A68]
0132C0BB    05 E9010000     add     eax, 1E9
0132C0C0    50              push    eax
0132C0C1    68 D4C03201     push    132C0D4                     ; ASCII "Key is not valid, please try again!"
0132C0C6    53              push    ebx
0132C0C7    E8 44A0FDFF     call    01306110                    ; jmp 到 USER32.MessageBoxA
0132C0CC    A0 B4263401     mov     al, byte ptr [13426B4]
0132C0D1    5B              pop     ebx
0132C0D2    C3              retn

修改之后,我们继续F9,然后程序就在ThunRTMain上断下来了,看EAX的值就是OEP

其它的就可以照无聊兄做了!

如果不更改AL标志,我这里断不到ThunRTMain

放个脱过壳的,无聊兄的是第一个的,我放第二个,呵呵
上传的附件:
2008-1-3 21:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
向无聊的菜鸟学习一下,好厉害
2008-1-3 21:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
无聊兄的菜鸟,网络阿牛  高人!  看来我还差的很远很远 先谢谢你们 再向你们致敬

我还有3个不情之请:

1  test1 和test2 两个程序  本身设置了两个隐藏功能  点击 里面的 command  应该是15~20次(忘了) 就自动关闭  但是 脱壳后的程序 出错 望告知出现此问题可能的原因

2  我将继续学习 并重新加壳 这个test   还烦请二位 继续脱之 并提出意见 (也就是对我的加壳学习的进程评评分)

谢谢  太谢谢了
2008-1-4 02:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
真的很利害,向高手学习.
2008-1-4 02:29
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
19
在你程序的Botton1时间里面有一个调用被Aspr加密的,但是我不知道你的程序会连多少次要退出,所以我当时的判定是哪个调用不可到达也就没有修复。



这个我也想过的,但是想到有时候Apsr会根据Key来解码,所以一般没有Key我是不想脱的,就像以前某程序没有Key不管你怎么弄它一定是Demo版,有了Key不管你怎么弄它一定是完全版……
2008-1-4 08:44
0
雪    币: 203
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
才学脱壳1天,看了5级黑鹰视频,呵呵。
目标test1.exe,方法:单步跟踪,别笑我!
OD载入后,F7、F8组合跟到这里:
00405001    60              PUSHAD
00405002    E8 03000000     CALL test1.0040500A
00405007  - E9 EB045D45     JMP 459D54F7
0040500C    55              PUSH EBP
0040500D    C3              RETN
0040500E    E8 01000000     CALL test1.00405014
00405013    EB 5D           JMP SHORT test1.00405072
--------------------------------------------

00405001这里时,那个对话框已经过去。从这里用OD dump插件保存了个test1_1.exe
倒是把那个msgbox.dll的引用搞掉了,不过使用PEid查是ASPack 2.12 -> Alexey Solodovnikov [Overlay]
估计是乱脱揪下几片布。
随后继续跟到013a0f28处就跟不动了。是这里:
013A0F28    55              PUSH EBP                                 ; test1.0040545A
013A0F29    8BEC            MOV EBP,ESP
013A0F2B    83C4 B4         ADD ESP,-4C
013A0F2E    B8 080C3A01     MOV EAX,13A0C08
013A0F33    E8 504EFCFF     CALL 01365D88
013A0F38    E8 8326FCFF     CALL 013635C0       ;***这里进去就出一个系统信息的窗口,搞不懂啊!

--------------
权限不够,附件发布上来了!
2008-1-4 17:33
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
下面就是按钮事件,代码取自脱壳了的第二个
00401980    55              push    ebp
0401981    8BEC            mov     ebp, esp
00401983    83EC 0C         sub     esp, 0C
00401986    68 96104000     push    <jmp.&msvbvm60.__vbaExceptHandler>
0040198B    64:A1 00000000  mov     eax, dword ptr fs:[0]
00401991    50              push    eax
00401992    64:8925 0000000>mov     dword ptr fs:[0], esp
00401999    83EC 08         sub     esp, 8
0040199C    53              push    ebx
0040199D    56              push    esi
0040199E    57              push    edi
0040199F    8965 F4         mov     dword ptr [ebp-C], esp
004019A2    C745 F8 8010400>mov     dword ptr [ebp-8], 00401080
004019A9    8B75 08         mov     esi, dword ptr [ebp+8]
004019AC    8BC6            mov     eax, esi
004019AE    83E0 01         and     eax, 1
004019B1    8945 FC         mov     dword ptr [ebp-4], eax
004019B4    83E6 FE         and     esi, FFFFFFFE
004019B7    8B0E            mov     ecx, dword ptr [esi]
004019B9    56              push    esi
004019BA    8975 08         mov     dword ptr [ebp+8], esi
004019BD    FF51 04         call    dword ptr [ecx+4]
004019C0    8B46 34         mov     eax, dword ptr [esi+34]
004019C3    83C0 01         add     eax, 1                              //按钮点击一次EAX加1
004019C6    70 34           jo      short 004019FC
004019C8    83F8 10         cmp     eax, 10             //比较EAX即是否按了16次
004019CB    8946 34         mov     dword ptr [esi+34], eax   
004019CE    75 06           jnz     short 004019D6                         //如果没有到16次就继续下来的,否则执行下一句退出
004019D0    E8 2BE60A02     call    024B0000            //这里就是出错的地方,跳到壳处了,
004019D5  ^ EB C7           jmp     short 0040199E

我们在4019D0跟踪一下原程序就知道,它是调用msvbvm6_vbaEnd这个函数

我们把004019D0    E8 2BE60A02     call    024B0000

这一行改成  call  msvbvm62_vbaEnd 就行了,不难看出

第二个测试跟第一个都是一样,只是第一个按钮事件是点击B(11),而第二个

是点击10(16)次之后才调用msvbvm6_vbaEnd退出。

当初脱壳时没有考虑到程序有暗桩!!

再上传个修复好的!
上传的附件:
2008-1-4 19:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
使用PEID 0.94直接检测
是:ASProtect V2.X Registered -> Alexey Solodovnikov *
插件VerA 0.15检测
是:ASProtect 2.3 SKE build 05.14 Beta [2]!

麻烦各位哥哥,大侠,帮帮小弟~~~试了N种办法都不行啊。。。。

本人QQ: 4133623
2008-1-5 01:41
0
游客
登录 | 注册 方可回帖
返回
//