Void Init() { static bool LeadByteTable[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }; MEMORY_PATCH p[] = { // misc { STRTOULONG("save_sc\\"), 4, 0x11371C }, { (ULONG_PTR)LeadByteTable, sizeof(LeadByteTable), 0x1130A0 }, // iat { (ULONG_PTR)MyTextOutA, 4, 0x9A8040 }, { (ULONG_PTR)MyCreateFontIndirectA, 4, 0x9A803C }, { (ULONG_PTR)MyMessageBoxA, 4, 0x9A8394 }, }; /* MEMORY_FUNCTION_PATCH f[] = { // { CALL, 0x3E621, MyCreateWindowExA, 0x01 }, { CALL, 0x47B21, MySetWindowTextA, 0x01 }, }; */ HMODULE hModule = GetModuleHandleW(0); PatchMemory(p, countof(p), NULL, 0, hModule); }
VOID Init() { HMODULE hModule; static CHAR szConfig[] = "AliceStart_sc.ini"; hModule = GetModuleHandleW(NULL); INTEL_STATIC MEMORY_PATCH p[] = { { 0xEB, 1, 0x25A4A }, { 0xEB, 1, 0x275A6 }, { 0xEB, 1, 0x27684 }, { 0xEB, 1, 0x2CAAF }, { 0xEB, 1, 0x2CBFB }, { 0xEB, 1, 0x2CC4F }, { 0xEB, 1, 0x2DB6C }, { 0xEB, 1, 0x2DDD3 }, { 0xEB, 1, 0x2E9CA }, { 0xEB, 1, 0x2EB17 }, { 0xEB, 1, 0x2EC0E }, { 0xEB, 1, 0x2ECFE }, { 0xEB, 1, 0x2EDF4 }, { 0xEB, 1, 0x2EED7 }, { 0xEB, 1, 0x2F066 }, // config path { STRTOULONG(szConfig), 4, 0x235D9 }, { sizeof(szConfig) - 1, 1, 0x235D7 }, }; INTEL_STATIC MEMORY_FUNCTION_PATCH f[] = { { CALL, 0x1DCA9, MyReadIni, 1 }, { CALL, 0x26185, GetIniString, 0 }, { JUMP, 0x2D440, LoadPlugins, 1, OldLoadPlugins }, // { JUMP, (ULONG_PTR)PeekMessageA - (ULONG_PTR)hModule, MyPeekMessageA, 0, OldPeekMessageA }, }; PatchMemory(p, countof(p), f, countof(f), hModule); // g_Count = 4; SetExecuteDirectoryAsCurrentW(); }