首页
社区
课程
招聘
[原创]寻找一个vb软件注册码之路
2008-3-3 21:33 8304

[原创]寻找一个vb软件注册码之路

2008-3-3 21:33
8304
【文章标题】: 寻找一个vb软件注册码之路
【文章作者】: hpxpj
【软件名称】: 挡土墙计算
【下载地址】: 自己搜索下载
【加壳方式】: 无
【编写语言】: vb6.0非p-code
【使用工具】: OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【软件介绍】:可用于预算,避免重算,一次搞定!还可生成详细的步骤哦:)很好用的工具
--------------------------------------------------------------------------------
【详细过程】
  1.查壳、编写语言
  没有加客,哈哈。。。visual basic 6.0
  2.寻找注册码
  1)我们用od打开主程序按F9运行,跳出登入框,我们输入密码:123456

  2)因为我们不知道,它是用什么方法进行验证的,所以我们要从最有可能的函数开始下断点,看是是否能断下,
  看雪教程中有一章专门讲vb的,我们就试这些函数,我直接给出能断下的函数:
  (1)rtcMsgBox // 显示一信息对话框
  (2)__vbafreeobj
  (3)rtcR8ValFromBstr //把字符串转换成浮点数
  我们当然选择从rtcR8ValFromBstr函数开始分析。
  对rtcR8ValFromBstr下断,程序在00471CCD停下来:
  00471CBA   .  6A 50         push    50
  00471CBC   .  68 88A14000   push    0040A188
  00471CC1   .  51            push    ecx
  00471CC2   .  50            push    eax
  00471CC3   .  FF15 58104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
  00471CC9   >  8B55 E4       mov     edx, dword ptr [ebp-1C]
  00471CCC   .  52            push    edx
   00471CCD   .  FF15 BC114000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
  00471CD3   .  83EC 08       sub     esp, 8
  00471CD6   .  DD1C24        fstp    qword ptr [esp]
  00471CD9   .  FF15 DC104000 call    dword ptr [<&MSVBVM60.__vbaStrR8>;  MSVBVM60.__vbaStrR8
  00471CDF   .  8BD0          mov     edx, eax
  00471CE1   .  8D4D E8       lea     ecx, dword ptr [ebp-18]
  00471CE4   .  FF15 98114000 call    dword ptr [<&MSVBVM60.__vbaStrMo>;  MSVBVM60.__vbaStrMove
  00471CEA   .  8B3D B8114000 mov     edi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaFreeStr
  00471CF0   .  8D4D E4       lea     ecx, dword ptr [ebp-1C]
  00471CF3   .  FFD7          call    edi                              ;  <&MSVBVM60.__vbaFreeStr>
  00471CF5   .  8D4D DC       lea     ecx, dword ptr [ebp-24]
  00471CF8   .  FF15 B4114000 call    dword ptr [<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObj
  00471CFE   .  B8 02000000   mov     eax, 2
  00471D03   .  8D4D CC       lea     ecx, dword ptr [ebp-34]
  00471D06   .  8945 D4       mov     dword ptr [ebp-2C], eax
  00471D09   .  8945 CC       mov     dword ptr [ebp-34], eax
  00471D0C   .  8D45 E8       lea     eax, dword ptr [ebp-18]
  我们注意一下00471CCD处上面几句,其中:
  00471CC9   >  8B55 E4       mov     edx, dword ptr [ebp-1C]
  00471CCC   .  52            push    edx
  我们可知edx是它的参数,它是一个指针
  我们用命令d edx可以在数据窗口中看到:
  0014D2DC  34 00 38 00 35 00 34 00 39 00 30 00 39 00 32 00  4.8.5.4.9.0.9.2.
  0014D2EC  36 00 00 00 0D F0 AD BA 0D F0 AD BA AB AB AB AB  6....瓠?瓠韩
  0014D2FC  AB AB AB AB 00 00 00 00 00 00 00 00 07 00 07 00  ..........
  这数字48549092正是本机序列号。
  我们在按F9运行程序断在00471D85处:
  00471D73   .  FF15 70114000 call    dword ptr [<&MSVBVM60.__vbaVarAd>;  MSVBVM60.__vbaVarAdd
  00471D79   .  50            push    eax
  00471D7A   .  8D45 E4       lea     eax, dword ptr [ebp-1C]
  00471D7D   .  50            push    eax
  00471D7E   .  FF15 20114000 call    dword ptr [<&MSVBVM60.__vbaStrVa>;  MSVBVM60.__vbaStrVarVal
  00471D84   .  50            push    eax
   00471D85   .  FF15 BC114000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
  00471D8B   .  D95E 34       fstp    dword ptr [esi+34]
  00471D8E   .  8D4D E4       lea     ecx, dword ptr [ebp-1C]
  00471D91   .  FFD7          call    edi
  00471D93   .  8D4D 9C       lea     ecx, dword ptr [ebp-64]
  00471D96   .  8D55 BC       lea     edx, dword ptr [ebp-44]
  00471D99   .  51            push    ecx
  00471D9A   .  8D45 CC       lea     eax, dword ptr [ebp-34]
  00471D9D   .  52            push    edx
  00471D9E   .  50            push    eax
  像上面一样步骤,我们查看eax处的数据:
  0014D2DC  31 00 31 00 31 00 31 00 31 00 30 00 35 00 30 00  1.1.1.1.1.0.5.0.
  0014D2EC  00 00 00 00 0D F0 AD BA 0D F0 AD BA AB AB AB AB  .....瓠?瓠韩
  0014D2FC  AB AB AB AB 00 00 00 00 00 00 00 00 07 00 07 00  ..........
  这11111050是什么,当然就是密码了,哈哈。。。
  别停我们继续,再次F9,
  00471F41   .  57            push    edi
  00471F42   .  50            push    eax
  00471F43   .  FF15 58104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
  00471F49   >  8B55 E4       mov     edx, dword ptr [ebp-1C]
  00471F4C   .  52            push    edx
   00471F4D   .  FF15 BC114000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
  00471F53   .  DD9D 50FFFFFF fstp    qword ptr [ebp-B0]
  00471F59   .  DD85 50FFFFFF fld     qword ptr [ebp-B0]
  00471F5F   .  D99D 34FFFFFF fstp    dword ptr [ebp-CC]
  00471F65   .  D985 34FFFFFF fld     dword ptr [ebp-CC]
  00471F6B   .  FF15 90104000 call    dword ptr [<&MSVBVM60.__vbaFpR4>>;  MSVBVM60.__vbaFpR4
  00471F71   .  D85E 34       fcomp   dword ptr [esi+34]
  00471F74   .  DFE0          fstsw   ax
  00471F76   .  F6C4 40       test    ah, 40
  00471F79   .  74 07         je      short 00471F82
  这次我们查看edx出的数据:
  00154D84  31 00 32 00 33 00 34 00 35 00 36 00 00 00 30 00  1.2.3.4.5.6...0.
  00154D94  00 00 AD BA 0D F0 AD BA 0D F0 AD BA AB AB AB AB  ...瓠?瓠韩
  00154DA4  AB AB AB AB 00 00 00 00 00 00 00 00 0E 00 07 00  ..........
  哈哈。。。123456正是我们输入的密码。再F9就弹出nag了。
  3.编写keygen
  略。。。以后再研究:)
  
--------------------------------------------------------------------------------
【经验总结】
  这个软件的密码保护太弱了,作者缺乏安全意识。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年03月03日 21:29:15

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
combojiang 26 2008-3-3 21:52
2
0
好,学习。。。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Insomnia 2008-3-3 22:05
3
0
可以把原文件放出来吗?
雪    币: 248
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
CRP 2 2008-3-4 17:14
4
0
根据楼主的帖子,发现下载址:
http://codata.163.com/data/software/download/20077281185627127790.rar
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
夜凉如水 3 2008-3-5 10:26
5
0
不错 学习下
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2008-3-5 11:31
6
0
精神上支持一下大侠的诞生
雪    币: 3149
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jerryme 2008-3-30 21:23
7
0
主要是程序用的是注册码明文比较,呵
游客
登录 | 注册 方可回帖
返回