私はdllをプログラムします。この dll で、メモリにロードされた別の dll の関数をフックしたいと考えています。これは、何時間もの作業の結果です。
typedef int (__fastcall *def_cry)(int a,int b,int fromlen);
def_cry Real_cry;
int __fastcall custom_cry(int a,int b,int fromlen) {
Log("cry ...");
__asm nop;
return Real_cry(a, b, fromlen);
}
DWORD imageBaseOtherDll = 0x39500000;
DWORD functionOffset = 0x395742F8;
DWORD imageBase = (DWORD)GetModuleHandle("otherDll.dll");
DWORD functionOffset = imageBase + (functionOffset - imageBaseOtherDll);
Real_cry = (def_cry)DetourFunction((PBYTE)functionOffset,(PBYTE)&custom_cry);
どうやら、私のフックが機能していないようです。コードにいくつかの論理エラーを入れたと思いますが、私は初心者であり、助けが必要です!