1
私はdllをプログラムします。このdllでは、メモリにロードされた別のdllの関数をフックしたい。これは多くの作業時間の結果です。C++関数フック(dll、asm)
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);
私のフックは動作しないようです。私はコードにいくつかの論理的な誤りを入れたと思うが、私は初心者の援助だ!
asm - これまでに試したことと何が問題だと思いますか?あなたの問題の焦点を絞る。もしあなたが "これを見てそれを修正できますか?"あなたの質問は投票され、閉鎖されます。 – Josh
(男) - 男は新しいです、彼は彼が "-1ing"彼によって、stackoverflowから逃げたいと思うようにしないでください...私は質問がかなり明確だと思います。 – Cipi