Corrections

N/A
This commit is contained in:
vxunderground 2021-11-12 22:37:46 -06:00
parent c3202c200a
commit 5d89d59361
18 changed files with 357 additions and 341 deletions

View File

@ -1,3 +1,9 @@
typedef struct _LSA_UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} LSA_UNICODE_STRING, * PLSA_UNICODE_STRING, UNICODE_STRING, * PUNICODE_STRING;
typedef struct _LDR_MODULE {
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;

View File

@ -0,0 +1,10 @@
DWORD Win32FromHResult(HRESULT Result)
{
if ((Result & 0xFFFF0000) == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, 0))
return HRESULT_CODE(Result);
if (Result == S_OK)
return ERROR_SUCCESS;
return ERROR_CAN_NOT_COMPLETE;
}

View File

@ -1,10 +1,10 @@
DWORD HashStringDjb2A(PCHAR String)
{
ULONG Hash = 5381;
INT c;
while (c = *String++)
Hash = ((Hash << 5) + Hash) + c;
return Hash;
}
DWORD HashStringDjb2A(PCHAR String)
{
ULONG Hash = 5381;
INT c;
while (c = *String++)
Hash = ((Hash << 5) + Hash) + c;
return Hash;
}

View File

@ -1,10 +1,10 @@
DWORD HashStringDjb2W(PWCHAR String)
{
ULONG Hash = 5381;
INT c;
while (c = *String++)
Hash = ((Hash << 5) + Hash) + c;
return Hash;
DWORD HashStringDjb2W(PWCHAR String)
{
ULONG Hash = 5381;
INT c;
while (c = *String++)
Hash = ((Hash << 5) + Hash) + c;
return Hash;
}

View File

@ -1,12 +1,12 @@
ULONG HashStringFowlerNollVoVariant1aA(PCHAR String)
{
ULONG Hash = 0x811c9dc5;
while (*String)
{
Hash ^= (UCHAR)*String++;
Hash *= 0x01000193;
}
return Hash;
ULONG HashStringFowlerNollVoVariant1aA(PCHAR String)
{
ULONG Hash = 0x811c9dc5;
while (*String)
{
Hash ^= (UCHAR)*String++;
Hash *= 0x01000193;
}
return Hash;
}

View File

@ -1,12 +1,12 @@
ULONG HashStringFowlerNollVoVariant1aW(PWCHAR String)
{
ULONG Hash = 0x811c9dc5;
while (*String)
{
Hash ^= (UCHAR)*String++;
Hash *= 0x01000193;
}
return Hash;
ULONG HashStringFowlerNollVoVariant1aW(PWCHAR String)
{
ULONG Hash = 0x811c9dc5;
while (*String)
{
Hash ^= (UCHAR)*String++;
Hash *= 0x01000193;
}
return Hash;
}

View File

@ -1,19 +1,19 @@
UINT32 HashStringJenkinsOneAtATime32BitA(PCHAR String)
{
SIZE_T Index = 0;
UINT32 Hash = 0;
SIZE_T Length = StringLengthA(String);
while (Index != Length)
{
Hash += String[Index++];
Hash += Hash << 10;
Hash ^= Hash >> 6;
}
Hash += Hash << 3;
Hash ^= Hash >> 11;
Hash += Hash << 15;
return Hash;
}
UINT32 HashStringJenkinsOneAtATime32BitA(PCHAR String)
{
SIZE_T Index = 0;
UINT32 Hash = 0;
SIZE_T Length = StringLengthA(String);
while (Index != Length)
{
Hash += String[Index++];
Hash += Hash << 10;
Hash ^= Hash >> 6;
}
Hash += Hash << 3;
Hash ^= Hash >> 11;
Hash += Hash << 15;
return Hash;
}

View File

@ -1,19 +1,19 @@
UINT32 HashStringJenkinsOneAtATime32BitW(PWCHAR String)
{
SIZE_T Index = 0;
UINT32 Hash = 0;
SIZE_T Length = StringLengthW(String);
while (Index != Length)
{
Hash += String[Index++];
Hash += Hash << 10;
Hash ^= Hash >> 6;
}
Hash += Hash << 3;
Hash ^= Hash >> 11;
Hash += Hash << 15;
return Hash;
UINT32 HashStringJenkinsOneAtATime32BitW(PWCHAR String)
{
SIZE_T Index = 0;
UINT32 Hash = 0;
SIZE_T Length = StringLengthW(String);
while (Index != Length)
{
Hash += String[Index++];
Hash += Hash << 10;
Hash ^= Hash >> 6;
}
Hash += Hash << 3;
Hash ^= Hash >> 11;
Hash += Hash << 15;
return Hash;
}

View File

@ -1,10 +1,10 @@
DWORD HashStringLoseLoseA(PCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash += c;
return Hash;
DWORD HashStringLoseLoseA(PCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash += c;
return Hash;
}

View File

@ -1,10 +1,10 @@
DWORD HashStringLoseLoseW(PWCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash += c;
return Hash;
DWORD HashStringLoseLoseW(PWCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash += c;
return Hash;
}

View File

@ -1,28 +1,28 @@
SIZE_T StringLengthA(LPCSTR String)
{
LPCSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringRotr32SubA(UINT32 Value, UINT Count)
{
DWORD Mask = (CHAR_BIT * sizeof(Value) - 1);
Count &= Mask;
#pragma warning( push )
#pragma warning( disable : 4146)
return (Value >> Count) | (Value << ((-Count) & Mask));
#pragma warning( pop )
}
INT HashStringRotr32A(PCHAR String)
{
INT Value = 0;
for (INT Index = 0; Index < StringLengthA(String); Index++)
Value = String[Index] + HashStringRotr32SubA(Value, 7);
return Value;
SIZE_T StringLengthA(LPCSTR String)
{
LPCSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringRotr32SubA(UINT32 Value, UINT Count)
{
DWORD Mask = (CHAR_BIT * sizeof(Value) - 1);
Count &= Mask;
#pragma warning( push )
#pragma warning( disable : 4146)
return (Value >> Count) | (Value << ((-Count) & Mask));
#pragma warning( pop )
}
INT HashStringRotr32A(PCHAR String)
{
INT Value = 0;
for (INT Index = 0; Index < StringLengthA(String); Index++)
Value = String[Index] + HashStringRotr32SubA(Value, 7);
return Value;
}

View File

@ -1,28 +1,28 @@
SIZE_T StringLengthW(LPCWSTR String)
{
LPCWSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringRotr32SubW(UINT32 Value, UINT Count)
{
DWORD Mask = (CHAR_BIT * sizeof(Value) - 1);
Count &= Mask;
#pragma warning( push )
#pragma warning( disable : 4146)
return (Value >> Count) | (Value << ((-Count) & Mask));
#pragma warning( pop )
}
INT HashStringRotr32W(PWCHAR String)
{
INT Value = 0;
for (INT Index = 0; Index < StringLengthW(String); Index++)
Value = String[Index] + HashStringRotr32SubW(Value, 7);
return Value;
SIZE_T StringLengthW(LPCWSTR String)
{
LPCWSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringRotr32SubW(UINT32 Value, UINT Count)
{
DWORD Mask = (CHAR_BIT * sizeof(Value) - 1);
Count &= Mask;
#pragma warning( push )
#pragma warning( disable : 4146)
return (Value >> Count) | (Value << ((-Count) & Mask));
#pragma warning( pop )
}
INT HashStringRotr32W(PWCHAR String)
{
INT Value = 0;
for (INT Index = 0; Index < StringLengthW(String); Index++)
Value = String[Index] + HashStringRotr32SubW(Value, 7);
return Value;
}

View File

@ -1,10 +1,10 @@
DWORD HashStringSdbmA(PCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash = c + (Hash << 6) + (Hash << 16) - Hash;
return Hash;
DWORD HashStringSdbmA(PCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash = c + (Hash << 6) + (Hash << 16) - Hash;
return Hash;
}

View File

@ -1,10 +1,10 @@
DWORD HashStringSdbmW(PWCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash = c + (Hash << 6) + (Hash << 16) - Hash;
return Hash;
}
DWORD HashStringSdbmW(PWCHAR String)
{
ULONG Hash = 0;
INT c;
while (c = *String++)
Hash = c + (Hash << 6) + (Hash << 16) - Hash;
return Hash;
}

View File

@ -1,69 +1,69 @@
#if !defined (Get16Bits)
#define Get16Bits(d) ((((UINT32)(((const UINT8*)(d))[1])) << 8)\
+(UINT32)(((const UINT8*)(d))[0]) )
#endif
SIZE_T StringLengthA(LPCSTR String)
{
LPCSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringSuperFastHashA(PCHAR String)
{
INT Length = 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;
#if !defined (Get16Bits)
#define Get16Bits(d) ((((UINT32)(((const UINT8*)(d))[1])) << 8)\
+(UINT32)(((const UINT8*)(d))[0]) )
#endif
SIZE_T StringLengthA(LPCSTR String)
{
LPCSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringSuperFastHashA(PCHAR String)
{
INT Length = 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;
}

View File

@ -1,69 +1,69 @@
#if !defined (Get16Bits)
#define Get16Bits(d) ((((UINT32)(((const UINT8*)(d))[1])) << 8)\
+(UINT32)(((const UINT8*)(d))[0]) )
#endif
SIZE_T StringLengthW(LPCWSTR String)
{
LPCWSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringSuperFastHashW(PWCHAR String)
{
INT Length = 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;
#if !defined (Get16Bits)
#define Get16Bits(d) ((((UINT32)(((const UINT8*)(d))[1])) << 8)\
+(UINT32)(((const UINT8*)(d))[0]) )
#endif
SIZE_T StringLengthW(LPCWSTR String)
{
LPCWSTR String2;
for (String2 = String; *String2; ++String2);
return (String2 - String);
}
UINT32 HashStringSuperFastHashW(PWCHAR String)
{
INT Length = 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;
}

View File

@ -1,19 +1,19 @@
INT HashStringUnknownGenericHashA(PCHAR String)
{
PCHAR Pointer;
INT Generic;
INT Hash = 0;
for (Pointer = String; *Pointer != '\0'; Pointer++)
{
Hash = (Hash << 4) + (INT)(*Pointer);
Generic = Hash & 0xF0000000L;
if (Generic != 0)
Hash = Hash ^ (Generic >> 24);
Hash = Hash &~ Generic;
}
return Hash;
INT HashStringUnknownGenericHashA(PCHAR String)
{
PCHAR Pointer;
INT Generic;
INT Hash = 0;
for (Pointer = String; *Pointer != '\0'; Pointer++)
{
Hash = (Hash << 4) + (INT)(*Pointer);
Generic = Hash & 0xF0000000L;
if (Generic != 0)
Hash = Hash ^ (Generic >> 24);
Hash = Hash &~ Generic;
}
return Hash;
}

View File

@ -1,19 +1,19 @@
INT HashStringUnknownGenericHashW(PWCHAR String)
{
PWCHAR Pointer;
INT Generic;
INT Hash = 0;
for (Pointer = String; *Pointer != '\0'; Pointer++)
{
Hash = (Hash << 4) + (INT)(*Pointer);
Generic = Hash & 0xF0000000L;
if (Generic != 0)
Hash = Hash ^ (Generic >> 24);
Hash = Hash &~ Generic;
}
return Hash;
INT HashStringUnknownGenericHashW(PWCHAR String)
{
PWCHAR Pointer;
INT Generic;
INT Hash = 0;
for (Pointer = String; *Pointer != '\0'; Pointer++)
{
Hash = (Hash << 4) + (INT)(*Pointer);
Generic = Hash & 0xF0000000L;
if (Generic != 0)
Hash = Hash ^ (Generic >> 24);
Hash = Hash &~ Generic;
}
return Hash;
}