124 lines · 2.0 KB · C++
RawDownload
/*  name      Vx Api  type      trojan  cve       —  year      unknown  os        Windows  authors   unknown  source    krisyotam  archived  krisyotam (2026)  notes     — */#include "Win32Helper.h" UINT32 HashStringSuperFastHashA(_In_ LPCSTR String){	INT Length = (INT)StringLengthA(String);	UINT32 Hash = Length;	INT Tmp = 0; 	INT Rem = Length & 3;	Length >>= 2; 	for (; Length > 0; Length--)	{		Hash += Get16Bits(String);		Tmp = (Get16Bits(String + 2) << 11) ^ Hash;		Hash = (Hash << 16) ^ Tmp;#pragma warning( push )#pragma warning( disable : 6305)		String += 2 * sizeof(UINT16);#pragma warning( pop ) 		Hash += Hash >> 11;	} 	switch (Rem)	{	case 3:	{		Hash += Get16Bits(String);		Hash ^= Hash << 16;		Hash ^= ((UCHAR)String[sizeof(UINT16)]) << 18;		Hash += Hash >> 11;		break;	}	case 2:	{		Hash += Get16Bits(String);		Hash ^= Hash << 11;		Hash ^= Hash >> 17;		break;	}	case 1:	{		Hash += (UCHAR)*String;		Hash ^= Hash << 10;		Hash += Hash >> 1;	}	} 	Hash ^= Hash << 3;	Hash += Hash >> 5;	Hash ^= Hash << 4;	Hash += Hash >> 17;	Hash ^= Hash << 25;	Hash += Hash >> 6; 	return Hash;} UINT32 HashStringSuperFastHashW(_In_ LPCWSTR String){	INT Length = (INT)StringLengthW(String);	UINT32 Hash = Length;	INT Tmp = 0; 	INT Rem = Length & 3;	Length >>= 2; 	for (; Length > 0; Length--)	{		Hash += Get16Bits(String);		Tmp = (Get16Bits(String + 2) << 11) ^ Hash;		Hash = (Hash << 16) ^ Tmp;#pragma warning( push )#pragma warning( disable : 6305)		String += 2 * sizeof(UINT16);#pragma warning( pop ) 		Hash += Hash >> 11;	} 	switch (Rem)	{	case 3:	{		Hash += Get16Bits(String);		Hash ^= Hash << 16;		Hash ^= ((UCHAR)String[sizeof(UINT16)]) << 18;		Hash += Hash >> 11;		break;	}	case 2:	{		Hash += Get16Bits(String);		Hash ^= Hash << 11;		Hash ^= Hash >> 17;		break;	}	case 1:	{		Hash += (UCHAR)*String;		Hash ^= Hash << 10;		Hash += Hash >> 1;	}	} 	Hash ^= Hash << 3;	Hash += Hash >> 5;	Hash ^= Hash << 4;	Hash += Hash >> 17;	Hash ^= Hash << 25;	Hash += Hash >> 6; 	return Hash;}