Odczytanie klucza OS dla Windows 7

dział ogólny

Odczytanie klucza OS dla Windows 7

Nowy postprzez Darek_C++ » czwartek, 17 lutego 2011, 15:20

Witam ponownie,

w jednym z swoich programów dla autoryzacji stosuje skrót MD5 z klucza instalacyjnego windows którego pobieram korzystając z porady CB http://programowanie.cal.pl/cyfbar/api3.html#api9 .

Skrót MD5 będzie zawsze stały dla danego ciągu wejściowego znaków jednak użytkownicy którzy mają Windows 7 zawłaszczają problemy, bo przy kolejnym uruchomieni już ten skrót jest inny co świadczy, ze funkcja Md5 dostała inne dane wejściowe, w tym wypadku klucza instalacyjnego windows.

Może to ktoś z Was przetestować, bo sam ie mam Windows 7 wiec nie mogę przetestować :(

Pozdrawiam
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Cyfrowy Baron » czwartek, 17 lutego 2011, 17:31

Może to ktoś z Was przetestować, bo sam ie mam Windows 7 wiec nie mogę przetestować :(


A co konkretnie przetestować?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Darek_C++ » czwartek, 17 lutego 2011, 18:31

Czy odczytany w ten sposób jak w Twojej poradzie klucz nie zmienia wartości dla kolejnych uruchomień systemu w Windows 7
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Cyfrowy Baron » czwartek, 17 lutego 2011, 18:51

Klucz w poradzie jest pobierany z rejestru, więc nie może się zmieniać, nawet w systemie Windows 7, chyba, że Windows 7 przechowuje klucz w jakiś specjalny chroniony sposób, lub uniemożliwia użytkownikowi sprawdzenie tego klucza.
Być może problem dotyczy systemów Windows 7 x64, gdyż kod w poradzie pobiera dane z nazwy rejestru DigitalProductId podczas gdy 64-bitowa wersja Win7 przechowuje klucz w nazwie DigitalProductId64.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Darek_C++ » czwartek, 17 lutego 2011, 19:53

Jeśli problem wystąpi nie omieszkam dowiedzieć się czy był to 64 Bitowy system.
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Darek_C++ » piątek, 18 lutego 2011, 10:23

Potwierdziły się problemy dla systemu Windows 7 64 bity.
Z uwagi na to iż posiadam system XP nie mogę sam testować dla Windows 7 64bity zwracam się z prośbą do osób posiadających takowy system o przetestowanie porady http://programowanie.cal.pl/cyfbar/api3.html#api9 - co ta funkcja w tym systemie zwraca. Oraz dla klucza o jakim pisał CB DigitalProductId64.

Jak można rozpoznać czy system jest 32 czy 64 bitowy ?

-------------
Przy odczytywaniu danych z klucza rejestru "DigitalProductId64" w systemie 32 bity też zwracana jest wartość :(
------------
Jak odczytać dane które są unikalne dla danego komputera czyli taki jego odcisk palca :)
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Cyfrowy Baron » piątek, 18 lutego 2011, 12:26

Jak można rozpoznać czy system jest 32 czy 64 bitowy ?


O rozpoznawaniu systemów już było w tym poście: http://programowanie.cal.pl/forum/viewtopic.php?f=2&t=1174&p=8142&hilit#p8142

Ty poruszałeś już tą kwestię w tym wątku: http://programowanie.cal.pl/forum/viewtopic.php?f=2&t=1174&p=8142&hilit#p8149

Można to oczywiście uprościć:

KOD cpp:     UKRYJ  
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 SYSTEM_INFO si;
 PGNSI pGNSI = (PGNSI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")),
                                                      "GetNativeSystemInfo");

 if(pGNSI != NULL) pGNSI(&si);
 else GetSystemInfo(&si);

 switch(si.wProcessorArchitecture)
 {
  case PROCESSOR_ARCHITECTURE_INTEL: ShowMessage("Procesor 32-bitowy"); break;
  case PROCESSOR_ARCHITECTURE_AMD64: ShowMessage("Procesor 64-bitowy"); break;
  case PROCESSOR_ARCHITECTURE_IA64: ShowMessage("Procesor IPF"); break;
  case PROCESSOR_ARCHITECTURE_UNKNOWN: ShowMessage("Procesor nieznany"); break;
 }
}


Nie wiem czy zadziała w TurboC++.



Przy odczytywaniu danych z klucza rejestru "DigitalProductId64" w systemie 32 bity też zwracana jest wartość :(


Obydwa klucze rejestru występują zarówno w wersji 32 jak i 64-bitowej, ale tylko jeden jest właściwy dla danej wersji systemu.



Jak odczytać dane które są unikalne dla danego komputera czyli taki jego odcisk palca :)


Czyli np. co jest takie unikalne?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Darek_C++ » piątek, 18 lutego 2011, 12:29

Cyfrowy Baron napisał(a):Nie wiem czy zadziała w TurboC++.

Tak, działa przynajmniej na moim 32 bitowym XP


Cyfrowy Baron napisał(a):
Jak odczytać dane które są unikalne dla danego komputera czyli taki jego odcisk palca :)
Czyli np. co jest takie unikalne?

No właśnie o to pytam :)
- Może numer seryjny procesora?
- Numer Biosu ?
Coś co jestem wstanie odczytać z poziomu BCB Turbo C++
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Cyfrowy Baron » piątek, 18 lutego 2011, 14:42

W rejestrze zajrzyj do klucza: HKEY_LOCAL_MACHINE -> HARDWARE -> DESCRIPTION
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Darek_C++ » piątek, 18 lutego 2011, 14:59

Jest tam gałąź
- System -> CentralProcesor i w tym
- 0
-1
Obrazek
Tyko który klucz będzie unikalnym :roll:
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczytanie klucza OS dla Windows 7

Nowy postprzez Cyfrowy Baron » piątek, 18 lutego 2011, 16:10

Dla procesorów jednordzeniowych jest tylko klucz 0, a dla dwu rdzeniowych jest dodatkowo klucz 1, więc jeżeli już chcesz coś pobierać to z klucza 0, gdyż ten zawsze jest obecny.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Darek_C++
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości