-1

編集: OllyDBGで可能であることはわかっていますが、動作させましたが、ジャンプを実行できるようにランタイムバージョン(CPP)が必要です。

スイッチ内のこの関数 (疑似コード) で、ケース 115 の操作を変更したいと思います。たとえば、CALL 100CE3E8 を CALL 100CF1E9 に変更します

次のようになります。

(ケース115)

sub_100CE3E8(a1, v19);
break;

1024185D   8B45 E8          MOV EAX,DWORD PTR SS:[EBP-18]
10241860   50               PUSH EAX
10241861   8B4D 08          MOV ECX,DWORD PTR SS:[EBP+8]
10241864   51               PUSH ECX
10241865   8B0D A0B12A10    MOV ECX,DWORD PTR DS:[102AB1A0]
1024186B   E8 78CBE8FF      CALL somelib.100CE3E8

そして、この場合、指示の指定された部分、たとえば 1024186B を置き換えたいと思います

この種の操作を実行するために MS Windows Detours 1.5 を使用していますが、ほとんどの場合はうまく機能します。

    void hSwitchFunction(int a1)
    {                                 
       //So what should I put here to jump directly to 1024185D, 
       //and don't replace the function completely? 
       //I mean I want to modify just the part of this function.
    }

//somewhere in the code
DetourFunction((PBYTE)0x10241630, (PBYTE)hSwitchFunction);
//somewhere in the code
4

1 に答える 1