发信人: smileny()
整理人: yangcs(2000-01-24 11:38:42), 站内信件
|
一年前,费了半天劲用softice 跟踪来的,不过对某些硬盘没有用。
现在很多地方都有这个东东啦,我赶快贴,不然没机会了,呵呵。
void get_id()
{
unsigned emaddress;
unsigned i,b,flg,c,aa;
char buffer[21],a1,a2;
_asm {
mov dx,0x1f6
mov al,0xa0
out dx,al
mov dx,0x1f7
mov al,0xec
out dx,al
}
aa11:
_asm{
in al,dx
test al,0x80
jnz aa11
}
for(b=0;b<0xa0;b+=2)
{
_asm{
mov dx,0x1f0
in ax,dx
mov a1,ah
mov a2,al
}
//这160个字节里有很多有用的东东啊,比如head,cyl,等等,因为我不用
//所以就没有分析,呵呵。
if((b>=20)&&(b<40))
{
buffer[b-20]=a1;
buffer[b-19]=a2;
}
}
buffer[20]=0;
}
buffer 里就是序列号啦,不足的用空格补。一般是8/12byte.
算不算灌水呢,老山羊?
哦,对了,如果是win的,需要进到cpu ring0 才能阿。
-- ※ 修改:.smileny 于 Jan 21 22:31:55 修改本文.[FROM: 202.106.211.219] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.106.211.219]
|
|