Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char* __stdcall chksum_md5(char* stringforhash )
- {
- //msdn
- int di;
- HCRYPTPROV Provider = 0;
- ::CryptAcquireContext(&Provider,NULL,MS_DEF_PROV,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT);
- HCRYPTHASH Hash = 0;
- ::CryptCreateHash(Provider,CALG_MD5,0,0,&Hash);
- ::CryptHashData(Hash,(unsigned char*)stringforhash,strlen(stringforhash), 0);
- unsigned char digest2[16];
- unsigned long size = sizeof(digest2);
- ::CryptGetHashParam(Hash, HP_HASHVAL, digest2, &size, 0);
- ::CryptDestroyHash(Hash);
- ::CryptReleaseContext(Provider, 0);
- char* hex_output = new char[33];
- for( di = 0; di < 16; di++ )
- ::sprintf(hex_output + di * 2,"%02x", digest2[di]);
- return hex_output;
- }
- unsigned long __stdcall chksum_crc32(char* stringforhash)
- {
- //mattdog
- unsigned long* crctable = new unsigned long[256];
- unsigned long dwCrc32 = 0xFFFFFFFF;
- unsigned long dwPolynomial = 0x3369952F;
- __asm xor dwPolynomial, 0xDED1160F;
- unsigned long x = 0;
- for( int i = 0; i < 256; i++)
- {
- x = i;
- for( int j = 8; j > 0; j--)
- {
- if(x & 1) x = (x >> 1) ^ dwPolynomial;
- else x >>= 1;
- }
- crctable[i] = x;
- }
- while( *stringforhash )
- {
- dwCrc32 = ((dwCrc32) >> 8) ^ crctable[*stringforhash ^ ((dwCrc32) & 0xFF)];
- stringforhash++;
- }
- delete crctable;
- return ~dwCrc32;
- }
- unsigned long __stdcall current_hwid(void)
- {
- //czkb :O
- char* make_final_md5 = new char[1024];
- char* main_variable = new char[0x400];
- GetEnvironmentVariableA("USERNAME",main_variable,0x400);
- sprintf(make_final_md5,"%s",chksum_md5(main_variable));
- GetEnvironmentVariableA("USERDOMAIN",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("COMPUTERNAME",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("LOGONSERVER",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("HOMEPATH",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("APPDATA",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("CommonProgramFiles",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("ProgramFiles",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("ALLUSERSPROFILE",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("SYSTEMROOT",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("TEMP",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("TMP",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("ComSpec",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("FP_NO_HOST_CHECK",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("NUMBER_OF_PROCESSORS",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("OS",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("PATHEXT",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("PROCESSOR_ARCHITECTURE",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("PROCESSOR_IDENTIFIER",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("PROCESSOR_LEVEL",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- GetEnvironmentVariableA("PROCESSOR_REVISION",main_variable,0x400);
- strcat(make_final_md5,chksum_md5(main_variable));
- main_variable[0] = 0;
- DWORD hardwareid = 0xFFFFFFFF;
- ::sprintf(main_variable,"%s",chksum_md5(make_final_md5));
- hardwareid = chksum_crc32(main_variable);
- delete make_final_md5;
- delete main_variable;
- make_final_md5 = NULL;
- main_variable = NULL;
- return hardwareid;
- }
Advertisement
Add Comment
Please, Sign In to add comment