امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
بدست آوردن مدل سی پی یو و شماره سریال سی پی یو که در 64 بیتی هم کار می کند.
نویسنده پیام
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #1
Question  بدست آوردن مدل سی پی یو و شماره سریال سی پی یو که در 64 بیتی هم کار می کند.
بدست آوردن مدل سی پی یو و شماره سریال سی پی یو که در 64 بیتی هم کار می کند.
کد:
var
_eax, _ebx, _ecx, _edx: Longword;
i: Integer;
b: Byte;
s, s1, s2, s3, s_all: string;

P:Integer;
const
gn_speed_x: Integer = 8;
gn_text_x: Integer = 15;
gl_start: Boolean = True;

Procedure GetCPUinformation(var SerialNumber,Processor:string);

Procedure ASM1;
Asm
mov eax,0
db $0F,$A2
mov _ebx,ebx
mov _ecx,ecx
mov _edx,edx
end;

Procedure ASM2;
Asm
mov eax,1
db $0F,$A2
mov _eax,eax
mov _ebx,ebx
mov _ecx,ecx
mov _edx,edx
end;

Procedure ASM3;
Asm
mov eax,3
db $0F,$A2
mov _ecx,ecx
mov _edx,edx
end;

Procedure ASM4;
Asm
mov eax,1
db $0F,$A2
mov _edx,edx
end;

Procedure ASM5;
Asm
mov eax,$80000000
db $0F,$A2
mov _eax,eax
end;

Procedure ASM6;
Asm
mov eax,$80000002
db $0F
db $A2
mov _eax,eax
mov _ebx,ebx
mov _ecx,ecx
mov _edx,edx
end;

Procedure ASM7;
Asm
mov eax,$80000003
db $0F
db $A2
mov _eax,eax
mov _ebx,ebx
mov _ecx,ecx
mov _edx,edx
end;

Procedure ASM8;
Asm
mov eax,$80000004
db $0F
db $A2
mov _eax,eax
mov _ebx,ebx
mov _ecx,ecx
mov _edx,edx
end;

Begin

P:=0;

ASM1;

for i := 0 to 3 do
begin
b := lo(_ebx);
s := s + chr(b);
b := lo(_ecx);
s1:= s1 + chr(b);
b := lo(_edx);
s2:= s2 + chr(b);
_ebx := _ebx shr 8;
_ecx := _ecx shr 8;
_edx := _edx shr 8;
end;

Inc(P);
Inc(P);

ASM2;

b := lo(_eax) and 15;
Inc(P);
b := lo(_eax) shr 4;
Inc(P);
b := hi(_eax) and 15;
Inc(P);
b := hi(_eax) shr 4;
Inc(P);

b := lo((_eax shr 16)) and 15;
Inc(P);

b := lo((_eax shr 20));
Inc(P);

b := lo(_ebx);
Inc(P);
b := hi(_ebx);
Inc(P);
b := lo(_ebx shr 16);
Inc(P);
b := hi(_ebx shr 16);
Inc(P);

s := IntToHex(_eax, 8);

ASM3;

s1 := IntToHex(_edx, 8);
s2 := IntToHex(_ecx, 8);
Insert('-', s, 5);
Insert('-', s1, 5);
Insert('-', s2, 5);
Inc(P);
SerialNumber:=Trim(s + '-' + s1 + '-' + s2);

ASM4;

Inc(P);
Inc(P);

ASM5;

if _eax > $80000000 then
begin
Inc(P);
Inc(P);

ASM6;

s := '';
s1 := '';
s2 := '';
s3 := '';

for i := 0 to 3 do
begin
b := lo(_eax);
s3:= s3 + chr(b);
b := lo(_ebx);
s := s + chr(b);
b := lo(_ecx);
s1 := s1 + chr(b);
b := lo(_edx);
s2 := s2 + chr(b);
_eax := _eax shr 8;
_ebx := _ebx shr 8;
_ecx := _ecx shr 8;
_edx := _edx shr 8;
end;

s_all := s3 + s + s1 + s2;

ASM7;

s := '';
s1 := '';
s2 := '';
s3 := '';

for i := 0 to 3 do
begin
b := lo(_eax);
s3 := s3 + chr(b);
b := lo(_ebx);
s := s + chr(b);
b := lo(_ecx);
s1 := s1 + chr(b);
b := lo(_edx);
s2 := s2 + chr(b);
_eax := _eax shr 8;
_ebx := _ebx shr 8;
_ecx := _ecx shr 8;
_edx := _edx shr 8;
end;

s_all := s_all + s3 + s + s1 + s2;

ASM8;

s := '';
s1 := '';
s2 := '';
s3 := '';

for i := 0 to 3 do
begin
b := lo(_eax);
s3 := s3 + chr(b);
b := lo(_ebx);
s := s + chr(b);
b := lo(_ecx);
s1 := s1 + chr(b);
b := lo(_edx);
s2 := s2 + chr(b);
_eax := _eax shr 8;
_ebx := _ebx shr 8;
_ecx := _ecx shr 8;
_edx := _edx shr 8;
end;

Inc(P);

if s2[Length(s2)] = #0 then setlength(s2, Length(s2) - 1);
Inc(P);

Processor:=Trim(s_all + s3 + s + s1 + s2);
end;

End;

Assembly Language 039

(آخرین ویرایش در این ارسال: ۱۶-فروردین-۱۳۹۱, ۰۶:۲۰:۵۴، توسط The.Ghost.)
۱۶-فروردین-۱۳۹۱, ۰۶:۱۹:۵۴
ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper, Majid_Ebru


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بدست اوردن ورژن ویندوز lord_viper 10 7,602 ۰۱-تير-۱۳۹۴, ۱۵:۴۴:۰۱
آخرین ارسال: samavi2020
  شماره کامپوننت موجود در فورم ؟!؟ Majid_Ebru 1 2,095 ۲۷-بهمن-۱۳۹۲, ۰۹:۴۵:۵۸
آخرین ارسال: lord_viper
  سریال معتبر برای نصب Delphi XE5 godvb 0 3,242 ۲۶-مهر-۱۳۹۲, ۱۴:۳۰:۴۰
آخرین ارسال: godvb
Question بدست آوردن زبان نوشتار(input language) پنجره فعال ویندوز The.Ghost 1 2,169 ۲۴-خرداد-۱۳۹۲, ۲۳:۲۹:۴۶
آخرین ارسال: veyskarami
  گرفتن سریال فیزیکی هارد lord_viper 0 2,134 ۰۴-اردیبهشت-۱۳۹۲, ۰۹:۰۱:۰۴
آخرین ارسال: lord_viper
  ارتباط با پورت سریال : The.Ghost 2 5,015 ۱۰-بهمن-۱۳۸۸, ۱۰:۴۰:۳۲
آخرین ارسال: lord_viper
myBB بدست آوردن دستگيره (Handle) موضوعات در پنجره ها P.Bayat 1 3,106 ۰۷-اسفند-۱۳۸۷, ۱۳:۵۹:۵۰
آخرین ارسال: lord_viper
Exclamation بدست آوردن اطلاعات اكانت ديال آپ * كمك كنيد P.Bayat 14 11,466 ۱۶-بهمن-۱۳۸۷, ۱۳:۳۱:۱۸
آخرین ارسال: P.Bayat

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS