远方不能见面的用户,如何进行软件加密?300分(100分)

  • 主题发起人 张剑波
  • 开始时间

张剑波

Unregistered / Unconfirmed
GUEST, unregistred user!
我提供的DEMO版,可得知用户的CUP、主版、硬盘序列号。
1。怎样方便的把序列号信息方便无误的通过EMAIL传送给我。
2。我得知对方的序列号信息后如何把密匙加到对方的程序中。
3。或你所知道的其他可行的方法。
最好有代码? 可行加300分。
thanks
 
回答2:
知道了序列号信息后可用序列号和密匙进行字符运算,得到一个新得序列号,最后再解密,
进行序列号比对不就行了。
 
重点关注
 
1、程序第一次运行时产生一个序列号,并保存到一个不可告人的文件中;
2、第二次运行时检查已有序列号时,检查序列号是否正确。正确,则要来
用户输入你提供序列号,并保存到一个不可告人的文件的另一地方;
3、第三次运行时检查生成的序列号与用户输入的序列号是否一致...
 
说一点我的想法,不知可不可行.
1.取得序列号后,以加密的方法存到注册表中.
2.要求他上你的主页来提交注册或其他动作,在你的主页中加上代码从他的注册表中提取你
存在他注册表中的数据,存到你的数据库中.
3.你通过你的注册码生成器跟据他的信息生成注册码.
我觉得可行是可行,但并不好,有违客户私稳权,搞得不好自己难脱身.最好的方法还是生成
一系列注册码,来一个,分一个,就去掉一个.若者是你在程序中写明一个判断注册码是否有
注册的程序,若注册了改一个文件或注册表,以此来判断.但这些很容易被K掉,有矛必有盾,
想要完全的解决这个问题几乎是不可能的.
 
倘若你不知道的是如何发送和接收,那可就比较麻烦了...........
否则,你可以先使用你GET到的本地信息运算生成一个挑战码,此挑战码可以根据
本地信息以及当时的时间来生成.当然你的算法必须能反向判断是否该码是否属于该本地信息.
用户将挑战码发送给你,然后你帮助其生成一个验证码返回给客户.
用户输入完挑战码和验证码后可以运行.
程序每次运行都判断一:挑战码是否属于本机
二:挑战码是否符合验证码
三:挑战码是否已经过期.
 
一个公司的方法:
1、第一次启动时弹出注册匡,上有一个机器码(CUP、主版、硬盘序列号),和一个注册
edit匡。
2、用户电话打到服务部,确认身份后,根据机器码生成注册码告诉用户。
3、在注册edit匡中注册,并把注册码写入window注册表。
4、程序要在启动时,核对机器码和window注册表里的注册码,正确则不弹出注册匡
5、注册完毕
 
你可以在你的demo第一次run时,提取出你所要的资料,然后在Demo程序上现示出来,
当然这个序列号是经过特别计算的,当用户把这个序列号给你时,你才给相应的注册码!
 
开机检查注册信息。没注册则
1.将CPU、主板、硬盘序列号信息加密产生三个秘匙字符串。
2.EMAIL回来后解码,再加密生成一个注册码。EMAIL回去。
3.程序将注册码写进程序本身里面。
这样这个程序就只能在这台机使用了。
 
有些WINXP的味道,不怎么好吧!
 
考虑到下列情况:
1.有的客户没有Email(没有上网):所以网上注册不是很现实,
除非你的销售只局限在某一地方;
2.电话联络,如果客户机器半夜三更重装,而你不能提纲24小时电话支持;
你没有Windows等的800免费电话支持,也没有雄厚的经济实力;
所以电话很容易让客户生气的;
所以还是使用传统的方法,比较好;
 
<<< 关于读 CPU ID 和主板 BIOS 等信息加密软件 >>>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Do{
读主板信息:
主板名称: String(PChar(Ptr($FE061)));
版权: String(PChar(Ptr($FE091)));
日期: String(PChar(Ptr($FFFF5)));
序列号: String(PChar(Ptr($FEC71)));
* 这些语句在同一批主板上读出的信息是相同的!
* 在 Win2000 以上版本下运行(编译)无法通过!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 读 CPU ID:不是所有的 CPU 都有序列号,而且同一型号的 CPU ID 相同!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*读硬盘序列号:有些硬盘没有序列号,或无法正确读取(人为或系统等因素造成)。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
读网卡序列号:局限性太大,且序列号可以用一种很简单的办法修改(改注册表)。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
读用户名或计算机名:局限性太大,在大型网吧等场合不适用(改名后注册码不可用)!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
读其它能在注册表能找到的数据:太不保险,极不安全!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用注册名+用户名:注册太灵活,只要注册一套即可通用。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
判断硬件过多极不妥,如果用户其中一种硬件坏了,此序列号都将不可用,又要重新注册!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再就是注册后的信息保存在何处??????很不简单,问题多多!!!!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}Loop
呵呵:)请继续讨论此技术问题。。。。。。。限入死循环!!!!!!!!!!!!!
******************************************************************************
据我测试发现,美萍(V8.45以上)在同型号机器(网吧),特别是主板牌子型号相同、
硬盘相同(不论是否有无序列号)、CPU 相同,系统为克隆的,且能在Windows的任何版本
(98/2K)等情况下正常运行,每台机器都能读取到唯一且固定的序列号!!!实现了真正
的一机一码~~~~~~*请大家好好研究、学习美萍软件(它自称读主板信息加密的)!!!
OK.......Windows 95/98/SE/ME/NT/2K/XP...启动中>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
关注此贴
 
这个问题有趣,可以继续研究
 
给个加密狗不就好使了吗,费那劲干吗
 
思考中、、、
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部