コード例 #1
0
ファイル: yuris.cpp プロジェクト: Emiyasviel/Arianrhod
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);
}
コード例 #2
0
ファイル: Daiteikoku.cpp プロジェクト: AyanamiRei/chinesize
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();
}