VB的好处我就不多说了。VB初学者模仿能力很强,总希望自己的程序看起来专业一点,如用密码登录、制作限次版、限时版、强行启动等等,其实这些东西并不神秘,在VB里只要用少量代码就可实现。
1.最简单的可执行文件密码登录:
在程序启动时加入以下代码:
Private Sub Form_Load()
Dim a as Variant
a=InputBox("请输入密码!")
If a<>"****" Then MsgBox "密码错误,您不能使用本软件!": End 注释:****为预先设定的字符
End Sub
怎么样,能唬人吧。什么?太烂!
2.在硬盘上建立一个文件用于存放密码,这样就可以读写修改了
On Error GoTo sss
注释:若文件不存在,则捕获该错误,建立密码
Open ("c:\abc.abc") For Input As #1
注释:文件存在,则打开文件
Input #1,b 注释:将密码读入变量b
Close #1
a=InputBox("请输入密码!")
If a<>b Then MsgBox "密码错误,您不能使用本软件!":End
Exit Sub
sss:
a=InputBox("请建立密码!")
Open("c:\abc.abc") For Output As #2 注释:在硬盘上建立存放密码的文件
Print #2,a
Close #2
MsgBox "建立密码成功!"
使用InputBox输入密码的缺点是密码被显示出来,大家可以另建一个窗体代替输入对话框,加入一TextBox并将其PasswordChar属性设为*就行了。文件abc.abc可用任何文本文件打开编辑,因此在你未学会加密算法之前可将文件命名为*.sys或*.dll,并放在windows或system目录下,甚至将其属性设为隐藏,哈哈,系统文件谁敢乱改!不过要小心不要覆盖真正的系统文件。
用启动登录的方法加密会令用户反感,最好只用在软件中较重要的修改数据部分或用于多用户登录。如果你想制作共享软件,那就先试试限次版吧。
3.软件限定使用次数说白了也是在硬盘中的某个地方作个标记,每启动一次就记数一次,当次数加到一定值时就不允许使用软件。以上代码稍加改动也能实现 :
Private Sub Form_Load()
On Error GoTo sss
注释:若文件不存在,则建立文件
Open("c:\abc.abc") For Input As #1
注释:文件存在,则打开文件
Input #1,b 注释:将数值读入变量b
Close #1
If b>100 Then MsgBox "对不起,您只能使用本软件100次!":End
注释:提示用户使用次数并退出程序
c=b+1 注释:计数器加1
Open("c:\abc.abc") For Output As #3
Print #3,c 注释:将加1后的数值写入文件
Close #3
Exit Sub
sss:
Open("c:\abc.abc") For Output As #2
Print #2,1 注释:建立文件,并写入数值1
Close #2
End Sub
4.大家一定对win.ini和system.ini文件很熟悉吧,它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件,Windows软件的初始化参数的获取与保存是通过读取扩展名为.ini的文本文件来实现的。目前很多软件干脆就把软件密码保存在自己的ini文件中。VB只要利用API的GetPrivateProfileString和WritePrivateProfileString两个函数就可以很方便地读写ini文件,从而可以保存、读出和验证密码。首先认识一下ini文件。
ini文件的形式为:
[section1]
keyword1=value1
keyword2=value2
……
[section2]
keyword1=value1
keyword2=value2
……
section是段名,keyword是关键字名,value为关键字对应的设定值
首先用WritePrivateProfileSection创建新的段名和关键字名:
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String,ByVal lpString As String, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String,ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
A=WritePrivateProfileSection ("user","password","c:\windows\user.ini")
在windows目录下的user.ini文件中创建新段名user及该段名下的关键字password,如果目录下没有user.ini文件,则创建该文件
B=WritePrivateProfileString ("user","password","1234","c:\windows\user.ini"),设定关键字user的值为1234。这样在你的user.ini文件就会多出一段:
[user]
password=1234
利用GetPrivateProfileString函数可以读出password的值:
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String,ByVal lpKeyName As Any,ByVal lpDefault As String,ByVal lpReturnedString As String,ByVal nSize As Long,ByVal lpFileName As String) As Long
Dim key as String*255
c=GetPrivateProfileString("user","password","false",key,255,"c:\windows\user.ini")
If key="false" then
MsgBox"文件不存在或没有该字段"
Else: Form1.Print"The password is ";key
该函数将文件user.ini中password的值(即你设定的密码)赋予key,若发生错误(文件不存在或没有该段名)则key的值为“false”,注意一定要声明变量key的长度并与函数中的值一致。这样你就可以将key与登录密码进行对照或直接处理key的值来决定是否继续运行程序。
使用ini文件存储密码还有一个好处,就是设计者可以建立几个段名来存储不同的密码,从而可实现多用户登录。
5.在注册表中标记密码可能是保护你的劳动成果的最高境界了。主要方法是在注册表中创建一个键名,在键值里存放你的密码,以后运行时则取出该数据进行验证或处理,当满足条件时终止程序。可以认为注册表是"以乱取胜",只要你选择到一个隐蔽的位置做标记或存放数据,不用做任何加密算法的处理都应该是比较安全的。令人惊喜的是VB很容易利用API操作注册表。这里只简单介绍几个API函数,大家只要参照函数说明,正确引用变量传递数据,不需要任何技巧就可操作注册表。
RegCreateKeyEx:创建关键字,如果关键字已存在,则将只简单地将它打开
RegOpenKey:用于打开某键
RegSetValueEx:打开某键后,用于设置其键值
RegQueryValueEx:查询一个存在的值,如果此函数调用成功,会返回ERROR_SUCCESS标志
制作限时版只要会用几个函数如day、month、year、date就行了。例如到了2001年就不能执行程序:
a=Year(Date)
if a>=2001 then MsgBox"对不起,该软件已过期":End
你还可以用前面的方法使条件满足时在硬盘上作个标记,而用户通过修改系统时间、重新安装也不能再使用软件。
怎么样?学会了对硬盘的简单读写操作,这些东东一点也不神秘了吧!虽然不是很高明,但很多软件都确实使用这种方法进行简单加密;随着解密手段越来越高明,单一加密方法已成为过去,一些软件同时在ini文件和注册表等地方做标记,当然不是简单的把你输入的保存起来,win9x拨号上网时如果选择保存密码也会在硬盘上生成user.pwl文件,不过该文件加了密,强行用文本编辑器打开时只会看到些乱码。哈哈,又心痒痒想学其他招数了吧!
VB的程序加密方法
时间: 2025-01-07 21:43:09
VB的程序加密方法的相关文章
给php源码程序加密方法
实例1 代码如下 复制代码 <?php function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1)); if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 并且可写 则进行压缩编码 $contents = file_get_contents(
网站安全之ASP程序加密/解密方法大揭密
安全|程序|加密|解密 如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法. 一.如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密.组件加密.自编程序加密,下面我们就来展开介绍这三种加密方法. 1.使用微软的MS Script En
用邮件pops加密程序的方法
电子邮件又称电子信箱.电子邮政,它是-种用电子手段提供信息交换的通信方式,是Internet应用最广的服务,通过网络的电子邮件系统,用户可以用非常低廉的价格(不管发送到哪里,都只需负担电话费和网费即可),以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联系,这些电子邮件可以是文字.图像.声音等各种方式.同时,用户可以得到大量免费的新闻.专题邮件,并实现轻松的信息搜索. 邮件也是我们经常要用到的工具,有时候我们可能会有一些文件不想让别人看到,那么
ASP.NET与PHP构建web程序的方法的优缺点
比较这两种最流行的构建 web 应用程序的方法的优缺点 如今当提到 Web 开发时,您有许多选择.这些方法中许多都涉及到预处理 - 即,利用特定的标记将代码嵌入到 HTML 页面中,这些标记告诉预处理器,它们包含代码,并且应对它们作出处理.与 CGI 非常相似,这些代码在服务器上运行,并返回一些内容,这些内容表现为发回给浏览器的结果 HTML 页面的部分外观.开放源代码脚本语言 PHP 和 Microsoft 的 ASP.NET 框架中的语言都属于这种类型:JavaServer Pages (J
安全的ACCESS加密方法
access|安全|加密 安全的ACCESS加密方法 徐长友 Microsoft的ACCESS数据库,是我们常用的桌面数据之一,大多中小企业的数据库管理系统都可以采用它,但其安全性一直令人担犹,试想,一套财务管理系统,用户直接打开数据库去更改数据,后果会如何?有些系统对ACCESS数据库可能只是更改扩展名,或加个密码,众所周知,破解ACCESS密码的方法和工具网上多的是!所以这样的加密一样令人担犹,下面介绍一个简单的方法,实现ACCESS数据的加密,供大家参考. 用UltraE
VB外接程序的设计- 得到VB的控制权
程序|控制|设计 VB外接程序的设计一,得到VB的控制权首先,外接,故名思意,当然必须是要和vb一起启动!在新建一外接工程后.新工程中设计器中有 Conncet.Dsr有这一元件,元件中有最为关键的一个事件 Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As
VB外接程序的制做-在VB中创建您自己工具条和菜单
菜单|程序|创建|工具条 VB外接程序的制做二,在VB中创建您自己工具条和菜单 创建工具条依然需要使用到VBI,只要和VB打交道,必须有它,同时在上篇文章所阐述的菜单项的制做方法是对你现在即将做的工作有用的.有一点你必须知道,无论是创建按钮,还是创建菜单项,他们之间是没有区别的.只是有一些地方有一点点不同而已. 怎样创建工具条呢?非常简单. VBI.CommandBars.Add cbsToolsBarName 此方法后面当然有其它可选参数,但是有些东西对于现在我要阐述的问题是无关的. Func
有史以来最牛B的.NET程序集加密方法?
程序|加密 今天在一个QQ群里面,一位群友透露了这样一条消息"我看到最强的.Net反反编译软件了","Reflector?",错了,注意有两个"反"字 -_-! "XenoCode?",错了,比这个还要牛的! -_-! 众人不信. 然后那位大侠贴出了介绍这个工具的地址:http://blog.csdn.net/coolksj/ 这是一个叫 MaxtoCode 的软件: 最新版的它目前还不提供混淆功能,它计划在推出WEB a
Windows优化大师Wopti文件加密方法
相信很多人为了能让自己的重要文件更安全,都会给自己的文件加密.为进一步保护用户重要文件的安全,Windows优化大师向使用者提供了Wopti 文件加密器模块.Wopti 文件加密器能将各种文件加密后压缩存放,不仅提高了用户文件的安全性并且节省了磁盘空间的占用.今天,小编就给大家分享Windows优化大师Wopti文件加密方法. 加密说明:对于非执行程序文件,加密后存放的文件名为:原文件名+'.womec'.例如:若待加密文件为"sysfile.bmp",则加密后文件为"s