QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1653|回复: 6

如何用LINUX C 取得硬盘出厂序列号?

[复制链接]
发表于 2003-6-16 19:47:22 | 显示全部楼层 |阅读模式
之所以要硬盘出厂序列号,我是想给程序做一个简单的加密
本来想用网卡MAC地址,后来一想别人用ifconfig修改一下MAC不就没戏了吗
硬盘出厂序列号好象不太好修改

此外还有什么绝招?CPU好象也有个号
发表于 2003-6-17 07:30:45 | 显示全部楼层
LINUX在启动时就可以看到硬盘的出厂的序列号的,注意看看啊~~
光驱鼠标都可以看到的,还有你安装的时候也有啊~
回复

使用道具 举报

发表于 2003-6-17 09:28:53 | 显示全部楼层
that is only hd type number, not the serial number.
回复

使用道具 举报

发表于 2003-6-17 10:18:20 | 显示全部楼层
celeon老是问这样稀有的问题
启动显示的是型号
序列号应该是铁盒上的那个条形码吧?
回复

使用道具 举报

 楼主| 发表于 2003-6-17 11:43:30 | 显示全部楼层
在windows中是这样来取disk serial no:
Linux就不知道了。

(delphi)
//以下函数用以获得硬盘出厂序列号。
procedure Ring0Proc();
asm
// Wait for controller not busy
mov dx,01f7h
@1:in al,dx
cmp al,050h
jne @1
// Get first/second drive
dec dx
mov al,0a0h
out dx,al
// Get drive info data
inc dx
mov al,0ech
out dx,al
nop
nop
// Wait for data ready
@2:in al,dx
cmp al,058h
jne @2
nop
nop
// Read sector
xor ecx,ecx
mov dx,01f0h
@3:in ax,dx
mov word ptr dd[ecx*2],ax
inc ecx
cmp ecx,256
jne @3
iretd
end;
procedure Change2Ring0();
begin
asm
mov eax, offset Ring0Proc
mov OurGate.off2, ax
shr eax, 16
mov OurGate.off1, ax
mov OurGate.op,0028h
mov OurGate.seg,0ee00h
mov ebx,offset IDTR
sidt [ebx]
mov ebx, dword ptr [IDTR+2]
add ebx, 8*3
mov edi, offset SavedGate
mov esi, ebx
movsd
movsd
mov edi, ebx
mov esi, offset OurGate
cli
movsd
movsd
sti
mov eax,6200h
mov ecx,0
int 3h
mov edi, ebx
mov esi, offset SavedGate
cli
movsd
movsd
sti
end;
asm
xor ecx,ecx
mov ebx,offset dd[10*2]
@4:mov ax,[ebx]
mov byte ptr dsn[ecx],ah
inc ecx
mov byte ptr dsn[ecx],al
inc ebx
inc ebx
inc ecx
cmp ecx,10
jne @4
end;
showmessage(dsn);
end;
回复

使用道具 举报

发表于 2003-6-17 13:25:52 | 显示全部楼层
比较难,好像必须用汇编代码了
回复

使用道具 举报

发表于 2003-6-17 22:14:17 | 显示全部楼层

ioctl



以前做过这样的事,很容易的,不过有很长时间没有在LINUX下编程了。
好象是:
#include <linux/hd.h>
#include <linux/device.h>


这两个头文件里面有很多IOCTL,可以读到设备的很多信息。
至于ioctl函数怎么用,请看帮助:
man 2 ioctl
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-15 16:55 , Processed in 0.038848 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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