有没有办法防止盗版!谢谢!

luoxiang2000 2001-08-02 03:13:27
我做了一个小程序,有谁能告诉我怎样实现下面的功能:
这个程序(exe文件),我把他发给某人a,可以让他运行自如!但是我要控制这个exe程序被某人a拷贝到另一台电脑上其不能运行!当然,我不想麻烦某人a要输入注册码、登陆框之类的东西!
...全文
157 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoxiang2000 2001-08-04
  • 打赏
  • 举报
回复
我重申一下:我的意思是如果我把这个程序(exe文件)给某人甲,我想让这个程序在甲的电脑上运行正常,但是如果甲把这个程序给了乙,那么在乙的电脑上不能正常运行!
不知有没有办法?
好像听说过,可以在a.exe文件运行时自动写一个b.exe文件(主要功能和a.exe一样,只是多了检测注册表的功能),并且写一个值进注册表,再运行另外一个,然后删除a.exe,下次用户只能看见b.exe,而见不到原始文件a.exe,所以就算他发b.exe给某乙也没有用!
但是这样就牵涉到vb中比较深的问题(也许对于大虾们来说很容易,但我觉得会较难),不知这个想法行不行得通?请各位大虾不吝赐教!非常感谢!如果成功了,分数我会增加的!再次谢谢大家!
KitSdk 2001-08-04
  • 打赏
  • 举报
回复
不要在考虑什么注册表了,总会容易发现 ,我记得在 dos 程序编程时,
exe文件内部有几十个字节是没有用到的,你可以把你的第一次运行参数(xxxxx序列号)
加密后写入那里,以后运行时在进行所谓的CRC校检.不久ok了
不过我对windows的exe文件不了解的,仅作参考
mwenyuan 2001-08-04
  • 打赏
  • 举报
回复
PIII序列号
langzhi 2001-08-04
  • 打赏
  • 举报
回复
要实现你这样的要求,你的程序中必须包含你的朋友的机子中某一特定的唯一的一个识别的东东。
bucher 2001-08-04
  • 打赏
  • 举报
回复
这有什么用?
norton registry tracer就可以跟踪到你写了那些注册表
或者用户可以保留最初的a.exe的副本,这样的话任何认证措施都无效。
这要是可以防盗版M$为什么不用?
或者你可以把硬盘ID发送到指定的HTTP服务器进行电子注册,这一切在后台完成,用户不会知道。这样可以避免同一个copy被多次使用(是不是像XP?),不过这很麻烦,而且如果需要也可以破解。
我认为加密和开发成本是相对的,必须酌情处理。
hz1101 2001-08-03
  • 打赏
  • 举报
回复
我再说清楚一点:
一、每次运行的时候检测你在注册表中设置的值,这个值最好是将用户的硬盘序列号进行加密处理后的值,如果值存在,证明其为合法用户,则Pass,否则,无法证明其合法性,转第二步。

二、检查此执行文件的最后位置中是否包含你不允许运行的标识(这些内容是如何写进去的第三步有解释),如果有,证明为非法用户,中断程序运行(当然还可以搞一点小动作),否则,证明其为第一次运行,转入第三步。

三、将不允许运行的标识加入到执行文件的最后面(好象执行文件的路径可以通过APP.path获得,文件名可以通过App.EXEName获得,加入标识应该就比较简单了),然后Pass.




jusygg 2001-08-03
  • 打赏
  • 举报
回复
up
caihong 2001-08-03
  • 打赏
  • 举报
回复
去检测CPU或硬盘的序列号,因为他们是唯一的不可改变的,到网上找一下,我以前见过的!
geekpi 2001-08-02
  • 打赏
  • 举报
回复
对比安装日期,我就是这么做的。
luoxiang2000 2001-08-02
  • 打赏
  • 举报
回复
那么这个程序到了另一台计算机上不也会找一些特殊值吗?除非,想办法使取值的过程只运行一次!
seread 2001-08-02
  • 打赏
  • 举报
回复
在程序运行的过程中,使用API获得用户计算机的一些特殊值(如硬盘序列号等),把这些值写入你的程序文件中,下次启动时,比较。
xyjdn 2001-08-02
  • 打赏
  • 举报
回复
没有
一川烟草123 2001-08-02
  • 打赏
  • 举报
回复
難!!!!誰有高招??
up
fansybox 2001-08-02
  • 打赏
  • 举报
回复
我比较同意hz1101观点其中的“二个缺点”,真的很难做到。除非再开发一个来验证他的指纹,呵呵。。。不过也不行啊,他有可能克隆他自己啊……~0~
skydg 2001-08-02
  • 打赏
  • 举报
回复

if windows\system\txtfiles内容(n行,n个)="正版" then
run
else
msgbox
end if
hz1101 2001-08-02
  • 打赏
  • 举报
回复
难!难!!难!!
我有一个建议,每次运行的时候检测你在注册表中设置的值,如果值没有的话(有就Pass),再检查此执行文件中是否包含你不允许运行的条件,如果不包含的话,在执行文件后加入你不允许执行的条件(然后Pass),否则不运行此程序。
此法有二个缺点:
-、当用户在未第一个运行时就作了备份,那么他将备份拷给其它人后,其它人照样可以运行!
二、当用户第一个运行过后,如果后来无意中将这个注册表值进行了修改,那他也变成了非法用户,就会怀疑你安了后门,那麻烦可就大了!
piaoyang80 2001-08-02
  • 打赏
  • 举报
回复
有一个很差的招:
第一次运行的时候,检测计算机的用户名,然后把他保存为文件藏在
不容易找的目录上,

第二次开始运行时,就比较当前计算机名和第一次的一不一样.
然后if 一样 then 正常运行.
else 警告 or 退出.
end if
完了
outer2000 2001-08-02
  • 打赏
  • 举报
回复
up

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧