rendered paste body#include <windows.h>
const int nBackupCnt = 293;
DWORD dwBackupList[293] = {
0x00401000, 0x00451D1C, 0x00451D9B, 0x0045FDB0, 0x00482B11, 0x00482EDC, 0x00482FBA, 0x00486A8C, 0x00486B54, 0x00489B6E, 0x0048A81D, 0x004AEE8A, 0x004AEF2F, 0x004AEF6B, 0x0052C760,
0x0052CE72, 0x00540496, 0x005410B9, 0x0055C76D, 0x0055C838, 0x00583210, 0x0058322A, 0x005832D3, 0x005832E5, 0x005835B4, 0x005835CB, 0x005835E2, 0x005835F9, 0x00583610, 0x00583627, 0x0058363E,
0x00583655, 0x0058366C, 0x00583683, 0x0058369A, 0x005836B1, 0x005836C8, 0x005836DF, 0x005836F6, 0x0058370E, 0x005838BB, 0x00584848, 0x005C892A, 0x005C904C, 0x0064D352, 0x006512B7, 0x006512C4,
0x006B2EC4, 0x006B2F06, 0x006B2FF8, 0x006B3ED7, 0x006B45A8, 0x006B45BA, 0x006B45DE, 0x006B45F0, 0x006B4608, 0x006B4614, 0x006B4626, 0x006B4638, 0x006B4644, 0x006B4662, 0x006B466E, 0x006B467A,
0x006B486A, 0x006B48A9, 0x006B4911, 0x006B4960, 0x006B49B1, 0x006B49DA, 0x006B625E, 0x006B630B, 0x006B6317, 0x006B636E, 0x006B6475, 0x006B6632, 0x006B674A, 0x006B6918, 0x006B695B, 0x006B6A27,
0x006B6A48, 0x006B6CFD, 0x006B6F52, 0x006B6FDF, 0x006B6FF3, 0x006B7801, 0x006B791D, 0x006B7944, 0x006B7967, 0x006B7986, 0x006B79AB, 0x006B7A05, 0x006B7A4D, 0x006B7D37, 0x006B7EDA, 0x006B7FE2,
0x006B80E5, 0x006B820A, 0x006B8684, 0x006B86B7, 0x006B87D1, 0x006B87FE, 0x006B881C, 0x006B8970, 0x006B8983, 0x006B8A1F, 0x006B8A80, 0x006B8A93, 0x006B8B1C, 0x006B8B57, 0x006B8F72, 0x006B8FF0,
0x006B9040, 0x006B90AF, 0x006B921A, 0x006B938E, 0x006B93AD, 0x006B9532, 0x006B9700, 0x006B9806, 0x006B9C38, 0x006B9F62, 0x006B9F99, 0x006B9FA4, 0x006BA0BC, 0x006BA2E4, 0x006BA335, 0x006BA485,
0x006BA5B1, 0x006BA6F4, 0x006BA7BE, 0x006BA866, 0x006BA9E1, 0x006BB0AF, 0x006BB0BF, 0x006BB161, 0x006BB220, 0x006BB261, 0x006BB2A7, 0x006BB2E9, 0x006BB310, 0x006BB321, 0x006BB339, 0x006BB499,
0x006BB50A, 0x006BB519, 0x006BB52A, 0x006BB5DC, 0x006BB652, 0x006BB6CC, 0x006BB7E8, 0x006BBAE3, 0x006BBBA7, 0x006BBCE3, 0x006BBD5A, 0x006BBDD0, 0x006BBF81, 0x006BBFA7, 0x006BBFE7, 0x006BC036,
0x006BC04A, 0x006BC076, 0x006BC0A1, 0x006BC0C4, 0x006BC0EF, 0x006BC1B5, 0x006BC2F2, 0x006BC318, 0x006BC32C, 0x006BC35E, 0x006BC384, 0x006BC39A, 0x006BC3CC, 0x006BC467, 0x006BC4D5, 0x006BC614,
0x006BC63A, 0x006BC64E, 0x006BC67F, 0x006BC6A5, 0x006BC6C0, 0x006BC6F4, 0x006BCE56, 0x006BCF58, 0x006BD01B, 0x006BD1B5, 0x006BD1CE, 0x006BD1FB, 0x006BD237, 0x006BD250, 0x006BD278, 0x006BD322,
0x006BD343, 0x006BD3AB, 0x006BD3CD, 0x006BD411, 0x006BD423, 0x006BD4B8, 0x006BD4E5, 0x006BD7AC, 0x006BD81C, 0x006BD9D4, 0x006BDA4D, 0x006BDA58, 0x006BDBE2, 0x006BDBED, 0x006C1B48, 0x006C2213,
0x006C26E3, 0x006C2DDB, 0x006C43D6, 0x006C4863, 0x006C488E, 0x006C48B1, 0x006C534D, 0x006C53A2, 0x006C5940, 0x006C6201, 0x006C628C, 0x006C6354, 0x006C6E61, 0x006C6E71, 0x006C7AF1, 0x006C7B68,
0x006C7BC8, 0x006C8A69, 0x006C8AA2, 0x006C8B02, 0x006CA743, 0x006CA8B9, 0x006CA8CE, 0x006CA959, 0x006CAC52, 0x006CAC9B, 0x006CC5BB, 0x006CC5E4, 0x006CC92D, 0x006CC99E, 0x006CCA49, 0x006CCAAC,
0x006CCABA, 0x006CCAF1, 0x006CCBF6, 0x006CCCD3, 0x006CCFE5, 0x006CD0D4, 0x006CD12A, 0x006CD407, 0x006CD423, 0x006CD43B, 0x006CD7A3, 0x006CD808, 0x006CE8FA, 0x006CE92E, 0x006CF48F, 0x006CF784,
0x006CF79A, 0x006CF8DB, 0x006CFB3F, 0x006CFC33, 0x006CFCD9, 0x006CFFA0, 0x006D00CE, 0x006D0750, 0x006D0D87, 0x006D11C1, 0x006D1240, 0x006D12D0, 0x006D328A, 0x006D3A65, 0x006D3D76, 0x006D3F10,
0x006D3F3A, 0x006D3F58, 0x006D3F76, 0x006D3F94, 0x006D3FCA, 0x006D3FE2, 0x006D4012, 0x006D402A, 0x006D4060, 0x006D4084, 0x006D4096, 0x006D40A8, 0x006D40D2, 0x006D40F6, 0x006D410E, 0x006D4138,
0x006D414A, 0x006D4162, 0x006D417A, 0x006D41BC, 0x006D4204, 0x00710390, };
DWORD dwSizeList[293] = {
0x00050D16, 0x00000079, 0x0000E00F, 0x00022D5B, 0x000003C5, 0x000000D8, 0x00003ACC, 0x000000C2, 0x00003014, 0x00000CA9, 0x00024667, 0x0000009F, 0x00000036, 0x0007D7EF, 0x0000070C,
0x0001361E, 0x00000C1D, 0x0001B6AE, 0x000000C6, 0x000269D2, 0x00000014, 0x000000A3, 0x0000000C, 0x000002C9, 0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000011,
0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000011, 0x00000012, 0x000001A7, 0x00000F87, 0x000440DC, 0x0000071C, 0x00084300, 0x00003F5F, 0x00000007, 0x00061BFA,
0x0000003C, 0x000000EC, 0x00000ED9, 0x000006CB, 0x0000000C, 0x00000006, 0x0000000C, 0x00000012, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000018, 0x00000006, 0x00000006, 0x000001EA,
0x00000039, 0x00000062, 0x00000049, 0x0000004B, 0x00000023, 0x00001875, 0x000000A7, 0x00000006, 0x00000051, 0x00000101, 0x000001B7, 0x00000112, 0x000001C8, 0x0000003D, 0x000000C6, 0x0000001B,
0x000002AF, 0x0000024F, 0x00000087, 0x0000000E, 0x00000808, 0x00000116, 0x00000021, 0x0000001D, 0x00000019, 0x0000001F, 0x00000054, 0x00000042, 0x000002DB, 0x0000019D, 0x00000102, 0x000000FD,
0x0000011F, 0x00000474, 0x0000002D, 0x00000114, 0x00000027, 0x00000018, 0x0000014E, 0x0000000D, 0x00000096, 0x0000005B, 0x0000000D, 0x00000083, 0x00000035, 0x00000415, 0x00000078, 0x0000004A,
0x00000069, 0x0000015C, 0x0000016E, 0x00000019, 0x0000017F, 0x000001C8, 0x00000100, 0x0000042C, 0x00000324, 0x00000031, 0x00000005, 0x00000112, 0x00000222, 0x0000004B, 0x0000014A, 0x00000126,
0x0000013D, 0x000000C4, 0x000000A2, 0x00000175, 0x000006C8, 0x0000000A, 0x0000009C, 0x000000B9, 0x0000003B, 0x00000040, 0x0000003C, 0x00000021, 0x0000000B, 0x00000012, 0x0000015A, 0x0000006B,
0x00000009, 0x0000000B, 0x000000AC, 0x00000069, 0x00000074, 0x00000116, 0x000002F5, 0x000000BE, 0x00000136, 0x00000071, 0x00000070, 0x000001AB, 0x00000020, 0x0000003A, 0x00000049, 0x0000000E,
0x00000026, 0x00000025, 0x0000001D, 0x00000025, 0x000000C0, 0x00000137, 0x00000020, 0x0000000E, 0x0000002C, 0x00000020, 0x00000010, 0x0000002C, 0x00000087, 0x00000068, 0x00000139, 0x00000020,
0x0000000E, 0x0000002B, 0x00000020, 0x00000015, 0x0000002E, 0x0000075C, 0x000000FC, 0x000000BD, 0x00000194, 0x00000013, 0x00000027, 0x00000036, 0x00000013, 0x00000022, 0x000000A4, 0x0000001B,
0x00000062, 0x0000001C, 0x0000003E, 0x0000000C, 0x0000008F, 0x00000027, 0x000002C1, 0x0000006A, 0x000001B2, 0x00000073, 0x00000005, 0x00000184, 0x00000005, 0x00003F55, 0x000006AC, 0x0000047D,
0x0000067D, 0x000015EE, 0x00000487, 0x00000025, 0x0000001D, 0x00000A96, 0x0000004F, 0x00000598, 0x000008BB, 0x00000085, 0x000000BC, 0x00000B07, 0x0000000A, 0x00000C7A, 0x00000071, 0x0000005A,
0x00000E9B, 0x00000033, 0x0000005A, 0x00001C3B, 0x00000170, 0x0000000F, 0x00000085, 0x000002F3, 0x00000043, 0x0000180F, 0x00000023, 0x00000343, 0x0000006B, 0x000000A5, 0x0000005D, 0x00000008,
0x00000031, 0x000000FF, 0x000000D0, 0x0000030C, 0x000000E9, 0x00000050, 0x000002D7, 0x00000016, 0x00000012, 0x00000362, 0x0000005F, 0x000010EC, 0x0000002E, 0x00000B5B, 0x000002EF, 0x00000010,
0x0000013B, 0x0000025E, 0x000000EE, 0x000000A0, 0x000002C1, 0x00000128, 0x0000067C, 0x00000631, 0x00000434, 0x00000079, 0x0000008A, 0x00001FB4, 0x000007D5, 0x0000030B, 0x00000170, 0x00000018,
0x00000006, 0x00000006, 0x0000000C, 0x0000000C, 0x00000006, 0x00000018, 0x0000000C, 0x00000006, 0x00000012, 0x00000006, 0x0000000C, 0x0000001E, 0x0000000C, 0x00000012, 0x00000012, 0x00000006,
0x00000006, 0x00000012, 0x0000000C, 0x00000006, 0x0003BDFC, 0x0000B118, };
const char *szDisclaimer = "Created 2006 by JD Astridge, for private usage only";
void *lpNewList[293];
DWORD dwRet = 0x45d3b0;
DWORD dwRet2 = 0x45d541; // the jb
DWORD dwTemp;
void MyHashFunc(void);
void CRC_InstallHook(void)
{
for (int i = 0; i < nBackupCnt; i++)
{
lpNewList[i] = new BYTE [dwSizeList[i]];
if (!IsBadReadPtr((void *)dwBackupList[i], dwSizeList[i]))
memcpy(lpNewList[i], (void *)dwBackupList[i], dwSizeList[i]);
}
int dwJmp = (int)((int)MyHashFunc - (int)0x0045D3AA) - 5;
*(BYTE *)0x0045D3AA = 0xE9;
*(DWORD *)0x0045D3AB= (DWORD)dwJmp;
*(BYTE *)0x0045D3AF = 0x90;
}
void CRC_Cleanup(void)
{
for (int i = 0; i < nBackupCnt; i++)
{
if (lpNewList[i] != NULL)
delete [] lpNewList[i];
}
}
void __declspec(naked) MyHashFunc(void)
{
_asm
{
push ebx
push edx
push eax
mov dwTemp, ecx
xor ecx, ecx
//call RecordIt
LoopStart:
cmp ecx, nBackupCnt
jae LoopEnd
mov edx, dwTemp
cmp edx, [ecx*4+dwBackupList]
jne NoMatch
mov ebx, [ecx*4+lpNewList]
mov dwTemp, ebx
jmp LoopEnd
NoMatch:
inc ecx
jmp LoopStart
LoopEnd:
pop eax
pop edx
pop ebx
mov ecx, dwTemp
cmp edi, 10h
jae FuckRet
jmp dwRet2
FuckRet:
jmp dwRet
}
}