. 夜 半 苏 醒 . 
-=学习资料。=-             

首页 >>

 

算法注册机编写扫盲---第一课 dao 第五课

   程序阶梯2007-1-3 15:45

算法注册机编写扫盲---第一课
原创作者:我要[DFCG]
======================================================================

编者注:
 大家好,看着一些兄弟的算法破文,感觉上该写该找的算法都找到找对了,好事,现在的cracker的水平可以说走上了一个新的台阶,内存注册机的制作对大多数人来说,已经熟门熟路,驾轻就熟的。但你写出算法的破文,想必在破解过程比追明码的要累的多,你成功的找到软件的加密算法,好,你不在是鸟的级别,已经进入中高级的程度。但由于不懂算法注册机的编写,发的算法破文,配的是内存注册机,这总有点美中不足的!怎么办,难不成要专一心重学一门语言?这就是我发此文的目的所在,让大家在轻松的情况下达到写出算法注册机目的。怎么样,想知道应该从哪里起步学习了吧!你不懂编程?没事,就写出算法注册机而言,只应用相对的编程语言的百分之一就够了。
 晕,你懂才这样说的吧,我丁点不懂怎办?我连什么叫VB、VC、TC等,是什么东东都根本没个慨念,学,从何学起?!真有这种想法的朋友,你别在日后继续你逆向学习了,这最为起码的认知都没有,你靠的什么去找注册码和算法?所以嘛,闲话不多说了,进入正题吧!
  本篇原创作者--我要[DFCG],版权没有,人权我有 ^_^ 所以凡转此帖的友站及各路朋友兄弟们,必注明此文出自DFCG组织及我要[DFCG]原创为先决条件,否则谢绝转帖转载。网路本一家,但总不至于没个出处明示的吧!感谢你的阅读!


                                       我要[DFCG] 2003.12.03
======================================================================

一、工具篇
 就写算法注册机而言,本人推荐你使用VB去做,为何?简单易学就是它的好处及我推荐的原因之所在根本,有兄弟说TC不更简单吗?也许吧,世界本无绝对只有相对,或许我这莱鸟只适合这种思维的方式。
 学不学是你的自由,想学的就得需要这个工具--Microsoft Visual Basic 6.0,版本与注册机的编译关系不大,不过VB6都出来这么久了,想想还是用这个版本吧,更因为在网上有它的精简中文版,大小才6M多的,不错,要的就是它,编写注册机之类的小东,这个精简版足矣,到此还真的要感谢开发出这个精简版的朋友。你太好了,因为有你,所以才有我的这篇拙作。 ^_^

二、了解VB6(当然以这个VB6精简版为框),你下载后就是安装,安装后在你的电脑桌面多了一个相应的快捷图标。呵,有点爽了,开始我们的学习吧!

三、看三眼后,搓搓手,来吧,谁怕谁了?!我非得玩转你不可的。启动软件,晕眼了,我以前怎从没见过这种界面的。什么的什么。。@#$ % ^_^

四、再看一次界面,哦,窗口里有一个框,框里看看,默认位置“标准 EXE”已经点蓝,等着你去用它,看到这个框里的“打开”按钮没有?点一下它再看看,呵,出来一个新的窗体,这就是你的模板,但因为你什么都没做,所以是白板一个来的,不信你现在就在工具栏,文件 → 点“生成工程1.exe” → 选到你要保存的目标文件夹里。打开这个文件夹,你就会看到多了一个名为“工程1.exe”的东,双击它看看,这下有点明白了吧。哈,你的处女作原来是个什么都没有的怪物。

五、好了,放飞的心情别过于兴奋,回到学习上来,从复第四项,不过这次你别再去生成个白板怪物了。因为你的第一次只有一次,啊,有点。。。?

六、言归正传,学习编写注册机,你得先学会在VB6上学好编写四则运算及异或计算等的方法,怎样写啊!快说,再不说拉出去斩了这个“我要”得了。

七、嘿,泡MM你们就有耐心,学编译就没个耐心的,再这样我看不起你。来吧,看下面的公式:1 + 2 * 3 / 3 = 3,这应该谁都能随口算出结果。不过在VB里变成一个程式,让它给我们算出结果才是我写此文的目的。明眼的朋友已经看出门道了,能做到这点,呵,算法注册机不就。。。。 ^_^

八、回看上面的算式,因为它由算式与结果的表现为根本,那么你就应该用2个文本框来实现它,文本框?什么东,在说什么了?别急嘛!在你的白板模板窗口看看,左边竖立的一串按钮,这里有你想要的一切,没有的在以后你需要时可以添加进去,此为后话。

九、嗯,你现在点一下里面的“ab”按钮,然后将光标回到你的白板模板上,拉出一个框来,里面有“Text1”的提示,从复这步,再拉出一个框,这次来的就是“Text2”,好了,现在填算式及出结果的框有了,但“=”的键还没有,这个就等同于算法注册机里的算号键,因为是初学,这个键你就一定非添加不可,以后你上手了,用其它方式同样可以表示算式的结果,网上有些注册机这边输入注册码,另一边就出来结果(注册码),这不是初学者的范围,打住先。

十、有了上面的2个框,现在来建一个“=”的功能键,点一下刚才的“ab”按钮正对下面的那个按钮,因为没注明功能在上面,我只能这样说了,点一下后,将光标回到你的白板模板上,拉出一个框来,这次出来的你一看就知道它是一个按钮功能键,里面有“Command1”的提示。好了,你的白板现在已经不再是白板了,你大可以回复到第四步,生成一个工程文件来看看。

十一、不过,虽然现在的不是白板,但它还是不能计算的,因为你还没有将相应的源码填进去啊,源码?哦,有点明白了! ^_^

十二、以上面的算式为例,开始编写你的处女注册机,看下面:

 1 + 2 * 3 / 3 = 3 ← 这就是算式

十三、因为本文以教学算法注册机为主,所以,上面算式结合算法来演示它一下,将上面的1假设为机器码,我找到它的算法就是(机器码 + 2 * 3 / 3 = 3 ← 注册码),好,现在再进一步设机器为“a”,注册码为“b”,有了这些的成立,源码就可以编写出来,看下面:

Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a + 2 * 3 / 3
Text2.Text = b
End Sub

十四、特别说明的题外话,我的VB源码,常有朋友说我偷懒,都简到不能再简的地步了,这对编程可不是一个好习惯。嘿嘿,不过作为写算法注册机,我以为这可是最好最省力的。高手老大们别笑啊,我菜嘛! ^_^

十五、将上面的源码帖进VB里去,在你的模板上右键打开下拉菜单,点“查看代码”,出来一个写入窗口,将源码粘贴进去。哈哈,你的算法注册机成功了,晕,我几时成功了?哦,你还得往上看工具栏,找到黑色的小三角按钮,点一下,呵,出来了吧,你现大可以在它的Text1框里填入机器码1,记住先了Text1那几个字了啊,当然以后真做注册机时,这里是一定没有这个Text1提示的,因为在编写的时候已经干掉它了。此为后话或下一课我再说。大家先消化一下,此文作为第一课就到此够用的。

十六、上面填入机器码后,点一下“Command1”按钮,嘿嘿,看到了吧,在Text2框里的是什么,是结果3,呵,成功了,真的成功了,再去工具栏,文件 → 点“生成工程1.exe” → 选到你要保存的目标文件夹里。打开这个文件夹,你就会看到多了一个名为“工程1.exe”的东。好了,现在退出VB6,直接去应用一下你的杰作注册机,有点成就感没有?你的处女注册机就这样生成了! ^_^

十七、本文作为“算法注册机编写扫盲”的第一课,过几天有空我将继续写这个题目的第二课,大家以为有用我才有继写下一课的动力与必要的吧!

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


                                   我要[DFCG]编写于2003.12.03

注:接第一课,我又来了,这次不敢再“胡说八道”题外话多多的了!下面就以实例来说明一下用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],版权没有,人权我有,所以凡转此帖的友站及各路朋友兄弟们,必注明此文出自DFCG组织及我要[DFCG]原创为先决条件,否则谢绝转帖转载。网路本一家,但总不至于没个出处明示的吧!感谢你的阅读!


                                     我要[DFCG] 2003.12.06

算法注册机编写扫盲---第三课
原创作者:我要[DFCG]
======================================================================

注:接第二课,我又来了,这次又得“胡说八道”题内话多多的了!为何?这样才可以更详细的说出个其所以然,还得保证你的心情轻松啊!好,来了,下面就以实例接着来吧。 ^_^

一、看过前2课的朋友,现在你已经完全可以自己编译出难度为中的算法注册机,再难点的,比如,大数的,移位的,带小数点多位注册机,你还是不行,因为要应用相应的函数和控件什么的,这是后话,已经不是本篇的扫盲范围了,在以后的日子,你有需要时,可以找书本翻翻,找懂的朋友问一下,只要你虚心,应该是完全可以再进一步的。

二、写到这里,有点晕头,用文字去表达这一课的内容可真有点范难的,真想随便做个动画就带过此课,哎,不过已经是开始了2课,没理由就这样不负责任的作出放弃的啊!嗯,好吧,我尽量写得哆嗦一点,详尽一点,希望大家真的能消化并看得明了就是!更因为我也菜的不行啊! ^_^

三、先以编写最简单的算法注册机开始,说一下窗体的构建及应用吧!看这个之前,最好请先回看上2课的内容,作为加深一下认识,要不下面的你可能就不知我在说的是什么了。

四、现在启动VB6,打开你的白板模板(此后就用模板表示,注意),上2课说过VB6左侧的功能应用,到这里该说说右面的功能应用,要不你是写不出个有个性的工程文件的。这就是要哆嗦的地方,我的用词已经尽量地不用专有名词,用最好理解的方式去表达了。嘿嘿~~ 是我要[DFCG]你自己不懂吧!哦,也许! ^_^

五、好,看到没有,VB6的界面靠右侧,有一功能框,里面想要的都有,怎么用它啊?一般写注册机之类的小东东,你不需要全知道它的每一个选单的作用,这在你以后应用中一定会明了的,只不过是没个开始或没人引路而已。

六、第一个框是工程框,你要构建你的个性化窗体,这里的你一定要认识它。因为以后你要添加个性化的说明或其它功能添加时,你就得用它去添加窗体等。好,你已经启动了你的模板,那这个框里就可见有“Form1 (Form1)”,用右键点出下拉菜单看看,里面有好多的选项,但其它的先别去看或暂时并不需要它。你看到里面有一个选项“添加”,光标放到这个行上,会出来选单的,看看:

添加窗体
添加MDI窗体
添加模块
添加类模块
添加用户控件
添加属性页
添加用户文档
添加文件

七、看好了,上面的几个选项,从扫盲角度来说,只要知道第一个就够了,“添加窗体”的功能,这个能让你在以后的注册机上另添加上只属于你的说明文件或相片之类的。

八、第二个框(属性框)看看,里面一大串由E文注明的应用选项,晕啊,我不懂E文怎办了啊?没事,只要记好常用的就行。看看:

Alignment ← 所选项目的位置,有:左对齐,右对齐,居中
Appearance
AutoRedraw
BackColor ← 改变特定文本框或窗体的颜色
BorderStyle ← 改变标题栏的功能项,如“最小化”、“最大化”的开启关闭
Caption ← 改变标题栏名称的地方,如写入“XXX注册机”
ClipControls
ControlBox
DrawMode
DrawStyle
DrawWidth
Enabled
FillColor
FillStyle
Font ← 改变写入字体的大小等设定
FontTransparen
ForeColor ← 改变写入字体的颜色
HasDC
Height
HelpContexID
Icon ← 添加你的个性化图标,也就是注册机的图标了
KeyPreview
Left
LinkMode
LinkTopic
MaxButton
MDIChild
MinButton
MouseIcon
MousePointer
Moveable
NegotiateMenus
OLEDropMode
Palette
PeletteMode
Picture ← 添加个性化图片,就是注册机窗体里的图版,需要配合左侧工具应用
RightToLeft
ScaleHeight
ScaleLeft
ScaleMode
ScaleTop
ScaleWidth
ShowInTaskbar
StartUpPositio ← 设定你的注册机弹出时所处窗口的位置
Tag
Top
Visible
WhatsThisButto
WhatsThisHelp
Width
windowSTate

九、初学的只要知道这些足够,还有我没注明的,以后再说或你查一下书本就会知道的。好了,现在开始我们的工作吧!我用甲、乙的方式表达,看下面:

甲:我已经打开模板了,下一步怎样做?
乙:好,将光标放右下角点上,然后向内线拖进去看看。
甲:哦,这个作法就是改变整个窗体的外观大小的,明白了
乙:再来,将光标放右边线上,横着向两边拉一下看看又有什么变化
甲:明白,这一步是改变窗体的宽度
乙:嗯,再将光标放底线,上下方向的拉一下看看
甲:清楚了,这一步是改变窗体的高度
乙:要使窗体个性化,你还要添加你的个性化图版的
甲:怎样去做?
乙:好,回看左侧,“ab”上面有个图形的图标,点一下,回到模板拉出一个框
甲:做好了,我还要做什么才能将我的图片添加进去呢?
乙:现在你得回到右侧的属性选项,找到“Picture”,点一下里面的“...”
甲:呵,这里需要我指定图片的路径,明白了,我自己来做这一步吧
乙:哈,这就以为成功了?这样添加图片以后,你会平添出一个多余的外框的啊
甲:对哦,怎办?
乙:找到属性“BorderStyle”点一下,里面有2个选项,你就选“None”吧
甲:嗯,对的,现在的图片框好看多了
乙:还有一个没说,就是你的文本框还没有指引名称,如“机器码”这些字眼
甲:就是,只有2个框,旁边没文字,人家的有“注册码”、“机器码”什么的
乙:现在就教你,左侧“ab”旁边的大写字母“A”,你看到没有?
甲:找到了
乙:点一下它,回到模板上,在你想加入文字信息的地方拉出一个框来看看
甲:出来一个名叫“Label1”的框框,这就是了吗?
乙:是的,现在你到属性窗,找到“Caption”,它的右边是什么提示
甲:哦,就是“Label1”,是将这个“Label1”修改到我想要的文字信息吗?
乙:是的,将它改写为“机器码”,你看看窗口这个的变化先
甲:哈,我的文本框的靠左位置,现在有了“机器码”这几个字了!有点爽
乙:嗯,在你的文本框2相同操作,写入“注册码”,你的注册机有血有肉了
甲:懂了,其它的功能键要改用自己的文字信息时,与这操作一样。
乙:还需要加上你的特别说明或叫关于什么的新窗体才算完美的。
甲:啊?怎个加法?
乙:回头看第六步,右键打开“添加窗体”,弹出的窗口点“打开”
甲:出来一个新的窗体,右边工程多了一个“Form2 (Form2)”
乙:左侧“ab”旁边的大写字母“A”,点一下后,先在新窗体拉出一个框
甲:好了
乙:那就可以在里面写入你想写的相关文字内容,如“关于”什么之类的
甲:好,模板已经成功写好了,再点“ab”下面的按钮,建一个“退出”功能键
乙:现在你去生成一个工程文件看看,是不是有点酷酷的感觉。 ^_^
甲:哈,有点成功感,因为是亲手做的,但是只能看不能用啊?
乙:嗯,现在你要有源码,除非你懂编程,否则还是用“我要”VB源码吧
甲:好啊,在哪?
乙:到此已差不多了,结束对话,看下一步吧! ^_^

十、现在引用上一课我给出的VB算法注册机源码来继续课程,看下面:

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
Private Sub Command2_Click()
     Form2.Show
End Sub
Private Sub Command3_Click()
Unload Me
End Sub

十一、仔细看看,这段源码里多了几句在里面,解析如下:

Command1 ← 第一个拉出来的功能按钮(你可以定名为“算号”)
Command2 ← 第二个拉出来的功能按钮(你可以定名为“关于”)
Command3 ← 第三个拉出来的功能按钮(你可以定名为“退出”)

Private Sub Command2_Click()
     Form2.Show
End Sub
这一段就是调用第二个窗体的语句,就是点“关于”时,弹出另一个属于你的说明窗体。

Private Sub Command3_Click()
Unload Me
End Sub
这一段就是调用关闭窗体的语句,就是点“退出”时,工程也同时退出

十二、看明白就试一下去,别老看不动手的,这样你是永远写不出你的注册机,窗体的构建都说过了,源码也放上来了,怎么去做?回看上一课,应该怎样添加这段源码进VB里,不用再说明了吧!因为你一定比我聪明啊!

十三、我做几个附件随课文一起发,你可以应用一下我的注册机模板,对比一下你做出来的,在功能和使用上是否一致,是的话,恭喜你,你成功了!

十四、我说老大,你的注册机模板好看啊,我为何出来的不是这个样子的啊?哈,先学走路再学跳高跳远才是你的根本。以后的课,我也许会继续教你用手或利用控件去生成更好看的窗体的模板,但这因个人喜好而有所不同,所以这已经超出本扫盲课程的范围了! ^_^

十五、好了!大家还记得我写过一个crackMe给初学的朋友练手的吗?这个东东是明码还是唯一的,本来就没写注册机的必要,但当时有朋友觉得需要,所以我就写了一个。现在回过去,要写这种注册机可以分2个方式,都能达到显示出注册码的效果。

十六、尊重原crackMe的算法的话(这个你得一定有这个良好习惯了),你可以这样写,看下面是由这个crackMe的算法所写的VB源码:

Private Sub Command1_Click()
strtmp = Text1.Text
a = 22222
b = a + 33333
c = b * 12345
d = c - 617271605
Text1.Text = d
End Sub

十七、这段源码生成的注册机,你点一下算号键,在注册码框就出来真注册码。窗体的外观之类的,这里不再重复,回看上面课文吧!你的一定别与我相同。哈,免得有人骂你盗版了啊! ^_^

十八、回头再说,这个crackMe是明码和唯一的,有朋友说,没必要与算法结合写注册机,只要达到显出注册码就行。好,这下就应该教你学会应用VB6的退出时弹出窗口功能了。看下面源码:

Private Sub Command1_Click()
MsgBox "68554870" & Chr(10), vbOKOnly + vbInformation, "注册码"
End
End Sub

十九、现在将你的Command1功能按钮改名为“算号”,启动这个注册机看看,你就点一下“算号”键,哈,弹出一个名为“注册码”的窗口,里面你看到的是什么东东,呵,就是一串数字,这就是注册码了!是哦,这样够直接简单的!

二十、好!应该打住了,第三课所提到的我做了样板,大家需要的就一起下载回去研究。也得让你去消化一下的吧!下一课我继续讲怎样去写简单的crackMe,或许再教你写出你的个性化名片之类的小东东。至于在注册机添加音乐和特殊的外观窗体,这不在扫盲范围,你们去找高手老大们好了,我菜的实在不行了! ^_^

二十一、还要不要下一课,要的跟帖顶帖,看帖不回我看不起你,因为你不尊重我的劳动啊!我也是人,我也会累的吧!晕,谁的鞋子啊,别啊,我闪~~~

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

算法注册机编写扫盲---第四课
原创作者:我要[DFCG]
=====================================================================

注:接第三课,我又来了,这次没有多余的话。来!就以实例接着来吧。 ^_^

某crackme算法分析

嘿嘿!去年年初的时候,我发过这个东,并做了动画教学破解并介绍了内存注册机的作法。这次还是用它,不过是算法注册机及算法的内容。对我本人来说,还是有点意义的。N久没看过自己的破文了,为了这第4课,又翻出来,哈,我啊,果然是菜的不行的那种!就找软柿子下手。 ^_^
======================================================================

一、首先运行TRW2000指向step1.exe,然后隐藏。
二、启动step1.exe
三、输入注册名:woyao,注册码:7979,先要点注册键。
三、按Ctrl+N激活TRW2000

  下断点命令: bpx hmemcpy → 设置万能断点

四、按F5返回,点击注册按钮,程序被拦截,下命令:

     bc* → 清除断点
     pmodule → 直接进入程序领空

五、现在再按F10键N下(找到金矿),到如下代码:

:004011B7 E8A4120000 call 00402460 ← 这里开始取注册名
:004011BC 59 pop ecx
:004011BD 8BC8 mov ecx, eax ← 注册名位数入ecx
:004011BF 83F904 cmp ecx, 00000004 ← 一定大于或等于4
:004011C2 7D14 jge 004011D8 ← 正确就跳到004011D8
:004011C4 6A10 push 00000010

* Possible StringData Ref from Data Obj ->\"ERROR\"
                                |
:004011C6 687CB14000 push 0040B17C

* Possible StringData Ref from Data Obj ->\"Your name must contain at least \"
                                         ->\"4 characters! ← ?@_@?
\
:004011CB 684CB14000 push 0040B14C
:004011D0 56 push esi

* Reference To: USER32.MessageBoxA, Ord:0000h
                                |
:004011D1 E828900000 Call 0040A1FE
:004011D6 EB67 jmp 0040123F

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004011C2(C)
|
:004011D8 33D2 xor edx, edx ← edx清零
:004011DA 33C0 xor eax, eax ← eax清零
:004011DC 3BC8 cmp ecx, eax ← 比较eax,ecx
:004011DE 7E0D jle 004011ED ← 大于跳004011ED,结束运算
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004011EB(C)
:004011E0 33DB xor ebx, ebx ← ebx清零,下面的注意看了
:004011E2 8A5C05E4 mov bl, byte ptr [ebp+eax-1C] ← 注册名ASCII的16进制值移入ebx低位
:004011E6 03D3 add edx, ebx
:004011E8 40 inc eax ← 累加计数器
:004011E9 3BC8 cmp ecx, eax ← 比较eax和ecx是否加完?
:004011EB 7FF3 jg 004011E0 ← 小于跳到004011E0继续加

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004011DE(C)
|
:004011ED 52 push edx

* Possible StringData Ref from Data Obj ->\"%d\"
                                |
:004011EE 6882B14000 push 0040B182
:004011F3 8D45AC lea eax, dword ptr [ebp-54]
:004011F6 50 push eax
:004011F7 E8C0280000 call 00403ABC
:004011FC 83C40C add esp, 0000000C
:004011FF 8D55AC lea edx, dword ptr [ebp-54]
:00401202 52 push edx
:00401203 8D4DC8 lea ecx, dword ptr [ebp-38]
:00401206 51 push ecx
:00401207 E808120000 call 00402414 ← 关键call,注册码比较处
:0040120C 83C408 add esp, 00000008
:0040120F 85C0 test eax, eax
:00401211 7517 jne 0040122A ← 不等就完蛋了! ? @_@ ?
:00401213 6830000400 push 00040030

* Possible StringData Ref from Data Obj ->\"You Did It!\"// ^_^
                                |
:00401218 68CEB14000 push 0040B1CE

算法总结:
    crackme算法超简单,注册码等于注册名ASCII的16进制值相加后的10进制值
算法举例:
    注册名:woyao
    注册码:119 + 111 + 121 + 97 + 111 = 559(十进制值)

VB注册机源码:

Private Sub Command1_Click()
a = Text1.Text
For i = 1 To Len(a)
b = b + Asc(Mid$ (a, i))
Next i
Text2.Text = b
End Sub

六、再来一个不久前的软件,算法分析已经有朋友写过了,这里不再从复,因为教程的目的是算法注册机的编写啊,来,看下面:

全国电话通 Ver1.09.01注册算法

算法总结如下:
   注册码=((机器码(转为十六进制)-3F9)/2D3+3F9)*2D3
   用户名可任意填写,因为它并不参与注册码的校验

输入的机器码设为a,列出算式:

 ( (a - 3F9) / 2D3 + 3F9) * 2D3

我的机器码:118866
我的注册码:853140

VB注册机源码见下面:

Private Sub Command1_Click()
strtmp = Text1.Text
a = Val(Text1.Text)
b = a - &H3F9
c = b / &H2D3 + &H3F9
d = c * &H2D3
Text2.Text = d
End Sub

七、为何源码要分几段来算的?回看算法总结,列出算式看看先,哦,原来与括号有所关连的。明白了!我要[DFCG]偷懒源码的“精华”在此。 !@#&%$ ^_^

八、因为我菜,所以学无精点,老想偷懒易用,哈,总算摸出一个规律与方法,这下不就全送上来了,大家有用就学,没用就在你以后上手时,把我要[DFCG]的偷懒“精华”送回老家好了! ^_^

九、看得我头晕的,你家伙就没说正题,不是说过要教写简单crackMe的吗?看你急的,我在论坛上积分“负”的流油都不急,你急什么啊!?想起致“负”原因,哈,这里应该上你老学童一笔,你欠我的分数,赔我,要不就。。。

十、砖头、臭鸡蛋又来了?晕,不说就不说,打住。看下面源码:

CrackMe_DFCG源码

Private Sub Command1_Click()
Dim a, b, c, d, X As Integer
a = 22222
b = a + 33333
c = b * 1234
d = Val(Text1.Text)
If c = d Then
MsgBox "高手!我服你 @_@"
Else
MsgBox "哈!你比我 ^_^"
End If
End Sub

Private Sub Command2_Click()
     关于DFCG.Show
End Sub
===========================================

CrackMe_DFCG注册机源码

Private Sub Command1_Click()
strtmp = Text1.Text
a = 22222
b = a + 33333
c = b * 1234
Text1.Text = c
End Sub

十一、上面这个是莱鸟级的CrackMe,简单之极的。没什么好说了,下面再来进一步的CrackMe,这个东在你输入正确注册码后就会弹出新的工程窗口,呵呵,软件注册码输入正确是什么境况的! ^_^ 看下面:

pass_CrackMe窗口1源码:(Form1)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
End
End Sub

pass_CrackMe窗口2源码:(Form2)
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If Text1.Text = "woyao[DFCG]" Then
Form1.Show
Unload Form2
Else
Text1.Text = ""
Print MsgBox("“对不起!密码错误!”" + Chr(10) + Chr(10) + Chr(13) + "请您重新输入正确的密码!", 48, "哈!失败了 ^_^")
End If
End I
f
End Sub

十二、这次不给注册机源码,你自己来吧!反正与上面的差不多,只是过程我做了一点小改动而已,多试有益了。来吧,动手吧!

十三、随本课将提到的所有东作为附件一起上来,要的就下载回去研究。后面的这个pass_CrackMe,我将完整的源码也打包一起在内,改一下它你就得到另一个功能的CrackMe,比方说,输入密码正确时,弹出一幅PLMM的图片之类的。

十四、到这里为止,本扫盲内容已讲的差不多了,下一课就作为总结再重复一下前几课的内容,并教大家做出你的个性化名片,好坏只在个人喜好,不过知道它的编写过程,如下的美工类工作就看你本人的所喜所好了! ^_^

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


                                     我要[DFCG] 2003.12.12

算法注册机编写扫盲---第五课
原创作者:我要[DFCG]
=================================================================================

注:接第四课,我又来了,这次想多余话都没有了。来!接着来吧。 ^_^

   这个课程一共写了五课,总算可以做一个总结或叫完结了!怎么,意尤未尽?没法,我要[DFCG]菜的不行的,只是将一些个人的所谓经验或心得拿来献丑而已,装酷了啊!砖头,烂柿子,臭鸡蛋一起掷过来了吧!先别啊,我还得说完再走的,你别赶我行不行了,我晕~~~~~~~~~
=================================================================================

一、到这里,应该说些什么内容呢?真的有点晕,以中级的来看,该说的都好象说了吧!还有什么好说的,想想~~~

二、给些学习的方法吧!多试多练就是了?还有说头的吗?有,还是坐下来看完这第五课吧!

三、学着自已编写一个属于你的程式,看下面源码:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = &HFF0000
Label1.FontSize = 9
Label2.ForeColor = &HFF0000
Label2.FontSize = 9
End Sub

Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.FontSize = 10
Label1.ForeColor = &HC0&
End Sub

Private Sub label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label2.FontSize = 10
Label2.ForeColor = &HC0&
End Sub

Private Sub label1_Click()
ShellExecute 0, "open", "http://218.63.244.68:1010/ckkd/index.php", vbNullString, vbNullString, 0
End Sub

Private Sub label2_Click()
     ShellExecute 0, "open", "http://dfcg.con.cn/", vbNullString, vbNullString, 0
End Sub

四、上面的词句,如果你对网页制作有那丁点认识也会看得明白的,看不懂?没事,复制到粘帖你总不至于也不会吧!好,因为网上有不小好的源码,所以这次我先上源码再接着说整个的框架。在源码里看,晕晕的不知所其言,关键你要看着源码要写出一个可执行的程式来,我作几个引点解释:

Private Sub label1_Click() ← 这label1是?知道它就可应用源码自如了
ShellExecute 0, "open", "http://218.63.244.68:1010/ckkd/index.php", vbNullString, vbNullString, 0
End Sub

Private Sub label2_Click() ← 工具箱(左边竖框)有个大写字母A,就是它
     ShellExecute 0, "open", "http://dfcg.con.cn/", vbNullString, vbNullString, 0
End Sub

五、现在你打开VB6,新建一个执行文件模板,好,光标点一下上面说的大写A字母,然后回到模板上拉出一个框条来,呵,里面你看到的是什么,“label1”要的就是它,因为源码是这样写的啊! ^_^

六、重复第五步,你又拉出了一个“label2”来,够了,源码就这2个,以后你可以用这个源码去制作更多的链接。这例用2个就行多了就等于是违反源码原意,哈,你一定没好果子吃了。

七、现在到属性窗口,就是右边的中间框。滚动下拉找到“Caption”,往右看看,label1放在那里了,知道怎样去做了吧!对,改写它,让它显示你所要的信息,以这个源码为例,这里改写为“DFCG官方论坛”,回模板看看,已经改写好了,光标放label2,同样的操作,改写为“DFCG短域名”。嗯,差不多要成功了,你现在用你的审美眼光,去布置好你的模板,加图片啊,改模板外观啊什么的,别急,慢着来,你一定会设计出一个好看的外观来的。

八、最后用上面方法,再多拉出一个label3来,有用吗?有,这个你可以写上你想写的东西上去,比如,“我爱你,DFCG!” ^_^

九、好,现在你就要将源码用复制粘贴的方法,将原码导入模板,不会做这步?哦,读书不用功,回头由第一课开始再看吧!

十、嗯!都做好了,坐下来,抽杆烟。对,我每一步都做对的,那等什么,来啊,点工具栏,文件 → 下拉菜单点“生成工程1.exe”。当,出来了一个叫工程1的可执行文件,双击运行它看看,哈,你的设计完美吧?不管了,点一下上面的“DFCG官方论坛”,哦,打开的网页就是DFCG官方论坛,再点“DFCG短域名”,打开的也是DFCG官方论坛。成功了,这就是成功了啊,以后你只要将链接的地址改成你想去的就行。 &_^

十一、我说老大,我一个是网址一个是邮箱你这个就不行了吧?对哦,怎么改写源码达到目的呢?嘿嘿,我先喝杯茶。来了,看下面:

Private Sub label1_Click()
ShellExecute 0, "open", "http://218.63.244.68:1010/ckkd/index.php", vbNullString, vbNullString, 0
End Sub

Private Sub label2_Click()
ShellExecute 0, "open", "mailto:bobyhua@163.com", vbNullString, vbNullString, 0
End Sub

十二、哦,明白了,改的也不多嘛,卖什么关子啊,砖头,烂柿子,臭鸡蛋~~~~~~

十三、你确认成功地生成你想要的可执行文件了吧!接着来,再来好玩的东。不行,我还没做出来啊,晕,回头重做,反正我是成功了,不信?我传2个上来你玩玩。 ^_^

十四、继续,还是用反式方法来教,因为你已经是中级的了,看下面源码:

Dim a As String
Dim t As String
     Dim b As Integer
     Dim I As Integer
Private Sub Command1_Click()
CheckAgain
End Sub
Private Sub Form_Load()
CheckAgain
End Sub
Private Sub Timer1_Timer()
t = Left(a, b)
Form1.Caption = t
b = b + 1
If b > I Then b = 0
End Sub
Sub CheckAgain()
a = Text1.Text
I = Len(a)
     b = 0
End Sub


十五、左看看右看看,明白了,这个东只需要用一个按钮Command1,一个控件Timer1,再就是一个文本框Text1,看不出来?回去看我前面的课程去。下面就动手去应用一下这个源码吧

十六、现在你打开VB6,新建一个执行文件模板,好,光标点一下“TextBox”,然后回到模板上拉出一个文本框Text1,再次到工具箱,点一下“CommandButton”,并回到模板上拉出一个按钮Command1,还是同样的方式,放入控件Timer1。好,现在这个框架就行了,你就得又用上你的审美眼光,设计一个你高兴我满意的外见来吧!(按钮Command1可改名为“重新扫描”)

十七、现在到属性窗口,就是右边的中间框。滚动下拉找到“Text”,嗯,“我要”说过的,这里可以改成想要的信息,好,我就写上“我爱DFCG,DFCG是我家!”。有点肉麻~~~ 别啊,谁的鞋子飞过来了~~~~

十八、现在你就要将源码用复制粘贴的方法,将原码导入模板,还是不会做这步?哦,学生不用功,老师之罪过了!不过你好象应该从头开始学啊?!想想还是你的错,嘿嘿! @_@

十九、来啊,点工具栏,文件 → 下拉菜单点“生成工程1.exe”。得,出来一个工程1的可执行文件,双击运行它看看,执行文件的标题栏里的文字是流动的,爽~~~~,看到“我爱DFCG,DFCG是我家!”的字眼,有点亲切感了~~~~~

二十、我踢,我不要看这个,我想看的就要“踢一下我要爽 ^_^”这个信息,不是吧,这都行啊,没法,教到这步了,我不说你也会了吧,文本框写上“踢一下我要爽 ^_^”,点一下按钮,这下你成了,不过我在哭你知道吗?因为你在踢老师啊! &_&

二十一、还要不要,我的网名叫“我要”,那好,再来一个源码,不过只是源码,你自己去做出一个可执行文件看看就知道是什么东来的了。权当复习吧!看下面:

Private Sub Command1_Click()
GotoVal = Me.Height / 2
For Gointo = 1 To GotoVal
     DoEvents
         Me.Height = Me.Height - 10
         If Me.Height <= 11 Then GoTo horiz
     Next Gointo
horiz:
     Me.Height = 30
     GotoVal = Me.Width / 2
     For Gointo = 1 To GotoVal
DoEvents
         Me.Width = Me.Width - 10
         If Me.Width <= 11 Then End
     Next Gointo
End
End Sub

二十二、好了,总算写完五课了!前段时间是由于内部问题及年关私事加一起,忙个不可开交,现在论坛重架成功,春节也过去。时间有点松动就赶紧写完这第五课,累啊,兄弟们,此文结束时,我要[DFCG]在此请大家以后多多支持DFCG,在网路上宣传一下DFCG,就是对我等老的最好回报了! ^_^

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


标签集:TAGS:
回复Comments()点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}

                                 




 










 




访


 

Design by hecture  Powered by 5dblog