逆天 发表于 2009-2-17 18:45

算法注册机编写扫盲---第二课

原创作者:我要
======================================================================

注:接第一课,我又来了,这次不敢再“胡说八道”题外话多多的了!下面就以实例来说明一下用VB编写注册机吧。 ^_^


一、上节所说的只是一个最为基本的算式,要做到应用在以后的算法总结编译注册机还差得很多,好,看下面算式:

机器码 Xor 123456 = 注册码

二、假设我的3台PC上各自的机器码为:12121212;13131313;14141414。那应该怎样去处理或编写出算法注册机呢?大家回看上节我的VB源码,嘿嘿,偷懒的我现在就去用我的精简原码用到上面这个算式上。怎么?通用的?看吧!

Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a Xor 123456
Text2.Text = b
End Sub

三、原码里的a就是我们要填的机器码,b就是算式的结果,也就是注册码了,用上面这个源码,试一下自己去做一次,看看这个注册机是否能算出上面3个机器码的对应真注册码。我的结果是下面:

机器码:12121212
注册码:12129852

机器码:13131313
注册码:13220977

机器码:14141414
注册码:14034342

四、呵呵,全对,你可以用计算器去验证一下这3个注册码是否正确,正确了吧!那就是说这个注册机可以在3台或更多的电脑上应用,随机器码的不同就能算出真实的注册码了! ^_^

五、晕,你老这样算不行啊,我的不是十进制,算法我找到的是十六进制值,我怎么写了,再看下面源码,用这个源码编译注册机来看看吧!

Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a Xor &H1E240
Text2.Text = b
End Sub

六、还是以上面的3个机器码为例,我得到的注册码见下面:

机器码:12121212
注册码:12129852

机器码:13131313
注册码:13220977

机器码:14141414
注册码:14034342

七、哦,与上面的计算结果完全一样的?是的,因为十六进制1E240的十进值就是前面所列的123456,明白了吧!其实不管它是不是十进制或十六进制,一样地可以应用这个源码编译出注册机来的。大家可以多试多练,自已编一个计算器,应用你自编的计算器,得到的结果与windows计算器计算结果对比一下,本人以为多做有益的吧!最好的方式就是自编crackMe,因为你已经知道它的算法,所以写出它的算法注册机当是随手可得的了!怎写?这在第三课我再说,此节打住先。

八、好,你现在已经上手,可以自己就能编写出算法注册机了!那么,就找几个软柿子下手,找到算法后,写出属于你的算法注册机吧。我找到几个东东,是N久以前的,因为它简单,适合下手,所以就用它。此处声明,算法破文非全是我之所写,是随手拿来一用,但请原破文作者见谅了! ^_^

九、安利管理销售系统 V1.2 个人版,这个东东算法超简单,就用它来开刀吧!

算法总结:

机器码:0375458006 (转十六进制值为:166108D6)
用166108D6与810613F异或运算的结果(1E7169E9),再将它转化为十进制就是你的注册码(510749161)。

比如我机器码:0375458006
真实我注册码:510749161

十、好,找到算法了,那就用我的超省源码再次应用到这个算法注册机来,看:

Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a Xor &H810613F
Text2.Text = b
End Sub

十一、编译方式参考上面文章内容,这里不再重复,免又“胡说八道”了! @_@

十二、不过瘾了?好!再来一个,凌鹏光盘出租与销售系统 2.0算法简析,找到算法,列出算式看看,晕晕的,怎样去写算法注册机了啊?看下面:

机器码转十六进值为A,注册码为Key,那么:
Key=(A+A+87568F+875A6B+4F5DA2)+(A+A+87568F+875A6B+4F5DA2)*4
   (将上面计算结果十六进制值转化为十进制值就是你的注册码)

如我的机器码为:65526转化为十六进制值为:FFF6
Key=(A+A+87568F+875A6B+4F5DA2)+(A+A+87568F+875A6B+4F5DA2)*4
  =6E048A8(转十进值就是:115361960)

比如我机器码:65526
真实我注册码:115361960

十三、知道算法及结果,那怎样去将算式编译成算法注册机,还是我的源码:

Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a + a
c = b + &H15E0E9C
d = c * &H4
e = c + d
Text2.Text = e
End Sub

十四、用这个源码去编译生成算法注册机,呵,算号成功,全对了!上面这段算法列算式时,你看着有点头晕眼花,但到我的源码上,嘿,看的爽心! ^_^

十五、好了,回头作为复习,再来一个简单的加深一下你的学习过程,这个就是前些月的软件---六屏 V1.2,记得DFCG里的兄弟写过这个破文,先将该破文的算法总结借来一用先,看下面:

这软件真的很可爱!!!
将机器码 xor 11677831就是注册码!

VB注册机源码如下(在win98+vb6.0下调试通过)
Private Sub Command1_Click()
strtmp = Text1.Text
nlen = Len(strtmp)
k = 1
For i = 1 To nlen
j = Asc(Mid(strtmp, i, 1))
If j < 47 Or j > 58 Then
k = 2
End If
Next i
If k <> 2 Then
Text2.Text = Val(Text1.Text) Xor &H11677831
Else
e = MsgBox(\"你输入的机器码有误,请重新输入!\", 0, \"Error!!!\")
End If
End Sub

Private Sub Command2_Click()
aa = MsgBox(\"逆风飞扬电脑工作室倾力制作\", 0, \"退出\")
Unload Me
End Sub
如果您要转载本文档,请保持本文档内容完整。谢谢(对不起逆风,我没做到)

十六、上面的注册机源码是正确无误的,不过我就说我的偷懒源码,比较一下两者的重要部份:

这是逆风的源码,不错的,我顶一下先! ^_^
Private Sub Command1_Click()
strtmp = Text1.Text
nlen = Len(strtmp)
k = 1
For i = 1 To nlen
j = Asc(Mid(strtmp, i, 1))
If j < 47 Or j > 58 Then
k = 2
End If
Next i
If k <> 2 Then
Text2.Text = Val(Text1.Text) Xor &H11677831
End If
End Sub

这是我的偷懒精简源码,还行吧!倒~~ 黄婆什么的啊~~~~
Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a Xor &H11677831
Text2.Text = b
End Sub

十七、编译的过程不再重复,大家自己去做一下,这样就可以加深对用VB写算法注册机的理解及认识的。努力啊,兄弟们,没理由你比我还菜的吧! ^_^

十八、此文作为算法注册机编写扫盲第二课,希望能真的能给予你帮助,学海无止境,大家一起共同学习,将来的DFCG都可以得心应手的写出各自的算法注册机时,我就老怀安慰了!别啊~~~别掷砖头啊!我闪不就得了~~~ 嘿嘿!

十九,下一课的主题是注册机的窗口简单设计及编写简单的crackMe,当然,用的还是VB6,想继续看的话,先顶此帖,不顶我不写了! ^_^

二十、本篇原创作者--我要,版权没有,人权我有,所以凡转此帖的友站及各路朋友兄弟们,必注明此文出自DFCG组织及我要原创为先决条件,否则谢绝转帖转载。网路本一家,但总不至于没个出处明示的吧!感谢你的阅读!

asf123456789 发表于 2009-2-18 21:32

大哥 ,你第一课在哪,找不到

jxc123 发表于 2010-1-11 08:41

讲的好,学习。

Rookietp 发表于 2010-2-28 15:19

看得脑袋晕

fywy 发表于 2010-3-21 12:33

第一课在哪???

jack940213 发表于 2011-10-30 12:49

原本的是带有附件的。。。果断求附件

122166966 发表于 2013-11-21 00:41

页: [1]
查看完整版本: 算法注册机编写扫盲---第二课