- UID
- 870
- 帖子
- 50
- 积分
- 35
- 紫菀
- 0 朵
- 花瓣
- 54 片
- 花蕊
- 9 朵
- 野草莓
- 0 个
- 蒲公英
- 0 朵
- 社区等级
- 4 级
- 在线时间
- 12 小时
- 注册时间
- 2006-9-30
- 登录状态
-
当前离线
|
楼主
发表于 2006-11-8 12:29
| 只看该作者
加密脚本 | 自己如何修改
首先,关于小精灵加密我不是很赞同在这里发表哈,,
其次,代码里面请不要出现网址哈
再者,这个加密解密系统每人都有自己的思路,如果你花时间在理解别人的脚本上不如自己写!
我稍微给你解释下,如果你会写脚本就能懂,不太会就别用加密解密系统,我们要对得起注册的用户!--Sz
==============================
解密解密或者说软件注册模块的运行顺序都是一样的!
启动软件后--读取注册信息--发现则正常运行,未发现注册信息则引导注册--读取硬件信息---显示机器码--调用写注册码模块--加密解密运算--匹配注册码--吻合正常运行不吻合者提示出错!--Sz
重点有2处 读取硬件信息和加密运算--Sz
VBS Dim fso,dr,sn,snt,i,regstring,regstring1,file,path,temp,vaid,serialnumber,filename1,filename2,filename3,retv,reg,try
VBS set fso=CreateObject("Scripting.Filesystemobject")
VBS set Obj=createobject("WScript.Shell")
VBS reg=0
VBS try=1
VBS filename1=".\机器码.txt" 这里是读取注册信息,是以读文本方式--Sz
VBS filename2=".\注册信息.txt"
VBS filename3=".\试用次数.txt"
Rem checkreginfo
Gosub checkreg
If vaid=0
VBSCall retv1=Obj.Popup(" 你好,是否试用?",0,"加密!",36)是否对话框,精灵没有的,学习下--Sz
If retv1=7
Goto outdoor
EndIf
Gosub 使用次数限制
EndIf
Rem mainscript
//此处放置需要加密的脚本
//------------------------------------脚本区--------------------------------------
MessageBox 脚本区
//------------------------------------脚本区--------------------------------------
Rem outdoor
If reg=0
VBSCall retv=Obj.Popup(" 你好,是否注册?",0,"加密",36)
If retv=6
Gosub 注册
EndIf
EndIf
//这里是没注册试用后弹出的网页
MessageBox 作者:风之子 主页:....
VBSCall runapp("......")
EndScript
Sub checkreg
If fso.FileExists(filename2)=0
VBS vaid=0
Gosub creatregtxt 这里调用读取硬件信息模块--Sz
VBSCall Call MessageBox("你的机器码为:"&sn&" 请注册,谢谢!")
VBS reg=0
Goto checkover
EndIf
VBS Set file=fso.OpenTextFile(filename2,1,True)
VBS regstring=file.ReadLine
VBS file.Close
VBS i=1
VBS serialnumber=""
While i<=(Len(regstring)-4)/5
VBS serialnumber=serialnumber&Mid(regstring,5*i,1)
VBS i=i+1
EndWhile
VBS Set dr=fso.GetDrive("d:")
VBS sn=Hex(dr.SerialNumber)
VBS sn=int("&H"&sn)
//解密算法,是加密的可逆(更加复杂的就得自己去设计了!)加密解密,,意思是把获取的硬件特征码加密成机器码,注册的时候解密成硬件特征码,再读取硬件特征码,相互吻合就成功注册--Sz
VBS snt=int(serialnumber)/3
If snt=sn
VBS vaid=1
VBS reg=1
Else
VBS vaid=0
VBS reg=0
Gosub creatregtxt
VBSCall Call MessageBox("一机一码哦,你的机器码为:"&sn&" 请注册,谢谢!^-^")
EndIf
Rem checkover
Return checkreg
EndScript
Sub creatregtxt
VBS Set file=fso.CreateTextFile(filename1,2)
VBS Set dr=fso.GetDrive("d:")这句代码是获取D盘序列号,这个其实是不稳定的,当D盘格式化后就改变了,或者当杀软或什么安全软件禁止VBS读取系统信息的时候就返回空值,全部注册模块会形同虚设!--Sz
VBS sn=Hex(dr.SerialNumber)
VBS file.WriteLine(sn)
VBS file.Close
Return creatregtxt
Sub 注册
VBSCall regstring1=inputbox("请输入你的注册码:")
VBS i1=1
VBS sn1=""
While i1<=(Len(regstring1)-4)/5
VBS sn1=sn1&Mid(regstring1,5*i1,1)
VBS i1=i1+1
EndWhile
VBS Set dr=fso.GetDrive("d:")
VBS sn=Hex(dr.SerialNumber)
VBS sn=int("&H"&sn)
//解密算法,是加密的可逆(更加复杂的就得自己去设计了!)
VBS sn1=int(sn1)/3
If sn=sn1
VBS Set file=fso.CreateTextFile(filename2,True)
VBS file.WriteLine(regstring1)
VBS file.Close
MessageBox 注册成功!
Else
MessageBox 注册码错误!
EndIf
Return
Sub 使用次数限制
If fso.FileExists(filename3)=-1
VBS Set file=fso.OpenTextFile(filename3,1)
VBS try=file.readline
VBS file.close
Else
VBS Set file=fso.CreateTextFile(filename3,2)
VBS file.WriteLine(try)
VBS file.close
EndIf
//试用次数
If try<=8
VBSCall call messagebox("你的未注册用户,还能试用"&(8-try)&"次!!请尽快注册!!谢谢!!")
VBS set file=fso.createtextfile(filename3,2)
try=try+1
VBS file.writeline(try)
VBS file.close
Else
VBSCall call messagebox("你的试用次数已到,请注册,谢谢!")
Goto outdoor
EndIf
Return
==============================
相对普通用户来说,硬件特征码+1就可以是机器码,-1就可以是注册码...+1和-1就是加密解密过程,,--Sz |
|