| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 707 人关注过本帖, 1 人收藏
标题:获取机器码并注册那位朋友帮个忙给改改先谢谢了!!!
只看楼主 加入收藏
tjnhxglhj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-19
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:3 
获取机器码并注册那位朋友帮个忙给改改先谢谢了!!!
    MsgValue = ""
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    获取硬盘序列号
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia", , 48)
    For Each objItem In colItems
    MsgValue = MsgValue & vbCrLf & "硬盘 = " & objItem.SerialNumber
    Next
    '获取主板序列号
    Set colItems = objWMIService.ExecQuery("Select * from Win32_BaseBoard", , 48)
    For Each objItem In colItems
    MsgValue = MsgValue & vbCrLf & "主板=" & objItem.SerialNumber
    Next
    '获取CPU ID
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)
    For Each objItem In colItems
    MsgValue = MsgValue & vbCrLf & "CPU = " & objItem.ProcessorId
    Next
    '获取BIOS序列号
    Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS", , 48)
    For Each objItem In colItems
    MsgValue = MsgValue & vbCrLf & "BIOS= " & objItem.SerialNumber
    Next
    '获取网卡MAC地址
    Set colItems = objWMIService.ExecQuery("SELECT MACAddress FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))", , 48)
    For Each objItem In colItems
    MsgValue = MsgValue & vbCrLf & "网卡 = " & objItem.MACAddress
    Next
    Wscript.Echo MsgValue
搜索更多相关主题的帖子: 序列号 朋友 
2013-07-19 16:55
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:10 
生成的注册码最好再加个密码整合后再加密一次,我的就是这么干的(^V^)

学习--------------学习-------------------学习--------------------!!
2013-07-19 17:23
tjnhxglhj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-7-19
收藏
得分:0 
回复 2楼 wxflw
怎么生成啊,现在硬件信息都得到了

2013-07-19 17:40
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:10 
获取硬盘系列号应该不需要遍历所有硬盘吧,一般只需要获取程序安装所在盘的系列号就可以了,否则对一个不相干的硬盘进行更换甚至格式化就要重新注册,这是不是太不方便了?
我以前做软件注册只用到硬盘系列号(程序安装所在盘)、主板型号、cpu id,一班标注一个电脑身份有这些就行了,由于我们那时的电脑都是独立网卡,并且更换的可能性很大,因此就没有把网卡mac地址作为注册依据,再说mac地址很容易改。
当你已经获取所需注册数据后,先进行转换,我一般都是做3次变换,一次是将字符串的asc码相加,形成一个long数据a,再将该字符串每4个一组形成一个long数据b(不足以0补,多个则互相异或),第三次就是将a和b进行十进制的按位加,进位丢弃,最后形成一个long型数据c.(硬盘系列号本身就是一个long类型数据,无需做这种转换),最后将所有参与注册的项目的数据互相做异或运算形成最终注册数据d。
即使已获取注册数据d还不能做注册,你需要写两个按自己规则互逆函数,可分别称为加密函数、解密函数,我们先用加密函数对数据d加密形成数据e,e就是注册时明码提示的系列号,d就是需要用户输入的注册码,一旦用户输入的d能和e对应,则把e存储到注册表或数据库中,每次启动程序时先获取硬件环境,按前面所述最终形成数据d,比较加密后的d能否和e相同,不同则说明硬件环境已改变,则需要重新启动注册程序,否则程序正常运行。
我是这样做的,你只要做出自己的个性代码,一般就不容易被人破解了。
2013-07-19 23:29
快速回复:获取机器码并注册那位朋友帮个忙给改改先谢谢了!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066272 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved