MyException - 我的异常网
当前位置:我的异常网» C语言 » 怎么实现软件的licence

怎么实现软件的licence

www.myexceptions.net  网友分享于:2013-02-26  浏览:320次
如何实现软件的licence?
目前想给一个软件弄一个licence,安转此软件后要运行,必须先要通过验证,不知道如何做一个licence?

------解决方案--------------------
一般效果不好、破解无处不在。
------解决方案--------------------
。。。LZ可以用机器的网卡序号,重新编码。。产生序列号
------解决方案--------------------
探讨
一般效果不好、破解无处不在。

------解决方案--------------------
同意2楼!网卡序号!
------解决方案--------------------
随便搞个3Des啊,MD5之类的算法,把网卡mac地址生成一个值序列,存成license文件。

软件运行时找到mac地址重新计算这个序列,然后跟存在文件里的序列比较,如果一致就ok,不一致就退出。

买软件的时候就要求对方提供mac地址,给他生成那个license文件.

嗯,忽悠下老板可以这样,要想安全,太难了~
------解决方案--------------------
楼上的不错,貌似现在不少做共享软件的人都是这样做的
------解决方案--------------------
可以考虑和硬盘ID进行绑定
------解决方案--------------------
探讨
随便搞个3Des啊,MD5之类的算法,把网卡mac地址生成一个值序列,存成license文件。

软件运行时找到mac地址重新计算这个序列,然后跟存在文件里的序列比较,如果一致就ok,不一致就退出。

买软件的时候就要求对方提供mac地址,给他生成那个license文件.

嗯,忽悠下老板可以这样,要想安全,太难了~

------解决方案--------------------
一种简单注册码加密的例子分析
作者:广东南海昭信公司 king_koo


前言:
为了保护软件开发者的权益我们经常需要对软件进行加密限制,以防止未经许可的随意拷贝。另一方面我们也可能需要在自己的共享软件中提供注册码的功能。近期笔者因为要对一软件进行加密限制,故对简单加密的方法做了一翻"研究"(找资料).下面我把我的方法写出来,希望对初学者有一定的帮助。

本文源代码一: 注册机源代码 大小:10K
本文源代码二: 解密机源代码 大小:10K 
1.目标:做到一部机器只能装一个目标软件.程序拷给用户后,要求先注册,否则出现未注册消息.(注册方法见后面)

2.分析:为每部机器分配一注册号,需要读机器的硬件信息.硬件信息可采用:

a.读bios信息.用指针对bios操作,比较复杂.
b.读cpu系列号.简单api,仅2000适用.
c.读网卡id.用几个api.
d.读硬盘系列号.一个api,简单.

我采用了读硬盘系列号的方法,简单(能骗老板就行了).注册后解密匙放哪里呢?ini文件?二进制文件?不行,不小心删掉就没了.注册表?太麻烦,不够绿色.把他放在可执行文件本身最方便了.可惜可执行文件
只能读本身,不能写自身(谁知道如何写请告诉我),故需另外做一个来写,写入解密匙后,每次可执行文件运行就读自身里的解密匙,由此判断有没有注册.

3.示例代码分析

3.1 解密机部分 ( 作者用于初始化目标,生成解密匙)

新建一对话框工程,加入两edit框,并为他们添加long型变量 m_gkh,m_jms.再加入按钮"解密匙",按钮"初始化目标",按钮"测试解密".
在OnInitDialog()加入下列代码:

DWORD VolumeSerialNumber;
GetVolumeInformation("c:\\",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);
VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算
m_gkh=VolumeSerialNumber;//本机顾客号.测试用
UpdateData(0);
按钮"初始化目标"里添加代码:
(当然,这里加入的解密匙是你机的解密匙,别人拷去是没效的)
//功能:初次使用时,在你要加密的文件play.exe末部加入解密匙.
DWORD num;
UpdateData(1);
num=m_jms;
num^=0x1999aa98;
if(num==m_gkh)
MessageBox("ok"); //提示解密匙正确
CFile ff;
if(!ff.Open("play.exe",CFile::modeWrite))
return;
CString str;
str.Format("%10d",m_jms);
MessageBox(str);
ff.SeekToEnd();
ff.Write(str,10);//添加到play.exe尾部
ff.Close();
按钮"解密匙"里添加代码: //功能:得到解密匙.
UpdateData(1);
long aa=m_gkh^0x1999aa98;
m_jms=aa;
UpdateData(0);
按钮"测试解密"里添加代码:
//在你要加密的文件play.exe末部改写解密匙.
DWORD num;
UpdateData(1);
num=m_jms;
num^=0x1999aa98;
if(num==m_gkh)
MessageBox("ok"); //提示解密匙正确
CFile ff;
if(!ff.Open("play.exe",CFile::modeWrite))
return;
CString str;
str.Format("%10d",m_jms);
MessageBox(str);
ff.Seek(-10,CFile::end);//改写解密匙
ff.Write(str,10);
ff.Close();
3.2 注册机部分 ( 这部分供用户使用 )

新建一对话框工程,加入两edit框,并为他们添加long型变量 m_gkh,m_jms.再加入按钮"解密",
在OnInitDialog()加入下列代码: //生成顾客号

DWORD VolumeSerialNumber;
GetVolumeInformation("c:\\",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);

文章评论

一个程序员的时间管理
一个程序员的时间管理
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员必看的十大电影
程序员必看的十大电影
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
旅行,写作,编程
旅行,写作,编程
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
为什么程序员都是夜猫子
为什么程序员都是夜猫子
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员的鄙视链
程序员的鄙视链
如何成为一名黑客
如何成为一名黑客
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
10个调试和排错的小建议
10个调试和排错的小建议
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
鲜为人知的编程真相
鲜为人知的编程真相
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
每天工作4小时的程序员
每天工作4小时的程序员
Java程序员必看电影
Java程序员必看电影
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
我是如何打败拖延症的
我是如何打败拖延症的
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
总结2014中国互联网十大段子
总结2014中国互联网十大段子
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
中美印日四国程序员比较
中美印日四国程序员比较
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员和编码员之间的区别
程序员和编码员之间的区别
老程序员的下场
老程序员的下场
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
代码女神横空出世
代码女神横空出世
那些争议最大的编程观点
那些争议最大的编程观点
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有