首页
社区
课程
招聘
[求助]帮忙分析那个地方为主要判断点,价值上万的软件
发表于: 2006-6-6 00:48 8393

[求助]帮忙分析那个地方为主要判断点,价值上万的软件

2006-6-6 00:48
8393

此程序采用vb6.0编写,在OD里用bpx VarBstrCmp下断点,F9运行,输入假注册码后按确定就出现如下
73528A03 >  FF7424 08       push    dword ptr [esp+8]            -------->按确定后就断在这,入口点,用bpx VarBstrCmp下的断点
73528A07    FF7424 08       push    dword ptr [esp+8]
73528A0B    6A 00           push    0
73528A0D    E8 B426F3FF     call    __vbaStrComp
73528A12    C2 0800         retn    8                            -------->跳到下面

0041B5DC   .  8BD8          mov     ebx, eax
0041B5DE   .  8D4D D0       lea     ecx, [ebp-30]
0041B5E1   .  F7DB          neg     ebx
0041B5E3   .  1BDB          sbb     ebx, ebx
0041B5E5   .  43            inc     ebx
0041B5E6   .  F7DB          neg     ebx
0041B5E8   .  FF15 1C114000 call    [<&MSVBVM60.__vbaFreeStr>]       ;  MSVBVM60.__vbaFreeStr
0041B5EE   .  8D4D CC       lea     ecx, [ebp-34]
0041B5F1   .  FF15 20114000 call    [<&MSVBVM60.__vbaFreeObj>]       ;  MSVBVM60.__vbaFreeObj
0041B5F7   .  66:3BDF       cmp     bx, di
0041B5FA   .  74 30         je      short 0041B62C
0041B5FC   .  66:C746 34 FF>mov     word ptr [esi+34], 0FFFF
0041B602   >  8B0E          mov     ecx, [esi]
0041B604   .  56            push    esi
0041B605   .  FF91 B4020000 call    [ecx+2B4]
0041B60B   .  3BC7          cmp     eax, edi
0041B60D   .  DBE2          fclex
0041B60F   .  0F8D 66010000 jge     0041B77B
0041B615   .  68 B4020000   push    2B4
0041B61A   .  68 E0364000   push    004036E0
0041B61F   .  56            push    esi
0041B620   .  50            push    eax
0041B621   .  FF15 38104000 call    [<&MSVBVM60.__vbaHresultCheckObj>;  MSVBVM60.__vbaHresultCheckObj
0041B627   .  E9 4F010000   jmp     0041B77B
0041B62C   >  8A46 36       mov     al, [esi+36]
0041B62F   .  8B1D F0104000 mov     ebx, [<&MSVBVM60.__vbaVarDup>]   ;  MSVBVM60.__vbaVarDup
0041B635   .  3C 03         cmp     al, 3
0041B637   .  B9 04000280   mov     ecx, 80020004
0041B63C   .  B8 0A000000   mov     eax, 0A
0041B641   .  894D 94       mov     [ebp-6C], ecx
0041B644   .  894D A4       mov     [ebp-5C], ecx
0041B647   .  8945 8C       mov     [ebp-74], eax
0041B64A   .  8945 9C       mov     [ebp-64], eax
0041B64D   .  C785 74FFFFFF>mov     dword ptr [ebp-8C], 004030D4     ;  ASCII "秀:y"
0041B657   .  C785 6CFFFFFF>mov     dword ptr [ebp-94], 8
0041B661   .  8D95 6CFFFFFF lea     edx, [ebp-94]
0041B667   .  8D4D AC       lea     ecx, [ebp-54]
0041B66A   .  76 62         jbe     short 0041B6CE
0041B66C   .  FFD3          call    ebx                              ;  <&MSVBVM60.__vbaVarDup>
0041B66E   .  8D95 7CFFFFFF lea     edx, [ebp-84]
0041B674   .  8D4D BC       lea     ecx, [ebp-44]
0041B677   .  C745 84 A4374>mov     dword ptr [ebp-7C], 004037A4
0041B67E   .  C785 7CFFFFFF>mov     dword ptr [ebp-84], 8
0041B688   .  FFD3          call    ebx
0041B68A   .  8D55 8C       lea     edx, [ebp-74]
0041B68D   .  8D45 9C       lea     eax, [ebp-64]
0041B690   .  52            push    edx
0041B691   .  8D4D AC       lea     ecx, [ebp-54]
0041B694   .  50            push    eax
0041B695   .  51            push    ecx
0041B696   .  8D55 BC       lea     edx, [ebp-44]
0041B699   .  6A 40         push    40
0041B69B   .  52            push    edx
0041B69C   .  FF15 50104000 call    [<&MSVBVM60.#595>]               ;  MSVBVM60.rtcMsgBox     ----->此处为弹出"口令错误"的提示信息

在这里想找出正确的判断关键处,可惜对本人是刚刚初学,不懂分析,还请各位多多指教。
谢谢!!!

不好意思,因为不够权限,所以不能发附件,如果大家不嫌弃就留下邮箱,然后再发给大家。谢谢!!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (27)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
分析得不错,再往下走就应当看到机器码了,离假码就不远了。
2006-6-6 10:30
0
雪    币: 257
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
上万元。。。。
往上看看注册玛比较
2006-6-6 11:16
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
往上看看.哪个跳转跳过了注册失败.一般比较与算法就是在那个地方
2006-6-6 13:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
0041B5FA   .  74 30         je      short 0041B62C

-我暂时试过在这把je改成jne,可是再运行后证明是不行的,请大家帮手分析吓那里才是真正的关键跳。

或者jmp,jge,jbe这些要是想强行跳过要怎样改?谢谢!
2006-6-6 15:08
0
雪    币: 86
活跃值: (1043)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
真晕。。有些软件爆破是比较困难的
2006-6-6 16:18
0
雪    币: 3515
活跃值: (4042)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
7
提供软件才能分析
2006-6-6 16:27
0
雪    币: 454
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
进__vbaStrComp之类的CALL看看吧。
2006-6-6 17:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
小子不才,你提供软件地址,说不定能给你搞定,呵呵。。。。。。充一回高手哈哈。。。
2006-6-6 17:05
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
10
0041B5DC 之前回溯看看,在前面某处设断点,然后再跟踪,能断下说明不远了!
2006-6-6 23:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
最初由 cnnets 发布
进__vbaStrComp之类的CALL看看吧。


可否具体些,小弟不太懂这个。
2006-6-7 00:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 laoqian 发布
0041B5DC 之前回溯看看,在前面某处设断点,然后再跟踪,能断下说明不远了!


为什么是往前呢,不是在下面吗,介意留下邮箱吗?我发个程序给您好吗?谢谢!!
2006-6-7 00:13
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
13
0041B5DC往前,才能发现怎么处理你的假码,甚至怎么算真码!
2006-6-7 15:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
最初由 laoqian 发布
0041B5DC往前,才能发现怎么处理你的假码,甚至怎么算真码!


小弟不才,还是不好意思,采用这种方式:在输入假注册码后按确定之后就来到
73528A03 >  FF7424 08       push    dword ptr [esp+8]
在这里就出现了我输入的假码,之后经过
73528A07    FF7424 08       push    dword ptr [esp+8]
73528A0B    6A 00           push    0
73528A0D    E8 B426F3FF     call    __vbaStrComp
73528A12    C2 0800         retn    8
期间右边的有两个UNICODE,其中的一个UNICODE是我输入假的注册码,并有返回到0041B5DC.一路f8后就

到下面

0041B5DC   .  8BD8          mov     ebx, eax
0041B5DE   .  8D4D D0       lea     ecx, [ebp-30]
0041B5E1   .  F7DB          neg     ebx
0041B5E3   .  1BDB          sbb     ebx, ebx
0041B5E5   .  43            inc     ebx
0041B5E6   .  F7DB          neg     ebx
0041B5E8   .  FF15 1C114000 call    [<&MSVBVM60.__vbaFreeStr>]       ;  

MSVBVM60.__vbaFreeStr
0041B5EE   .  8D4D CC       lea     ecx, [ebp-34]
0041B5F1   .  FF15 20114000 call    [<&MSVBVM60.__vbaFreeObj>]       ;  

MSVBVM60.__vbaFreeObj
0041B5F7   .  66:3BDF       cmp     bx, di
0041B5FA   .  74 30         je      short 0041B62C
0041B5FC   .  66:C746 34 FF>mov     word ptr [esi+34], 0FFFF
0041B602   >  8B0E          mov     ecx, [esi]
0041B604   .  56            push    esi
0041B605   .  FF91 B4020000 call    [ecx+2B4]
0041B60B   .  3BC7          cmp     eax, edi
0041B60D   .  DBE2          fclex
0041B60F   .  0F8D 66010000 jge     0041B77B
0041B615   .  68 B4020000   push    2B4
0041B61A   .  68 E0364000   push    004036E0
0041B61F   .  56            push    esi
0041B620   .  50            push    eax
0041B621   .  FF15 38104000 call    [<&MSVBVM60.__vbaHresultCheckObj>;  

MSVBVM60.__vbaHresultCheckObj
0041B627   .  E9 4F010000   jmp     0041B77B
0041B62C   >  8A46 36       mov     al, [esi+36]
0041B62F   .  8B1D F0104000 mov     ebx, [<&MSVBVM60.__vbaVarDup>]   ;  MSVBVM60.__vbaVarDup
0041B635   .  3C 03         cmp     al, 3
0041B637   .  B9 04000280   mov     ecx, 80020004
0041B63C   .  B8 0A000000   mov     eax, 0A
0041B641   .  894D 94       mov     [ebp-6C], ecx
0041B644   .  894D A4       mov     [ebp-5C], ecx
0041B647   .  8945 8C       mov     [ebp-74], eax
0041B64A   .  8945 9C       mov     [ebp-64], eax
0041B64D   .  C785 74FFFFFF>mov     dword ptr [ebp-8C], 004030D4     ;  ASCII "秀:y"
0041B657   .  C785 6CFFFFFF>mov     dword ptr [ebp-94], 8
0041B661   .  8D95 6CFFFFFF lea     edx, [ebp-94]
0041B667   .  8D4D AC       lea     ecx, [ebp-54]
0041B66A   .  76 62         jbe     short 0041B6CE
0041B66C   .  FFD3          call    ebx                              ;  

<&MSVBVM60.__vbaVarDup>
0041B66E   .  8D95 7CFFFFFF lea     edx, [ebp-84]
0041B674   .  8D4D BC       lea     ecx, [ebp-44]
0041B677   .  C745 84 A4374>mov     dword ptr [ebp-7C], 004037A4
0041B67E   .  C785 7CFFFFFF>mov     dword ptr [ebp-84], 8
0041B688   .  FFD3          call    ebx
0041B68A   .  8D55 8C       lea     edx, [ebp-74]
0041B68D   .  8D45 9C       lea     eax, [ebp-64]
0041B690   .  52            push    edx
0041B691   .  8D4D AC       lea     ecx, [ebp-54]
0041B694   .  50            push    eax
0041B695   .  51            push    ecx
0041B696   .  8D55 BC       lea     edx, [ebp-44]
0041B699   .  6A 40         push    40
0041B69B   .  52            push    edx
0041B69C   .  FF15 50104000 call    [<&MSVBVM60.#595>]               ;  MSVBVM60.rtcMsgBox   

  ----->此处为弹出"口令错误"的提示信息

不好意思,照我目前的水平我只知道在0041B5DC至0041B69C找关键判断点,程序中判断真假是不是应该在

这段码内。laoqian兄,我是不是应该在73528A03上面找关键判断点??
2006-6-8 00:07
0
雪    币: 212
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是不是想让我们帮你破解啊
2006-6-8 19:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最初由 cgdxxx 发布
是不是想让我们帮你破解啊


我太菜啦,只想得到各位的指点迷津,请大家多多指教。
2006-6-8 22:56
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
17
0041B5DC   .  8BD8          mov     ebx, eax
之前是什么代码呢》?就是在od里,往上看!

右边的有两个UNICODE,其中的一个UNICODE是我输入假的注册码,那另一个是什么?
2006-6-9 13:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
最初由 laoqian 发布
0041B5DC . 8BD8 mov ebx, eax
之前是什么代码呢》?就是在od里,往上看!

右边的有两个UNICODE,其中的一个UNICODE是我输入假的注册码,那另一个是什么?


出事啦!!真奇怪,现在我用bpx VarBstrCmp下断点后,再按f9运行输入假注册码,确定后直接弹出“口令出错的提示”,下断不成功啊,真奇怪啊,55555555555,laoqian我应该怎样做好呢

印象中另一个unicode不是正确的注册码,而是其它的一些根据年月日算出的数字。
2006-6-15 22:37
0
雪    币: 238
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
0041B5FA   .  74 30         je      short 0041B62C
此处不跳
到0041B77B再往下跟,应该还有别的判断
2006-6-20 15:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
奇怪,我换了几个系统,用bpx VarBstrCmp真的不正确对这个软件下断了,请问我应该怎样做,这个软件运行时需要一个名叫ssa3d30.ocx的文件.
2006-6-28 00:25
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
关键代码在此:
0041B60B   .  3BC7          cmp     eax, edi
0041B60D   .  DBE2          fclex
0041B60F   .  0F8D 66010000 jge     0041B77B
eax,edi的比较是关键
2006-6-28 21:05
0
雪    币: 241
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
一切向钱看!
2006-6-28 21:19
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
23
0041B5F7   .  66:3BDF       cmp     bx, di
0041B5FA   .  74 30         je      short 0041B62C
这里试试。
2006-6-29 08:01
0
雪    币: 234
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
实在
看不懂啊
2006-6-29 13:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
最初由 progress 发布
奇怪,我换了几个系统,用bpx VarBstrCmp真的不正确对这个软件下断了,请问我应该怎样做,这个软件运行时需要一个名叫ssa3d30.ocx的文件.


不好意思,麻烦大家帮帮手,昨天我用静态方法分析,跟踪到一个判断的地方是jbe,要是爆力pj的话,是不是要把jbe改成jnbe,今晚试改了jnbe再调试,发觉得是不行的;

后我在
0041B5F7   .  66:3BDF       cmp     bx, di
0041B5FA   .  74 30         je      short 0041B62C
把je改左jne,,改了后动态调试(我用了bpx *),发觉得好像没有在
判断注册码,但还是有点问题.
请大大家帮帮手。
2006-7-5 17:56
0
游客
登录 | 注册 方可回帖
返回
//