All pastes #273934 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-12-10 07:21 UTC
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
	}
}