请问如何读取BOIS和网卡信息?

djiang 2000-06-22 05:50:00
...全文
263 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sls 2000-07-27
  • 打赏
  • 举报
回复
''我会随后发一个控件给你,这个控件包含了在win98下读取BIOS、网卡信息的多个功能。''
这个控件可以发给我吗?

非常感谢!!!
sls

zxghl 2000-06-22
  • 打赏
  • 举报
回复
aiirii的方法通过读取端口获得的结果是 CMOS 参数,这还是不足以作为加密依据。
因为口令等数据是会变化的。同硬盘序列号一样。
我会随后发一个控件给你,这个控件包含了在win98下读取BIOS、网卡信息的多个功能。

********************************************
另外关于读取BIOS信息,你还不妨试一下以下语句:
procedure TForm1.Button1Click(Sender: TObject);
var
bn, bc, bd, bs: string;
begin
try
bn := String(Pchar(Ptr($FE061)));
bc := String(Pchar(Ptr($FE091)));
bd := String(Pchar(Ptr($FFFF5)));
bs := String(Pchar(Ptr($FEC71)));
except
bn := 'Unsupported';
bc := 'Unsupported';
bd := 'Unsupported';
bs := 'Unsupported';
end;
showmessage(
'[BiosName] ' + bn + #13 +
'[BiosCopyright] ' + bc + #13 +
'[BiosDate] ' + bd + #13 +
'[BiosSerial] ' + bs);
end;

这段程序在我的三台机器上都通过。另外在一台DOS622机器上,用C语言编写程序读取
以上的四个地址都正确,还有直接用DEBUG也可以看到。
aiirii 2000-06-22
  • 打赏
  • 举报
回复
读bois的程序:
procedure TForm1.Button1Click(Sender: TObject);
var data:Smallint;temp:byte;
decode,passwd:array [0..9] of char;count,I:integer;
begin
count:=0;
asm
mov al,29
out $70,al
mov ah,al
mov al,28
out $70,al
in al,$71
mov data,ax
end;
while data>0 do
begin
if (data<$80) then
begin
passwd[count]:=char(data);
break;
end
else
begin
temp:=data and $3f;
if (temp <= $20) then
temp:=temp or $30;
passwd[count]:=char(temp);
count:=count+1;
data:=data-temp;
data:=data shr 2;
end;
end;
i:=0;
while (count>=0) do
begin
decode[i]:=passwd[count];
count:=count-1;
i:=i+1;
end;
showmessage('the CMOS passwd= '+decode);
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧