找注册码最简单的方法就是下这个断点bp __vbaStrComp(注意大小写)下断后直接点运行 点几次就看到正确的注册码了
请教一下楼主 这个注册机是怎么做出来的 我一跟踪就跑到系统领空了 这是怎么回事 请教一下~
对于VB的程序,这应该不叫回到领空,我们说回到领空,是说回到Kernel系统内核中,而VB在运行时,总是会在一个庞大的运行库中转转。即便是一个简单的加法,也会到达这里,要看算法,你应该到更前面的地方下断。你下断的地方,真注册码已经出来了,vbastrcomp是一个比较函数。这个地方你不会看到算法的。看不到算法,当然不能写注册机。破解VB类程序,你一定要明白VB的函数,加,减等等。虽然它会在里面转转,但是出现加或减数的位置却是一定的,你在这些地方下断,就会看看注册码生成的过程。
很少人愿意破解VB程序,倒不是因为他的保护强大,而是因为那个运行库太烦人。
能够死追VB的注册算法的人,都是些有耐心的人。/:D 原帖由 saml 于 2006-5-4 19:00 发表
請教前輩如何注冊,解壓到同一目錄,仍然不行,謝謝!
测试一下,果然注册机是无效的!哈,网上怎么会流传一些未经测试成功的注册机呢??
不过你也不要担心,我提供一个方法:
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
Microsoft Visual Basic 5.0 / 6.0
输入假注册码,即弹出:注册失败,请重新运行进行注册!
脱壳之后,UPX壳很容易就脱了啦。
我跟踪了一下这个软件,发现算法还蛮复杂的,可惜是明码比较!!
开始的早候,依据C盘序列号生成机器码,然后依次取机器码……
如下:
机器码:1641018648072878
转换:49545249484956545256485550565556
看看它们的对应关系。这其实是返回相应机器码的ASCII码(十六进制)的十进制形式,然后依次连接。
机器码 相应ASCII值 对应的十进制值
1-------------------------31---------------------------49
然后以这个长字符串进行了一个加密算法,太长,惨不忍睹!
我得到:
“5VK5U5407Z0S6CFN7XON0UZK4S94N6V19Z662ELCEB26H9C39JAW69X35YM81YF33BR01KJ99DSKRGI11B424FV3IRY948R37851"
从这里再取字符并运算,不敢看了。
得到真的注册码D50I1LE90MS87908,注册码为16位。
你脱壳后,在0045A14D处下断,可以看到刚刚生成的真注册码。
以下是比较真假过程:
00462ADD .50 push eax //真注册码压栈
00462ADE .8B45 E4 mov eax,dword ptr ss://假注册码
00462AE1 .50 push eax //假注册码压栈
00462AE2 .FF15 34114000 call dword ptr ds:[<&MSVBVM60.__v>;MSVBVM60.__vbaStrCmp //非常经典的VB比较函数
本想用C++写个注册机,可是一看到VB就头疼!!不敢在上面耗时间了。
再次声明,上面的注册机无效!!!
再次声明,就不要发无效的注册机,误人子弟。
否则会使我们的论坛失去民心。字缺勿滥! 谢谢了.
页:
1
[2]