找回密码
 立即注册
搜索
查看: 453|回复: 11

CPU序列号

[复制链接]

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
发表于 2005-1-27 16:00:36 | 显示全部楼层 |阅读模式
请教,window下如何取得CPU序列号?

232

主题

4907

回帖

6907

积分

网站编辑

CEO

积分
6907
发表于 2005-1-27 22:44:30 | 显示全部楼层
找个查看序列号的软件
回复

使用道具 举报

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
 楼主| 发表于 2005-1-28 09:46:56 | 显示全部楼层
代码呢?
回复

使用道具 举报

125

主题

1268

回帖

1854

积分

金牌会员

积分
1854
发表于 2005-1-28 12:07:41 | 显示全部楼层
#include <stdio.h>
#include <conio.h>

int main(int argc,char **argv)
{
unsigned long s1,s2;
unsigned char vendor_id[]="------------";
char sel;
printf("Select the function:\n1-------Read CPU id.\n2-------Disable CPU id.\n");
sel=getch();
switch(sel)
{
case '1':
asm xor eax,eax
asm cpuid
asm mov dword ptr vendor_id,ebx
asm mov dword ptr vendor_id[+4],edx
asm mov dword ptr vendor_id[+8],ecx
printf("%s-",vendor_id);
asm mov eax,01h
asm xor edx,edx
asm cpuid
asm mov s1,edx
asm mov s2,eax
printf("%08X\n%08X-",s1,s2);
asm mov eax,03h
asm xor ecx,ecx
asm xor edx,edx
asm cpuid
asm mov s1,edx
asm mov s2,ecx
printf("%08X-%08X\n",s1,s2);
break;
case '2':
asm{
mov ecx,119h
rdmsr
or eax,00200000h
wrmsr
}
printf("CPU id is disabled.\n");
break;
}
return 0;
}



http://developer.intel.com/design/pentiumiii/applnots/245125.htm
http://www.intel.com/design/xeon/applnots/241618.htm
回复

使用道具 举报

168

主题

1079

回帖

1657

积分

金牌会员

积分
1657
发表于 2005-1-30 17:05:32 | 显示全部楼层
最初由 JAUAN 发布
[B]代码有点问题。可能取得不对 [/B]


对的写来看看
回复

使用道具 举报

155

主题

2208

回帖

2844

积分

论坛元老

阳光宅男

积分
2844
发表于 2005-2-2 16:13:06 | 显示全部楼层
用个软件不就结了?!
回复

使用道具 举报

30

主题

1275

回帖

1732

积分

金牌会员

积分
1732
发表于 2005-2-3 09:48:32 | 显示全部楼层
http://www.delphifans.com/SoftView/SoftView_1171.html
快速取得CPU序列号,网卡Mac地址,硬盘序列号,注册码示例源程序
在这里,作者提供了获得CPU序列号和网卡Mac地址的方法。
1.Delphi中可这个控件或这个动态库。控件提供了两个属性,MacAddress和CPUSerialNumber。
2.Delphi外的语言,请使用这个动态库。动态库提供了两个函数,GetCPUSerialNumber和GetMacAddress
这些函数和控件,在win2000和winXP中测试通过,在多CPU、多硬盘、使用了并列存储技术的大型服务器上,

也测试通过。
在软件保护中,我们常常要用到机器的标识。根据作者的经验,在好些服务器上无法取得硬盘序列号。特别是

在那些使用了并列存储技术或做了镜象的硬盘。网卡也容易更换,因此作者建议使用CPU序列号。
在同一个压缩包里,还有一个注册码例子程序,演示如何用注册码对软件进行保护!(含delphi源程序)
回复

使用道具 举报

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
 楼主| 发表于 2005-2-4 08:57:17 | 显示全部楼层
无法下载
回复

使用道具 举报

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
 楼主| 发表于 2005-2-4 08:59:58 | 显示全部楼层
#include <stdio.h>
#include <conio.h>

int main(int argc,char **argv)
{
unsigned long s1,s2;
unsigned char vendor_id[]="------------";
char sel;
printf("Select the function:\n1-------Read CPU id.\n2-------Disable CPU id.\n");
sel=getch();
switch(sel)
{
case '1':
asm xor eax,eax
asm cpuid
asm mov dword ptr vendor_id,ebx
asm mov dword ptr vendor_id[+4],edx
asm mov dword ptr vendor_id[+8],ecx
printf("%s-",vendor_id);
asm mov eax,01h
asm xor edx,edx
asm cpuid
asm mov s1,edx
asm mov s2,eax
printf("%08X\n%08X-",s1,s2);
asm mov eax,03h
asm xor ecx,ecx
asm xor edx,edx
asm cpuid
asm mov s1,edx
asm mov s2,ecx
printf("%08X-%08X\n",s1,s2);
break;
case '2':
asm{
mov ecx,119h
rdmsr
or eax,00200000h
wrmsr
}
printf("CPU id is disabled.\n");
break;
}
return 0;
}

这段代码不能取p4的cpu序列号
回复

使用道具 举报

30

主题

1275

回帖

1732

积分

金牌会员

积分
1732
发表于 2005-2-4 09:36:03 | 显示全部楼层
我这里可以下啊,也不大,就贴上来吧。
用里面的DEMO在我的P4 1.7G上可以取到序列号。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-19 02:27 , Processed in 0.089642 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表