vb程序防拷贝一法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vb程序防拷贝一法

杨生飞

虽然现在软件加密保护的方法很多,但大都技术复杂、专业性强或成本高。为此,笔者通过调用windows的api函数,简单地实现了vb程序的防拷贝,现介绍如下,望能与大家一起分享。


设计思路


安装软件第一次运行时,给自己开发的软件结合本台计算机特有的参数(此处利用计算机用户名),做一个“正品”识别标志后,将制作识别标志的程序删除,并在软件主程序的头部增加一段检测程序。以后软件运行时,首先检查“正品”识别标志是否存在,如存在则进一步判断是否为合法用户;如不存在,则检查制作识别标志的程序是否存在,不存在,则为非法用户,存在,则认为第一次运行,重新制作识别标志。通过以上方法就可以简单地判断软件的合法性。


检测程序


1.用declare语句申明所要调用的windows api函数:

private declare function getusername lib "advapi32.dll" alias "getusernamea" (byval lpbuffer as string, nsize as long) as long

2.在主程序的sub form—load()中添加如下代码:

dim k as string  50

dim w as string  50

dim b as integer

′查找readme.txt文件,如果不存在,则运行installme.exe。

if dir(app.path && "\readme.txt") = " then

′查找installme.exe文件,如果不存在,则退出运行。

if dir(app.path && "\installme.exe") = " then

aa = msgbox("请检查其合法性!", vbcritical, "警告")

end

else

′installme.exe文件存在,则为第一次运行该程序,建立readme.txt文件,设定识别标志。

a = shell(app.path && "\installme.exe", vbhide)

kill app.path && "\installme.exe"

end if

else

b = getusername(k, 50)

open app.path && "\readme.txt" for random as #1 len = 50

get #1, 1, w

close

if k 〈〉 w then

aa = msgbox("请检查其合法性!", vbcritical, "警告")

end

end if

end if

end sub

识别标志及安装盘的制作

1.新建一标准exe文件,添加如下代码,并生成名为installme.exe的可执行文件。

private declare function getusername lib "advapi32.dll" alias "getusernamea" (byval lpbuffer as string, nsize as long) as long

private sub form—load()im w as string * 50

b = getusername(w, 50)

open app.path && "\readme.txt" for random as #1 len = 50

put #1, 1, w

close

unload me

end sub

2.应用vb的应用程序安装向导生成安装程序时,在安装程序向导运行到“文件小结”时,添加installme.exe,并确认文件详细信息中的目标目录为 $(apppath)。

在实际应用中,可通

过选择不同硬件参数,结合其它软件保护方法一起进行,以达到保护开发成果的目的。

以上程序在vb 5.0、win 95下通过。



相关文档
最新文档