Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder CPU Kimliğini (ID) Öğrenme


CPU Kimliğini (ID) Öğrenme

AÇIKLAMA

C++ Builder 6 ile uyumludur. 

Bu projemizde CPU'nun üretici firma tarafından oluşturulan ve sadece bir tek cpu'ya ait olan (unique) kimliğini öğreneceğiz. Bu kısımda yazılan kodlar hexadecimal kod olup makine kodu olarak bilinirler. Bu numarayı projelerinizde güvenlik ve kaçak kullanım amacıyla kullanabilirsiiniz. Fakat burada dikkat edilmesi gereken bir husus vardır ; programı çalıştırdığınızda 2 adet mesaj göreceksiniz. CPU id1 ve id2 olarak görünen bu mesajlardaki ifadelerin birleşimi CPU id(kimliğini) verir. Biraz daha olayı genişletirsek günümüzde bulunan bilgisayarlar artık tek bir cpu ile değil birden çok cpu ile çalışmaktadır veya çok çekirdeklidir. Buda beraberinde problemleri getirir. Çünkü her zaman elde edilecek id1 ve id2 ler birbirini tutmayacaktır.  Bu durumda yapacağınız güvenlik işlemleride etkisiz kalabilir. Burada şu şekilde bir mantık düşünülebilir. Program demo süresi boyunca olası bütün farklı kombinasyonları (id1 ve id2 den oluşacak) kaydeder. Program normal moda geçtikten sonra çalıştığı makineyi kontrol ederken daha önceden kaydettiği olası bütün kombinasyonlara bakarak devreye girer veya girmez.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt

Program Kodu:

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. //---------------------------------------------------------------------------
  12. __fastcall TForm1::TForm1(TComponent* Owner)
  13.         : TForm(Owner)
  14. {
  15. }
  16. //---------------------------------------------------------------------------
  17.  
  18. void __fastcall TForm1::Button1Click(TObject *Sender)
  19. {
  20. int a,b,c,d;
  21. String id1,id2;
  22. asm{
  23. mov eax,1
  24. db 0x0F,0xA2
  25. mov a,EAX
  26. mov b,EBX
  27. mov c,ECX
  28. mov d,EDX
  29. }
  30. id1=IntToHex(a,8)+IntToHex(b,8)+IntToHex(d,8)+IntToHex(c,8);
  31. ShowMessage("CPU ID 1="+id1);
  32. asm{
  33. mov eax,2
  34. db 0x0F,0XA2
  35. mov a,EAX
  36. mov b,EBX
  37. mov c,ECX
  38. mov d,EDX
  39. }
  40. id2=IntToHex(a,8)+IntToHex(b,8)+IntToHex(d,8)+IntToHex(c,8);
  41. ShowMessage("CPU ID 2="+id2);
  42. }
  43. //---------------------------------------------------------------------------
  44.  
Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Pazartesi, 03 Eylül 2012 15:47 )