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----常联系!
张阳