HWID Check in c++

09/13/2014 22:07 Terrat#1
Hey,
könnte mir wer erklären wie ein HWID check funkt:

Folgender code funkt auch (Feher er sollte ja dan net funken)
Code:
if (_reason == DLL_PROCESS_ATTACH)
	{
		
		HW_PROFILE_INFO hwProfileInfo;


		if(GetCurrentHwProfile(&hwProfileInfo) != NULL){
			char *cHWID = "{846ee340-7039-11de-9d20-806e6f6e6963}";
			char *cHWID2 = hwProfileInfo.szHwProfileGuid;
			MessageBox(0,cHWID2,cHWID,0);


			printf("Hardware GUID: %s\n", hwProfileInfo.szHwProfileGuid);
			printf("Hardware Profile: %s\n", hwProfileInfo.szHwProfileName);

			//if(strcmp(hwProfileInfo.szHwProfileGuid, cHWID)){
			if(mystrcmp(cHWID2, cHWID)){
				MessageBoxA(0,"HWID Checked","",0);
				printf("Hardware ID check passed.\n");
			}else{
				HGLOBAL hText;
				char *pText;
				hText = GlobalAlloc(GMEM_DDESHARE|GMEM_MOVEABLE, 100);
				pText = (char*)GlobalLock(hText);
				strcpy(pText, hwProfileInfo.szHwProfileGuid);
				GlobalUnlock(hText);
 
				OpenClipboard(NULL);
				EmptyClipboard();
				SetClipboardData(CF_TEXT, hText);
				CloseClipboard();
				MessageBoxA(0, TEXT("HWID detection failed !!!\n HWID copyied to Clipboard! \n Bye"),"Information",0);

			}
		}else{
			return 0;
		}
			
	}
09/14/2014 11:15 info.student#2
Hier fehlt leider die komplette Implementierung zur Klasse "HW_PROFILE_INFO". Also daher nicht möglich zu erklären.
09/14/2014 11:26 snow#3
^das ist ein Struct, dessen Mitglieder du dir im MSDN anschauen kannst.

Wie ist mystrcmp implementiert und warum nimmst du nicht std::string::operator== dafür?
Bei einem HWID Check sendet man die HWID an einen Server, der überprüft, ob diese bereits eingetragen ist und sendet sein okay, wenn dem so ist. Mit einer statischen HWID im Programm erreichst du nichts.
09/15/2014 01:22 Requi#4
Quote:
Originally Posted by Dreamsläps View Post
Es soll ja "nur einsitig" sein da ich nur will das wen ich manchen kollege diese dll schicke (die geben mir vorher ihre hwid und ich compile das mit ihrer) sie diese net weiter schicken können
Wäre es nicht einfacher, einfach einen Http Request an einen Free Webspace Host zu schicken, auf der eine Datei liegt, die eine Liste überprüft ob die übergebene HWID, eingetragen ist?

Get HWID => HttpRequest @ [Only registered and activated users can see links. Click Here To Register...] => PHP Datei überprüft Text Datei, ob die HWID dort eingetragen ist und returned gegebenfalls true => Du musst nicht dauernd neu kompilieren und es ist immer noch privat.
09/15/2014 06:47 Requi#5
Das wird wohl höchstwahrscheinlich an der string compare methode liegen. Vielleicht solltest du zeigen, was die Funktion genau macht. Komm jetzt aber bitte nicht mit, sie vergleicht 2 Strings, sondern zeig Code.
09/15/2014 08:24 ƬheGame#6
Quote:
Originally Posted by Dreamsläps View Post
Es soll ja "nur einsitig" sein da ich nur will das wen ich manchen kollege diese dll schicke (die geben mir vorher ihre hwid und ich compile das mit ihrer) sie diese net weiter schicken können
2min arbeit das zu umgehen xD Es lohnt sich nicht wirklich einen Schutz einzubauen da es immer ein vielfaches weniger an Zeit brauchen wird ihn zu umgehen.
09/15/2014 14:03 Terrat#7
Quote:
Originally Posted by ƬheGame View Post
2min arbeit das zu umgehen xD Es lohnt sich nicht wirklich einen Schutz einzubauen da es immer ein vielfaches weniger an Zeit brauchen wirt ihn zu umgehen.
Xd aber ne http anfrage ? Mit whireshark packet abfangen in host datei ip unleiten wo der billig au3 servercrack ist.
Trotzdem möchte ich jetzt bitte wissen was am code falsch ist .
09/15/2014 14:17 ƬheGame#8
Quote:
Originally Posted by Dreamsläps View Post
Xd aber ne http anfrage ? Mit whireshark packet abfangen in host datei ip unleiten wo der billig au3 servercrack ist.
Trotzdem möchte ich jetzt bitte wissen was am code falsch ist .
Habe niemals zu ner http anfragen geraten... Das ist genauso sinnlos.
Ohne den Vollständigen code (eine Funktion fehlt so wie ich das sehe) und den compiler error falls es einen gibt kann ich dir nicht weiterhelfen. Wo bleibt es beim debuggen hängen? Kannst du ja step by step durchgehen.
09/15/2014 15:49 Omdi#9
Immer schön die [Only registered and activated users can see links. Click Here To Register...] lesen ;)

Quote:
Returns an integral value indicating the relationship between the strings:
<0 the first character that does not match has a lower value in ptr1 than in ptr2
0 the contents of both strings are equal
>0 the first character that does not match has a greater value in ptr1 than in ptr2
Code:
			if(strcmp(cHWID2, cHWID) == 0){
				MessageBoxA(0,"HWID Checked","",0);
				printf("Hardware ID check passed.\n");
			}else{
				HGLOBAL hText;
				char *pText;
				hText = GlobalAlloc(GMEM_DDESHARE|GMEM_MOVEABLE, 100);
				pText = (char*)GlobalLock(hText);
				strcpy(pText, hwProfileInfo.szHwProfileGuid);
				GlobalUnlock(hText);
 
				OpenClipboard(NULL);
				EmptyClipboard();
				SetClipboardData(CF_TEXT, hText);
				CloseClipboard();
				MessageBoxA(0, TEXT("HWID detection failed !!!\n HWID copyied to Clipboard! \n Bye"),"Information",0);

			}
09/15/2014 17:21 Terrat#10
Quote:
Originally Posted by Omdihar View Post
Immer schön die [Only registered and activated users can see links. Click Here To Register...] lesen ;)



Code:
			if(strcmp(cHWID2, cHWID) == 0){
				MessageBoxA(0,"HWID Checked","",0);
				printf("Hardware ID check passed.\n");
			}else{
				HGLOBAL hText;
				char *pText;
				hText = GlobalAlloc(GMEM_DDESHARE|GMEM_MOVEABLE, 100);
				pText = (char*)GlobalLock(hText);
				strcpy(pText, hwProfileInfo.szHwProfileGuid);
				GlobalUnlock(hText);
 
				OpenClipboard(NULL);
				EmptyClipboard();
				SetClipboardData(CF_TEXT, hText);
				CloseClipboard();
				MessageBoxA(0, TEXT("HWID detection failed !!!\n HWID copyied to Clipboard! \n Bye"),"Information",0);

			}
Made my day *-*
07/06/2018 10:10 1234hans#11
Auch wenn dieses Thema relativ outdated ist, möchte ich nur erwähnen, dass szHWProfileGuid bei win 7 / 8 immer das gleiche sein wird.