魔兽(1.20E 1.24B 1.24E)作弊内存地址全公开
随着魔兽的普及,研究魔兽的玩家更是此起彼伏,有不少程序员也加入研究行列,随之而来的就是市场上会出现各式各样的魔兽全图,从长远来看,会对反作弊系统进行一次大冲击.下面大家来看看是如何实现开图的(其实只是一些判断句)BOOL HackOn_120E()
{
DWORD GameAddr=(DWORD)GetModuleHandle(L”game.dll”);
DWORD oldpro;
BYTE _data;
BYTE*p=b120E;
VirtualProtect((LPVOID)(GameAddr+0×01000),0×704000,PAGE_EXECUTE_READWRITE,&oldpro);
///////////////////////////////////////////////////大地图去除迷雾
if(*p++)
{
patch(0x406B53,”\x90\x8B\x09″);
}
///////////////////////////////////////////////////大地图显示单位
if(*p++)
{
patch(0x2A0930,”\xD2″);
}
///////////////////////////////////////////////////大地图显示隐形
if(*p++)
{
patch(0x17D4C2,”\x90\x90″);
patch(0x17D4CC,”\xEB\x00\xEB\x00\x75\x30″);
}
///////////////////////////////////////////////////////分辨幻影
if(*p++)
{
patch(0x1ACFFC,”\x40\xC3″);
}
///////////////////////////////////////////////////////显示神符
if(*p++)
{
patch(0x2A07C5,”\x49\x4B\x33\xDB\x33\xC9″);
}
///////////////////////////////////////////////////小地图去除迷雾
if(*p++)
{
patch(0x147C53,”\xEC”);
}
//////////////////////////////////////////////////////显示单位
if(*p++)
{
patch(0x1491A8, “\x00″);
}
/////////////////////////////////////////////////////显示隐形
if(*p++)
{
patch(0x1494E0,”\x33\xC0\x0F\x85″);
}
////////////////////////////////////////////////////敌方信号
if(*p++)
{
patch(0x321CC4,”\x39\xC0\x0F\x85″);
patch(0x321CD7,”\x39\xC0\x75″);
}
//////////////////////////////////////////////////他人提示
if(*p++)
{
patch(0x124DDD,”\x39\xC0\x0F\x85″);
}
/////////////////////////////////////////////////显示敌方头像
if(*p++)
{
patch(0x137BA5,”\xE7\x7D”);
patch(0x137BAC,”\x85\xA3\x02\x00\x00\xEB\xCE\x90\x90\x90\x90″);
}
//////////////////////////////////////////////////盟友头像
if(*p++)
{
patch(0x137BA5,”\xE7\x7D”);
patch(0x137BB1,”\xEB\xCE\x90\x90\x90\x90″);
}
//////////////////////////////////////////////数字显攻速
if(*p++)
{
patch(0x802E67,”\x32″);
patch(0x13BA61,”\x90\xD9\x45\x08\x83\xEC\x08\xDD\x1C\x24\x68″);
DWORD tmp=0x802E64+GameAddr;
memcpy(LPVOID(GameAddr+0x13BA6C),&tmp,4);
patch(0x13BA70,”\x8D\x55\xA0\x6A\x7F\x52\xE8\x27\x7E\x25\x00\x83\xC4\x14\x6A\x7F\x8D\x45\xA0\x50″);
}
/////////////////////////////////////////////数字显移速
if(*p++)
{
patch(0x802E67,”\x32″);
patch(0x13C3F2,”\x90\xD9\x45\x08\x83\xEC\x08\xDD\x1C\x24\x68″);
DWORD tmp=0x802E64+GameAddr;
memcpy(LPVOID(GameAddr+0x13C3FD),&tmp,4);
patch(0x13C401,”\x8D\x55\x98\x6A\x7F\x52\xE8\x96\x74\x25\x00\x83\xC4\x14\x6A\x7F\x8D\x45\x98\x50″);
}
//////////////////////////////////////////////资源面板
if(*p++)
{
patch(0x13EF03,”\xEB”);
}
/////////////////////////////////////////////允许交易
if(*p++)
{
patch(0x127B3D,”\x40\xB8\x64″);
}
//////////////////////////////////////////////显示技能
if(*p++)
{
patch(0x12DC1A,”\x33″);
patch(0x12DC1B,”\xC0″);
patch(0x12DC5A,”\x33″);
patch(0x12DC5B,”\xC0″);
patch(0x1BFABE,”\xEB”);
patch(0x442CC0,”\x90″);
patch(0x442CC1,”\x40″);
patch(0x442CC2,”\x30″);
patch(0x442CC3,”\xC0″);
patch(0x442CC4,”\x90″);
patch(0x442CC5,”\x90″);
patch(0×443375,”\x30″);
patch(0×443376,”\xC0″);
patch(0x45A641,”\x90″);
patch(0x45A642,”\x90″);
patch(0x45A643,”\x33″);
patch(0x45A644,”\xC0″);
patch(0x45A645,”\x90″);
patch(0x45A646,”\x90″);
patch(0x45E79E,”\x90″);
patch(0x45E79F,”\x90″);
patch(0x45E7A0,”\x33″);
patch(0x45E7A1,”\xC0″);
patch(0x45E7A2,”\x90″);
patch(0x45E7A3,”\x90″);
patch(0×466527,”\x90″);
patch(0×466528,”\x90″);
patch(0x46B258,”\x90″);
patch(0x46B259,”\x33″);
patch(0x46B25A,”\xC0″);
patch(0x46B25B,”\x90″);
patch(0x46B25C,”\x90″);
patch(0x46B25D,”\x90″);
patch(0x4A11A0,”\x33″);
patch(0x4A11A1,”\xC0″);
patch(0x54C0BF,”\x90″);
patch(0x54C0C0,”\x33″);
patch(0x54C0C1,”\xC0″);
patch(0x54C0C2,”\x90″);
patch(0x54C0C3,”\x90″);
patch(0x54C0C4,”\x90″);
patch(0x5573FE,”\x90″);
patch(0x5573FF,”\x90″);
patch(0×557400,”\x90″);
patch(0×557401,”\x90″);
patch(0×557402,”\x90″);
patch(0×557403,”\x90″);
patch(0x55E15C,”\x90″);
patch(0x55E15D,”\x90″);
}
///////////////////////////////////////////////资源条
if(*p++)
{
patch(0×150981,”\xEB\x02″);
patch(0x1509FE,”\xEB\x02″);
patch(0×151597,”\xEB\x02″);
patch(0×151647,”\xEB\x02″);
patch(0×151748,”\xEB\x02″);
patch(0x1BED19,”\xEB\x02″);
patch(0x314A9E,”\xEB\x02″);
patch(0x21EAD4,”\xEB”);
patch(0x21EAE8,”\x03″);
}
/////////////////////////////////////////////////野外显血
if(*p++)
{
patch(0x166E5E,”\x90\x90\x90\x90\x90\x90\x90\x90″);
patch(0x16FE0A,”\x33\xC0\x90\x90″);
}
////////////////////////////////////////////////视野外点选
if(*p++)
{
patch(0x1BD5A7,”\x90\x90″);
patch(0x1BD5BB,”\xEB”);
}
/////////////////////////////////////////////////无限取消
if(*p++)
{
patch(0x23D60F,”\xEB”);
patch(0x21EAD4,”\x03″);
patch(0x21EAE8,”\x03″);
}
//////////////////////////////////////////////////过-MH
if(*p++)
{
patch(0x2C5A7E,”\x90\x90″);
}
/////////////////////////////////////////反-AH
if(*p++)
{
patch(0x2C240C,”\x3C\x4C\x74\x04\xB0\xFF\xEB\x04\xB0\xB0\x90\x90″);
patch(0x2D34ED,”\xE9\xB3\x00\x00\x00\x90″);
}
////////////////////////////////////////////////////////////
VirtualProtect((LPVOID)(GameAddr+0×01000),0×704000,oldpro,&oldpro);
return TRUE;
}
BOOL HackOn_124B()
{
DWORD GameAddr=(DWORD)GetModuleHandle(L”game.dll”);
DWORD oldpro;
BYTE *p=b124B;
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);
/////////////////////////////////////////////////////////////////////大地图去除迷雾
if(*p++)
{
patch(0x74D103,”\xC6\x04\x3E\x01\x90\x46″);
}
///////////////////////////////////////////////////////大地图显示单位
if(*p++)
{
patch(0x3A201D, “\xEB”);
}
////////////////////////////////////////////////////////大地图显示隐形
if(*p++)
{
patch(0x3622D1,”\x3B”);
patch(0x3622D4,”\x85″);
patch(0x39A45B,”\x90\x90\x90\x90\x90\x90″);
patch(0x39A46E,”\x90\x90\x90\x90\x90\x90\x90\x90\x33\xC0\x40″);
}
/////////////////////////////////////////////////////分辨幻影
if(*p++)
{
patch(0x28351C,”\x40\xC3″);
}
/////////////////////////////////////////////////////显示神符
if(*p++)
{
patch(0x4076CA,”\x90\x90″);
patch(0x3A1F5B,”\xEB”);
}
///////////////////////////////////////////////////////小地图去除迷雾
if(*p++)
{
patch(0x356FA5,”\x90\x90″);
}
/////////////////////////////////////////////////////小地图显示单位
if(*p++)
{
patch(0x361EAB,”\x90\x90\x39\x5E\x10\x90\x90\xB8\x00\x00\x00\x00\xEB\x07″);
}
///////////////////////////////////////////////////////小地图显示隐形
if(*p++)
{
patch(0x361EBC,”\x00″);
}
//////////////////////////////////////////////////////敌方信号
if(*p++)
{
patch(0x43F956,”\x3B”);
patch(0x43F959,”\x85″);
patch(0x43F969,”\x3B”);
patch(0x43F96C,”\x85″);
}
////////////////////////////////////////////////////////他人提示
if(*p++)
{
patch(0×334529,”\x39\xC0\x0F\x85″);
}
///////////////////////////////////////////////////////敌人头像
if(*p++)
{
patch(0×371640,”\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x85\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90″);
}
/////////////////////////////////////////////////////盟友头像
if(*p++)
{
patch(0×371640,”\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x84\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90″);
}
////////////////////////////////////////////////////////////数显攻速
if(*p++)
{
patch(0x87E9A3,”\x25\x30\x2E\x32\x66\x7C\x52\x00″);
patch(0x87E9B0,”\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68″);
DWORD tmp=0x87E9A3+GameAddr;
memcpy(LPVOID(GameAddr+0x87E9BF),&tmp,4);
patch(0x87E9C3,”\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0″);
patch(0x339D34,”\xE8\x77\x4C\x54\x00″);
}
//////////////////////////////////////////////////////////数显移速
if(*p++)
{
patch(0x87E9A3,”\x25\x30\x2E\x32\x66\x7C\x52\x00″);
patch(0x87E9B0,”\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68″);
DWORD tmp=0x87E9A3+GameAddr;
memcpy(LPVOID(GameAddr+0x87E9BF),&tmp,4);
patch(0x87E9C3,”\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0″);
patch(0x339B94,”\xE8\x17\x4E\x54\x00″);
}
//////////////////////////////////////////////////////资源面板
if(*p++)
{
patch(0x3604CA,”\x90\x90″);
}
///////////////////////////////////////////////////////允许交易
if(*p++)
{
patch(0x34E822,”\xB8\xE0\x03\x00″);
patch(0x34E827,”\x90″);
patch(0x34E82A,”\xB8\x64\x90\x90″);
patch(0x34E82F,”\x90″);
}
//////////////////////////////////////////////////////查看技能
if(*p++)
{
patch(0x28EC8E,”\xEB”);
patch(0x20318C,”\x90\x90\x90\x90\x90\x90″);
patch(0x34FD28,”\x90\x90″);
patch(0x34FD66,”\x90\x90\x90\x90″);
}
////////////////////////////////////////////////////////资源条
if(*p++)
{
}
////////////////////////////////////////////////////////野外显血
if(*p++)
{
}
////////////////////////////////////////////////////////视野外点击
if(*p++)
{
patch(0x285C4C,”\x90\x90″);
patch(0x285C62,”\xEB”);
}
/////////////////////////////////////////////////////////////无限取消
if(*p++)
{
patch(0x57B9FC,”\xEB”);
patch(0x5B2CC7,”\x03″);
patch(0x5B2CDB,”\x03″);
}
////////////////////////////////////////////////////////过-MH
if(*p++)
{
patch(0x3C8407,”\xEB\x11″);
patch(0x3C8427,”\xEB\x11″);
}
//////////////////////////////////////////////////////////反-AH
if(*p++)
{
patch(0x3C6E1C,”\xB8\xFF\x00\x00\x00\xEB”);
patch(0x3CC2F2,”\xEB”);
}
///////////////////////////////////////////////////////////////////
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,oldpro,&oldpro);
return TRUE;
}
BOOL HackOn_124E()
{
DWORD GameAddr=(DWORD)GetModuleHandle(L”game.dll”);
DWORD oldpro;
BYTE* p=b124E;
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);
////////////////////////////////////////////////////////////////////////大地图去除迷雾
if(*p++)
{
patch(0x74D1B9,”\xB2\x00\x90\x90\x90\x90″);
}
////////////////////////////Reveal units map
if(*p++)
{
patch(0x39EBBC,”\x75″);
patch(0x3A2030,”\x90″);
patch(0x3A2031,”\x90″);
patch(0x3A20DB,”\x90″);
patch(0x3A20DC,”\x90″);
}
//show invisible
if(*p++)
{
// patch(0x356FFE,”\x90″);
// patch(0x356FFF,”\x90″);
// patch(0×357000,”\x90″);
patch(0×362391,”\x3B”);
patch(0×362394,”\x85″);
patch(0x39A51B,”\x90″);
patch(0x39A51C,”\x90″);
patch(0x39A51D,”\x90″);
patch(0x39A51E,”\x90″);
patch(0x39A51F,”\x90″);
patch(0x39A520,”\x90″);
patch(0x39A52E,”\x90″);
patch(0x39A52F,”\x90″);
patch(0x39A530,”\x90″);
patch(0x39A531,”\x90″);
patch(0x39A532,”\x90″);
patch(0x39A533,”\x90″);
patch(0x39A534,”\x90″);
patch(0x39A535,”\x90″);
patch(0x39A536,”\x33″);
patch(0x39A537,”\xC0″);
patch(0x39A538,”\x40″);
}
//show illusions
if(*p++)
{
patch(0x28357C,”\x40″);
patch(0x28357D,”\xC3″);
}
//
//show items
if(*p++)
{
patch(0x3A201B,”\xEB”);
patch(0x40A864,”\x90″);
patch(0x40A865,”\x90″);
}
////////////////////////////////////////////小地图 去除迷雾
if(*p++)
{
patch(0×357065,”\x90\x90″);
}
//Reveal units map minimap
if(*p++)
{
patch(0x361F7C,”\x00″);
}
/////////////////////////////////////////////小地图显示隐形
if(*p++)
{
}
/////////////////////////////////////////////敌方信号
if(*p++)
{
patch(0x43F9A6,”\x3B”);
patch(0x43F9A9,”\x85″);
patch(0x43F9B9,”\x3B”);
patch(0x43F9BC,”\x85″);
}
/////////////////////////////////////////////他人提示
if(*p++)
{
patch(0x3345E9,”\x39\xC0\x0F\x85″);
}
//enemy hero icons
if(*p++)
{
patch(0×371700,”\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x85\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90″);
}
/////////////////////////////////////盟友头像
if(*p++)
{
patch(0×371700,”\xE8\x3B\x28\x03\x00\x85\xC0\x0F\x84\x8F\x02\x00\x00\xEB\xC9\x90\x90\x90\x90″);
}
////////////////////////////////////////////////////////////数显攻速
if(*p++)
{
patch(0x87EA63,”\x25\x30\x2E\x32\x66\x7C\x52\x00″);
patch(0x87EA70,”\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68″);
DWORD tmp=0x87EA63+GameAddr;
OD1(L”%08X”,GameAddr);
OD1(L”%08X”,tmp);
memcpy(LPVOID(GameAddr+0x87EA7F),&tmp,4);
patch(0x87EA83,”\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0″);
patch(0x339DF4,”\xE8\x77\x4C\x54\x00″);
}
//////////////////////////////////////////////////////////数显移速
if(*p++)
{
patch(0x87EA63,”\x25\x30\x2E\x32\x66\x7C\x52\x00″);
patch(0x87EA70,”\x8D\x4C\x24\x18\xD9\x44\x24\x60\x83\xEC\x08\xDD\x1C\x24\x68″);
DWORD tmp=0x87EA63+GameAddr;
OD1(L”%08X”,GameAddr);
OD1(L”%08X”,tmp);
memcpy(LPVOID(GameAddr+0x87EA7F),&tmp,4);
patch(0x87EA83,”\x57\x51\xE8\xBC\xD2\xE6\xFF\x83\xC4\x14\x58\x57\x8D\x4C\x24\x18\xFF\xE0″);
patch(0x339C54,”\xE8\x17\x4E\x54\x00″);
}
//show resources
if(*p++)
{
patch(0x36058A,”\x90″);
patch(0x36058B,”\x90″);
}
///////////////////////////////////////////
//enable trade amount
if(*p++)
{
patch(0x34E8E2,”\xB8″);
patch(0x34E8E3,”\xC8″);
patch(0x34E8E4,”\x00″);
patch(0x34E8E5,”\x00″);
patch(0x34E8E7,”\x90″);
patch(0x34E8EA,”\xB8″);
patch(0x34E8EB,”\x64″);
patch(0x34E8EC,”\x00″);
patch(0x34E8ED,”\x00″);
patch(0x34E8EF,”\x90″);
}
if(*p++)
{
//show skills
patch(0x2031EC,”\x90″);
patch(0x2031ED,”\x90″);
patch(0x2031EE,”\x90″);
patch(0x2031EF,”\x90″);
patch(0x2031F0,”\x90″);
patch(0x2031F1,”\x90″);
patch(0x34FDE8,”\x90″);
patch(0x34FDE9,”\x90″);
//show cooldowns
patch(0x28ECFE,”\xEB”);
patch(0x34FE26,”\x90″);
patch(0x34FE27,”\x90″);
patch(0x34FE28,”\x90″);
patch(0x34FE29,”\x90″);
}
//////////////////////////////////////////////资源条
if(*p++)
{
}
//////////////////////////////////////////////野外显血
if(*p++)
{
}
//clickable units
if(*p++)
{
patch(0x285CBC,”\x90″);
patch(0x285CBD,”\x90″);
patch(0x285CD2,”\xEB”);
}
//////////////////////////////////////////////////无限取消
if(*p++)
{
patch(0x57BA7C,”\xEB”);
patch(0x5B2D77,”\x03″);
patch(0x5B2D8B,”\x03″);
}
/////////////////////////////////////////////////////过-MH
if(*p++)
{
patch(0x3C84C7,”\xEB\x11″);
patch(0x3C84E7,”\xEB\x11″);
}
////////////////////////////////////////////////////反-AH
if(*p++)
{
patch(0x3C6EDC,”\xB8\xFF\x00\x00\x00\xEB”);
patch(0x3CC3B2,”\xEB”);
}
// ///////////////////////////////////////////////////////他人选框
// if(*p++)
// {
//
// }
//////////////////////////////////////////////////////////////////////////
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,oldpro,&oldpro);
return TRUE;
}
BOOL HackOff_120E()
{
DWORD GameAddr=(DWORD)GetModuleHandle(L”game.dll”);
DWORD oldpro;
VirtualProtect((LPVOID)(GameAddr+0×01000),0×704000,PAGE_EXECUTE_READWRITE,&oldpro);
patch(0x124DDD,”\x85″);
patch(0x124DE0,”\x84″);
patch(0x127B3D,”\x8B\x87\x68″);
patch(0x12DC1A,”\x74\x08″);
patch(0x12DC5A,”\x74\x08″);
patch(0x137BA5,”\xD7\x7F”);
patch(0x137BAC,”\x84″);
patch(0x137BB1,”\x8B\x83\x80\x01\x00\x00″);
patch(0x13B400,”\xD8\x62\x08″);
patch(0x13BA61,”\x68\x00\x02\x00\x00\x8D\x4D\xA0\x51\x8D\x95\x20\xFD\xFF\xFF\x52\xE8\x56\x7E\x25\x00\x85\xF6\x74\x16\x68\x00\x02\x00\x00\x68″);
DWORD tmp=0x802CC8+GameAddr;
memcpy(LPVOID(0x13BA80+GameAddr),&tmp,4);
patch(0x13C3F2,”\x68\x00\x02\x00\x00\x8D\x45\x98\x50\x8D\x8D\x18\xFD\xFF\xFF\x51\xE8\xC5\x74\x25\x00\x85\xF6″);
patch(0x13C40A,”\x16\x68\x00\x02\x00\x00\x68″);
tmp=0x802CC8+GameAddr;
memcpy(LPVOID(0x13C411+GameAddr),&tmp,4);
patch(0x13EF03,”\x75″);
patch(0x147C53,”\xE4″);
patch(0x1491A8,”\x01″);
patch(0x1494E0,”\x85″);
patch(0x1494E3,”\x84″);
patch(0×150981,”\x85\xC0″);
patch(0x1509FE,”\x85\xC0″);
patch(0×151597,”\x85\xC0″);
patch(0×151647,”\x85\xC0″);
patch(0×151748,”\x85\xC0″);
patch(0x166E5E,”\x85\xC0\x0F\x84\xBB\x03\x00\x00″);
patch(0x16FE0A,”\x85″);
patch(0x16FE0C,”\x74\x78″);
patch(0x17D4C2,”\x75\x0E”);
patch(0x17D4CC,”\x0F\x85\xB0″);
patch(0x17D4D0,”\x00\x00″);
patch(0x1ACFFC,”\xC3\x90″);
patch(0x1BD5A7,”\x74\x2E”);
patch(0x1BD5BB,”\x75″);
patch(0x1BED19,”\x85\xC0″);
patch(0x1BFABE,”\x75″);
patch(0x21EAD4,”\x00″);
patch(0x21EAE8,”\x01″);
patch(0x23D60F,”\x7A”);
patch(0x2A07C5,”\x8B\x59\x14\x8B\x49\x10″);
patch(0x2A0930,”\xC9″);
patch(0x2C240C,”\x3D\xFF\x00\x00\x00\x76\x05\xC1\xF8\x1F\xF6\xD0″);
patch(0x2C5A7E,”\xEB\x0D”);
patch(0x2D34ED,”\x0F\x84\xB2″);
patch(0x2D34F2,”\x00″);
patch(0x314A9E,”\x85\xC1″);
patch(0x321CC4,”\x85″);
patch(0x321CC7,”\x84″);
patch(0x321CD7,”\x85″);
patch(0x321CD9,”\x74″);
patch(0x406B53,”\x8B\x49\x08″);
patch(0x442CC0,”\x0F\x84\xDC\x00\x00\x00″);
patch(0×443375,”\x74\x1E”);
patch(0x45A641,”\x0F\x84\x60\x01\x00\x00″);
patch(0x45E79E,”\x0F\x84\x26\x01\x00\x00″);
patch(0×466527,”\x74\x0F”);
patch(0x46B258,”\x0F\x84\x91\x00\x00\x00″);
patch(0x4A11A0,”\x74\x0F”);
patch(0x54C0BF,”\x0F\x84\xF7\x00\x00\x00″);
patch(0x5573FE,”\x0F\x84\x61\x01\x00\x00″);
patch(0x55E15C,”\x74\x4A”);
VirtualProtect((LPVOID)(GameAddr+0×01000),0×704000,oldpro,&oldpro);
return TRUE;
}
BOOL HackOff_124B()
{
DWORD GameAddr=(DWORD)GetModuleHandle(L”game.dll”);
DWORD oldpro;
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);
patch(0x20318C,”\x0F\x84\x5F\x01\x00\x00″);
patch(0x28351C,”\xC3\xCC”);
patch(0x285C4C,”\x74\x2A”);
patch(0x285C62,”\x75″);
patch(0x28EC8E,”\x75″);
patch(0×334529,”\x85″);
patch(0x33452C,”\x84″);
patch(0x339B94,”\x57\x8D\x4C\x24\x18″);
patch(0x339D34,”\x57\x8D”);
patch(0x339D37,”\x24\x18″);
patch(0x34E822,”\x8B\x87\x6C\x01″);
patch(0x34E827,”\x00″);
patch(0x34E82A,”\x8B\x87\x68\x01″);
patch(0x34E82F,”\x00″);
patch(0x34FD28,”\x74\x08″);
patch(0x34FD66,”\x85\xC0\x74\x08″);
patch(0x356FA5,”\x88\x01″);
patch(0x3604CA,”\xEB\x08″);
patch(0x361EAB,”\x75\x0C”);
patch(0x361EB0,”\x75\x07\xB9\x01″);
patch(0x361EB8,”\x02″);
patch(0x361EBC,”\x01″);
patch(0x3622D1,”\x85″);
patch(0x3622D4,”\x84″);
patch(0×371641,”\xFB\x29″);
patch(0x37164D,”\x8B\x85\x80\x01\x00\x00″);
patch(0x39A45B,”\x8B\x97\x98\x01\x00\x00″);
patch(0x39A46E,”\x0F\xB7\x00\x55\x50\x56\xE8\xF7\x7B\x00\x00″);
patch(0x3A1F5B,”\x75″);
patch(0x3A201D,”\x75″);
patch(0x3C6E1C,”\x3D”);
patch(0x3C6E21,”\x76″);
patch(0x3C8407,”\x6A\x00″);
patch(0x3C8427,”\x6A\x00″);
patch(0x3CC2F2,”\x74″);
patch(0x4076CA,”\x75\x0A”);
patch(0x43F956,”\x85″);
patch(0x43F959,”\x84″);
patch(0x43F969,”\x85″);
patch(0x43F96C,”\x84″);
patch(0x57B9FC,”\x7A”);
patch(0x5B2CC7,”\x00″);
patch(0x5B2CDB,”\x01″);
patch(0x74D103,”\x88\x14″);
patch(0x74D106,”\x83\xC6\x01″);
patch(0x87E9A3,”\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC”);
patch(0x87E9B0,”\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC”);
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,oldpro,&oldpro);
return TRUE;
}
BOOL HackOff_124E()
{
DWORD GameAddr=(DWORD)GetModuleHandle(L”game.dll”);
DWORD oldpro;
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,PAGE_EXECUTE_READWRITE,&oldpro);
patch(0x2031EC,”\x0F\x84\x5F\x01\x00\x00″);
patch(0x28357C,”\xC3\xCC”);
patch(0x285CBC,”\x74\x2A”);
patch(0x285CD2,”\x75″);
patch(0x28ECFE,”\x75″);
patch(0x3345E9,”\x85″);
patch(0x3345EC,”\x84″);
patch(0x339C54,”\x57\x8D\x4C\x24\x18″);
patch(0x339DF4,”\x57\x8D”);
patch(0x339DF7,”\x24\x18″);
patch(0x34E8E2,”\x8B\x87\x6C\x01″);
patch(0x34E8E7,”\x00″);
patch(0x34E8EA,”\x8B\x87\x68\x01″);
patch(0x34E8EF,”\x00″);
patch(0x34FDE8,”\x74\x08″);
patch(0x34FE26,”\x85\xC0\x74\x08″);
patch(0x356FFE,”\x66\x85\xC0″);
patch(0×357065,”\x88\x01″);
patch(0x36058A,”\xEB\x08″);
patch(0x361F7C,”\x01″);
patch(0×362391,”\x85″);
patch(0×362394,”\x84″);
patch(0×371701,”\xFB\x29″);
patch(0×371708,”\x84″);
patch(0x37170D,”\x8B\x85\x80\x01\x00\x00″);
patch(0x39A51B,”\x8B\x97\x98\x01\x00\x00″);
patch(0x39A52E,”\x0F\xB7\x00\x55\x50\x56\xE8\xF7\x7B\x00\x00″);
patch(0x39EBBC,”\x74″);
patch(0x3A201B,”\x75″);
patch(0x3A2030,”\xEB\x09″);
patch(0x3A20DB,”\x23\xCA”);
patch(0x3C6EDC,”\x3D”);
patch(0x3C6EE1,”\x76″);
patch(0x3C84C7,”\x6A\x00″);
patch(0x3C84E7,”\x6A\x00″);
patch(0x3CC3B2,”\x74″);
patch(0x40A864,”\x75\x0A”);
patch(0x43F9A6,”\x85″);
patch(0x43F9A9,”\x84″);
patch(0x43F9B9,”\x85″);
patch(0x43F9BC,”\x84″);
patch(0x57BA7C,”\x7A”);
patch(0x5B2D77,”\x00″);
patch(0x5B2D8B,”\x01″);
patch(0x74D1B9,”\x8A\x90″);
DWORD tmp=0xAB7E6C+GameAddr;
memcpy(LPVOID(GameAddr+0x74D1BB),&tmp,4);
patch(0x87EA63,”\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC”);
patch(0x87EA70,”\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xC3\xCC\xCC\xCC\xCC”);
VirtualProtect((LPVOID)(GameAddr+0×01000),0x87E000,oldpro,&oldpro);
return TRUE;
}
页:
[1]