关于软件注册问题的讨论

原创 2001年10月08日 22:34:00

To 张阳:

    你好!节日快乐!
    我下载了你写的这个“读主板编号,CPUID”的控件(http://home.online.tj.cn/user/DANDY),

试用了一下,发现几个问题,特向您请教,希望你的这个精品的最终版延迟一些时候:)
    1. 我在98SE D5下编译的这个程序好像不能在2K下运行,有什么办法解决呢?
    2. 我在网吧(机器型号相同)测试了这个程序,所取得的主板号全部一样,这个号码好像不是唯一的(美萍等有些共享软件在这些机子上取得的号子就不同),有何解决办法呢?
    望尽快回复,先谢谢你了!
                                                    lj
To lj

主板的BISO编号肯定是一样的,开机可以看到(做下角那一行编码),估计美萍取得不只是主板的BISO编号可能和硬盘容量、内存大小、内存SPD编号、CPUID做复合运算,只要机器有一点不同生成产生的编号既不同,我们也可学它这样做。要取得唯一编号只有硬盘和网卡(每个网卡有全球唯一的编号,btw使用网卡芯片的硬盘保护卡相同,在网吧可以使用这种技术),稍后我会编一个读网卡、内存SPD编号的VCL。还有WINDOWS每次安装也会根据硬件生成一个编号,但我试过重安系统就变了,实在不行用加密狗吧,彩虹的很好也不贵,不知你做何用。
                                                                张阳
To 张阳:

    我试了一下美萍(自称是读主板)等共享软件,它们在同一批主板上取得的号子完全不同,而且跟其它硬件也无关。像你说的读硬盘编号这个方法我也试过了,但是如果碰到(如三星等)硬盘没有编号的话,且在2K下运行权限不够的话,还是无法读取到啊! 美萍这些软件在这些没有序列号的硬盘上同样读出了唯一序列号(而且肯定这不是CPU ID),这就说明读主板号(不给用户添过多的麻烦)实现一机一码防止软件被复制才是最佳办法。
    不知道还有没有更好的办法解决这个问题呢?
我在网上看到美萍软件上的说明:
    [美萍软件设计时,软件序列号是根据主机板硬件信息计算出来的,每台机器有唯一的软件序列号,所以即使系统重装, 格式化, 换硬盘,软件序列号也不会变。假如您更换了主机板的话,请把原来的序列号发过来,经过核实后,我们将给您免费计算一个新的注册号。]
    它的关键在:“序列号是根据主机板硬件信息计算出来的”。我就是不知它是取的哪个地址的信息:)~~我用程序把主板ROM F0000-FFFFF 的信息取出来然后算出个号码,但是如果重新设置CMOS或是更改其它配置,这个号码就变了,所以它就没有用了(因为:太容易变化的号码做序列号,如果配置稍稍改变,到时不是给自己添麻烦吗?你说是不是?)
    关于你说的取唯一编号只硬盘和网卡。但是经过证实:有很多硬盘没有序列号,或者有时无法取得正确的序列号(可能的原因有很多);如果取网卡的话,局限性又太小,如果碰到没有网卡的客户(如单机用户)那不就又是问题了?而且网卡的编号也是可以改的,这点也已证实~~:(
    再就是如果注册源过多也不安全,万一用户更改了什么配件那原来的注册码又不能用了,这就是个大问题了~主板更换的可能性比较小,采用主板信息做序列号相对来说比较安全可靠,但这里面到底有什么技巧呢?
    所以制作共享软件的机制的确很重要~,我这里有个快写好的软件,本来是想做成免费的,但是后来我又想做成共享形式的(稍微加点密:),主要是想研究一下共享软件到底怎么做的,像你说的用加密狗那又太....况且现在到处有“打狗棒”:)不知道你是否做过共享软件呢?有什么好的想法吗?期待你的回信!

                                                       lj
To lj:

   我认为主机板的信息只有FEC71的BIOS版本号是“不会改变的”(编号前十一位是Bios升级日期还要舍掉),美萍软件设计时肯定还加杂其它信息,想不出还有什么办法用主板唯一标示主机,如果能的话PⅢ序列号也不会闹的沸沸扬扬了,因为主板早就有了。

我猜想美萍光用主板标识的话可能是这样做,它可能在软件头一次安装时随机生成了一个编号,放在CMOS里(就象以前的一种病毒,地址随便,能WR就行),只要CMOS不断电(不太保险)、不换主板就可靠它标识了,不知你研究过DES吗有时“公匙”和“私匙”可以放在一起例如明匙“1234567”奇数位“1357”可做“公匙”偶数位可做“私匙”这个例子可能不恰当,我是想说明“请把原来的序列号发过来”这里就包括那个随机数了,然后……这只是个猜想!
我做共享软件一般是用主板、CPU、硬盘序列号和用户名做混合运算,万一其中哪个没有或取不到就用一固定数代替,到不会影响最终结果,重的机率也很小。
就目前中国共享软件情况来看工作量也不会太大,(但愿今后可以改变,但愿,但愿!)

还有一点算是我的经验吧,千万别使用dll、ocx什么的读硬件序列号,很容易被换掉,尤其是dll,随便一跟,再做个假的,就破解了,我就是这样解过用PB、VB做的系统的(财务、工控方面的),最好写在程序里,而且关键判断不能太明了,最好加点没用的废语句,这样跟也不好跟。

                                                                张阳

To张阳兄:

  “美萍光用主板标识的话可能是这样做,它可能在软件头一次安装时随机生成了一个编号,放在CMOS里”,我分析了一下,这好像不大可能,现在的板子一般都有写保护功能,弄不好杀毒软件还会误报有病毒~~:),CMOS不断电(很不保险,因为我发现有些主板上的电池不耐用,特别是网吧的),美萍是做这个的,估计也发现了,所以它的序列号包含随机数的可能性很小,可能它还是取了其它的信息,再用像你说的DES等算法加密了的。
    对了,咱们聊了这么多,我还不知道你是哪里人呢?你一般什么时候会上网呢?冒昧地问一下:你的QQ号可以告诉我吗?有机会好交流交流。
    在这里我还是要感谢你给了我这么多的启发~也祝你开发出更多更好的控件来!

                                                   lj

To lj:

    上次我的设想肯定不好用,今天我又想出了一个办法可以实现“在同一批主板上取得的号子完全不同,而且跟其它硬件也无关”,那就是例如“美萍”等软件显示的“号子”是由两部分组成,一个是BIOS码(去掉前11位,升级BIOS会改的)另一个是可能是“主机名”(或者一个随机数,但需存储在注册表中,下次还需取出来不能变),靠这两个码做奇数偶数排列组成一个新号码,也可自定义安排如“前三位是主机名,后五位是BIOS码”这样可保证每台机器的号码均不同,因为码中“主机名”或随机数部分是不同的(随机数第一次就定下来,以后就不变了)。我们收到用户名和这个新号码只用其中BIOS码那几位和用户名做运算生成注册码,验证时只验证BIOS码、用户名和注册码,与“主机名”或随机数无关它们只是冗余数据晃人耳目,这样即使系统重装“号子”中“主机名”或随机数变了也没关系,只要注册码正确,验证即可通过。如果怕相同的注册码太多,可以使用HASH算法杂凑多个编码。
我的表达能力有限,不知说清了没有?
我是天津人,“大四”了,从高三开始给人做程序,主要是工控、系统工程方面的也做共享软件,上网时间不定,QQ号是:180551----常联系!
                                                                张阳

软件保护之注册算法篇

软件保护之注册算法篇fangle 2003一、前言通常地,软件保护可分为三大环节:反调试、抗分析、防爆破1、反调试,给你的软件引入非常规的运行机制,例如加壳,来限制调试工具对你的软件的掌控   能力。...
  • fangle6688
  • fangle6688
  • 2006年08月05日 15:11
  • 3316

如何与领导讨论问题(转)

领导与下属之间,在一些大的、原则性的问题上,还是需要争论的。争论的结果,可使事情得到正确解决,对事业、对领导都有益处。   正确的争论应做到以下几点:   1、问题是重要的   前边已经说过,小的、非...
  • hunyahun
  • hunyahun
  • 2005年03月16日 11:25
  • 794

关于SQL Server/oracle将一列的多行内容拼接成一行的问题讨论

比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB        ...
  • lanseliuxingluo
  • lanseliuxingluo
  • 2016年07月13日 09:04
  • 1244

Tsinsen_A1024. 瓷砖问题再讨论

问题描述   有一长度为N(1   例如,长度为4的地面一共有如下4种铺法,并且,一共用了长度为1的瓷砖4块:   4=1+2+1   4=1+3   4=2+2   4=3+1   编程求解上述问...
  • czkct
  • czkct
  • 2015年05月14日 07:01
  • 1123

刷清橙OJ--A1024.瓷砖问题再讨论

问题: A1024. 瓷砖问题再讨论 时间限制:1.0s   内存限制:512.0MB   总提交次数:3856   AC次数:1769   平均分:59.72   有一长度为N(1  ...
  • qq_31725785
  • qq_31725785
  • 2017年05月18日 08:37
  • 249

乔布斯:关于Flash的几点看法

当初这篇轰动一时的文章,据说是乔大爷去世前亲自写的(好吧,Java虽然同样被拒,但还没这种待遇) -------------------------------------------------...
  • arvin0
  • arvin0
  • 2016年03月14日 16:10
  • 762

A1024. 瓷砖问题再讨论

问题描述   有一长度为N(1 例如,长度为4的地面一共有如下4种铺法,并且,一共用了长度为1的瓷砖4块: 4=1+2+1 4=1+3 4=2+2 4=3+1...
  • u011237723
  • u011237723
  • 2013年12月22日 14:27
  • 753

C#软件注册和注册

原理就是软件与注册机使用同一种算法,将数据进行匹配。注册后将数据写入至注册表中。一种简单的注册机的方式。 1、软件的实现 using System; using System.Collections....
  • Crow_n
  • Crow_n
  • 2016年06月20日 10:36
  • 1428

Goters讨论(1)

1 Prototype的作用。2 举例说明Builder的价值。 3 Brooks经验计划:1/3  编码:1/6 单元与集成测试:1/4 系统与用户接受测试:1/44 Martin Flower需求...
  • narci
  • narci
  • 2006年08月24日 17:53
  • 832

角位移传感器 AS5040

AS5040是一款无接触式磁旋转编码器,用于精确测量整个360°内的角度。此产品是一个片上系统,在 单个封装内整合了集成式Hall元件、模拟前端和数据信号处理功能。          测量角度...
  • tronteng
  • tronteng
  • 2011年11月11日 18:51
  • 657
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于软件注册问题的讨论
举报原因:
原因补充:

(最多只允许输入30个字)