首页
社区
课程
招聘
[求助]智能门锁管理系统[没有明显的跳转和call,非明码比较]
发表于: 2009-11-19 15:10 9693

[求助]智能门锁管理系统[没有明显的跳转和call,非明码比较]

2009-11-19 15:10
9693
软件名:力维智能门锁管理系统
编写语言:vb5.0/6.0

使用GetVBRegs找到注册成功和失败的地方替换了字符串,在OD里面看这两个地方也是相隔甚远,但又同在一个call里面;
机器码会根据时间变化
程序加的是ASPack 2.12 -> Alexey Solodovnikov壳可以直接用Peid直接脱掉
注册码必须为16位,并且可以转换为16进制的字符
比如输入码:4142434445464748
程序会分割成:41 42 43 44 45 46 47 48
分割后转换为16进制,最终也就是 ABCDEFGH

成功字符串地址:005833F2
失败字符串地址:00581C68

两个地址相差十万八千里,实在是搞不懂它是怎么跳过去的,忘高手指点一二

很期待高手说说此类没有明显跳转和call的软件应该怎么分析

4.3版的程序 : http://www.levellock.com/download/LVLOCK4.3_USB.rar

4.1 版的程序:
LVLOCK_USB.part01.rar
LVLOCK_USB.part02.rar
LVLOCK_USB.part03.rar
LVLOCK_USB.part04.rar
LVLOCK_USB.part05.rar
LVLOCK_USB.part06.rar
LVLOCK_USB.part07.rar
LVLOCK_USB.part08.rar
LVLOCK_USB.part09.rar
LVLOCK_USB.part10.rar

问题解决了,爆破需要改两个地方

程序把注册信息写到一个Access数据库里面
数据库文件名《Lock.dll》估计是作者用来迷惑人的
数据库密码:yhd

下面是第一个修改的地方
0058F6E3   .  66:83BD 8CFEF>cmp     word ptr [ebp-174], 0
[COLOR="Red"]0058F6EB   .  0F84 E4000000 je      0058F7D5                         ;  必须跳,不跳则“错误的注册码!”[/COLOR]
0058F6F1   .  B9 04000280   mov     ecx, 80020004
0058F6F6   .  898D 24FFFFFF mov     dword ptr [ebp-DC], ecx
0058F6FC   .  B8 0A000000   mov     eax, 0A
0058F701   .  8985 1CFFFFFF mov     dword ptr [ebp-E4], eax
0058F707   .  898D 34FFFFFF mov     dword ptr [ebp-CC], ecx
0058F70D   .  8985 2CFFFFFF mov     dword ptr [ebp-D4], eax
0058F713   .  C785 D4FEFFFF>mov     dword ptr [ebp-12C], 004331C8    ;  004331C8 => UNICODE"系统注册"
0058F71D   .  BB 08000000   mov     ebx, 8
0058F722   .  899D CCFEFFFF mov     dword ptr [ebp-134], ebx
0058F728   .  8D95 CCFEFFFF lea     edx, dword ptr [ebp-134]
0058F72E   .  8D8D 3CFFFFFF lea     ecx, dword ptr [ebp-C4]
0058F734   .  8B35 1C124000 mov     esi, dword ptr [<&MSVBVM60.__vba>
0058F73A   .  FFD6          call    esi                              
0058F73C   .  C785 E4FEFFFF>mov     dword ptr [ebp-11C], 004332B4    ;  004332B4 => UNICODE"错误的注册码"
0058F746   .  899D DCFEFFFF mov     dword ptr [ebp-124], ebx
0058F74C   .  8D95 DCFEFFFF lea     edx, dword ptr [ebp-124]
0058F752   .  8D8D 4CFFFFFF lea     ecx, dword ptr [ebp-B4]
0058F758   .  FFD6          call    esi
0058F75A   .  8D8D 1CFFFFFF lea     ecx, dword ptr [ebp-E4]
0058F760   .  51            push    ecx
0058F761   .  8D95 2CFFFFFF lea     edx, dword ptr [ebp-D4]
0058F767   .  52            push    edx
0058F768   .  8D85 3CFFFFFF lea     eax, dword ptr [ebp-C4]
0058F76E   .  50            push    eax
0058F76F   .  6A 40         push    40
0058F771   .  8D8D 4CFFFFFF lea     ecx, dword ptr [ebp-B4]
0058F777   .  51            push    ecx
0058F778   .  FF15 AC104000 call    dword ptr [<&MSVBVM60.#595>]     ;  弹出“错误的注册码”对话框


关键跳转就是0058F6EB ,要怎么改就自己发挥了

如果只改这里的话运行后会提示“注册出错,请与软件供应商联系!”
如图:


这是因为程序验证成功后还调用了一个函数,看看下面的代码
0058F900   .  68 A0000000              push    0A0
0058F905   .  68 540D4300              push    00430D54
0058F90A   .  8B55 C8                  mov     edx, dword ptr [ebp-38]
0058F90D   .  52                       push    edx
0058F90E   .  50                       push    eax
0058F90F   .  FF15 74104000            call    dword ptr [<&MSVBVM60.__vbaHre>;  Msvbvm60.__vbaHresultCheckObj
0058F915   >  8B45 90                  mov     eax, dword ptr [ebp-70]
0058F918   .  50                       push    eax                            ; /String = ""
[COLOR="Red"]0058F919   .  FF15 3C104000            call    dword ptr [<&MSVBVM60.rtcAnsiValueBstr>]   ; “注册出错,请与软件供应商联系!”[/COLOR]


通过上面的代码看到执行"rtcAnsiValueBstr"这个函数时eax的值是一个空字符串
所以在这个函数执行的时候就报异常了,前面看到的就是异常消息
只要把0058F919这行nop掉就可以了
或者你能让eax的值在传入这个函数时不报异常也可以

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 280
活跃值: (58)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
锁帖前留名
2009-11-19 15:12
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
期待高手来解决
2009-11-19 15:32
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
剩下没有传完的部分
上传的附件:
2009-11-19 19:34
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
part02???
2009-11-19 19:44
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
LVLOCK_USB.part02.rar

LVLOCK_USB.part01.rar
上传的附件:
2009-11-19 19:45
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
继续等待中.....
2009-11-20 01:03
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
既然“都调用同一个call”,那就仔细看看那个call是干么就行了。(有时也不用仔细跟进去看,看看堆栈里的变化可能也能猜出一二)
2009-11-20 11:28
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
算了一下注册成功到注册失败相隔了3000多行汇编代码
跳转就有45个,不过仔细看了一下发现只有几个大跳,猜想从错误到正确应该是通过这些大跳实现的,慢慢改了
继续跟踪中。。。
2009-11-20 12:16
0
雪    币: 173
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
为什么要锁帖?
2009-11-20 14:22
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
VB写的啊,不想玩
2009-11-20 15:02
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
大牛们,快显灵呀
2009-11-20 22:44
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
又沉下来了,继续顶上去
2009-11-22 22:48
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
帮顶,等高手。
2009-11-24 18:44
0
雪    币: 91
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
汇编看起来有点恼火
2009-11-25 20:42
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
若是des那么应该有密钥,并且也有比较吧
2009-11-25 21:54
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
很期待高手来说说没有明显的跳转和call这类程序的破解
2009-11-26 19:07
0
雪    币: 173
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
问题解决了,爆破需要改两个地方

程序把注册信息写到一个Access数据库里面
数据库文件名《Lock.dll》估计是作者用来迷惑人的
数据库密码:yhd

下面是第一个修改的地方
0058F6E3   .  66:83BD 8CFEF>cmp     word ptr [ebp-174], 0
[COLOR="Red"]0058F6EB   .  0F84 E4000000 je      0058F7D5                         ;  必须跳,不跳则“错误的注册码!”[/COLOR]
0058F6F1   .  B9 04000280   mov     ecx, 80020004
0058F6F6   .  898D 24FFFFFF mov     dword ptr [ebp-DC], ecx
0058F6FC   .  B8 0A000000   mov     eax, 0A
0058F701   .  8985 1CFFFFFF mov     dword ptr [ebp-E4], eax
0058F707   .  898D 34FFFFFF mov     dword ptr [ebp-CC], ecx
0058F70D   .  8985 2CFFFFFF mov     dword ptr [ebp-D4], eax
0058F713   .  C785 D4FEFFFF>mov     dword ptr [ebp-12C], 004331C8    ;  004331C8 => UNICODE"系统注册"
0058F71D   .  BB 08000000   mov     ebx, 8
0058F722   .  899D CCFEFFFF mov     dword ptr [ebp-134], ebx
0058F728   .  8D95 CCFEFFFF lea     edx, dword ptr [ebp-134]
0058F72E   .  8D8D 3CFFFFFF lea     ecx, dword ptr [ebp-C4]
0058F734   .  8B35 1C124000 mov     esi, dword ptr [<&MSVBVM60.__vba>
0058F73A   .  FFD6          call    esi                              
0058F73C   .  C785 E4FEFFFF>mov     dword ptr [ebp-11C], 004332B4    ;  004332B4 => UNICODE"错误的注册码"
0058F746   .  899D DCFEFFFF mov     dword ptr [ebp-124], ebx
0058F74C   .  8D95 DCFEFFFF lea     edx, dword ptr [ebp-124]
0058F752   .  8D8D 4CFFFFFF lea     ecx, dword ptr [ebp-B4]
0058F758   .  FFD6          call    esi
0058F75A   .  8D8D 1CFFFFFF lea     ecx, dword ptr [ebp-E4]
0058F760   .  51            push    ecx
0058F761   .  8D95 2CFFFFFF lea     edx, dword ptr [ebp-D4]
0058F767   .  52            push    edx
0058F768   .  8D85 3CFFFFFF lea     eax, dword ptr [ebp-C4]
0058F76E   .  50            push    eax
0058F76F   .  6A 40         push    40
0058F771   .  8D8D 4CFFFFFF lea     ecx, dword ptr [ebp-B4]
0058F777   .  51            push    ecx
0058F778   .  FF15 AC104000 call    dword ptr [<&MSVBVM60.#595>]     ;  弹出“错误的注册码”对话框


关键跳转就是0058F6EB ,要怎么改就自己发挥了

如果只改这里的话运行后会提示“注册出错,请与软件供应商联系!”
如图:


这是因为程序验证成功后还调用了一个函数,看看下面的代码
0058F900   .  68 A0000000              push    0A0
0058F905   .  68 540D4300              push    00430D54
0058F90A   .  8B55 C8                  mov     edx, dword ptr [ebp-38]
0058F90D   .  52                       push    edx
0058F90E   .  50                       push    eax
0058F90F   .  FF15 74104000            call    dword ptr [<&MSVBVM60.__vbaHre>;  Msvbvm60.__vbaHresultCheckObj
0058F915   >  8B45 90                  mov     eax, dword ptr [ebp-70]
0058F918   .  50                       push    eax                            ; /String = ""
[COLOR="Red"]0058F919   .  FF15 3C104000            call    dword ptr [<&MSVBVM60.rtcAnsiValueBstr>]   ; “注册出错,请与软件供应商联系!”[/COLOR]


通过上面的代码看到执行"rtcAnsiValueBstr"这个函数时eax的值是一个空字符串
所以在这个函数执行的时候就报异常了,前面看到的就是异常消息
只要把0058F919这行nop掉就可以了
或者你能让eax的值在传入这个函数时不报异常也可以
上传的附件:
2009-11-27 17:51
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错,写得不错,又是一招。
2011-9-19 16:00
0
游客
登录 | 注册 方可回帖
返回
//