私は再び壁に向かって運転し、いくつかの低レベルのものであなたの助けが必要です。私はすでに輸出されたDLL関数(with this code btw.)をターゲットプロセスに注入することでフックすることに成功しました(例えば、をuser32.dll
から簡単に迂回することができます)。残念ながら私は別のシナリオを狙っています:実行可能ファイル内に定義された関数を迂回する必要があります私のコードを注入しています。アプリケーションはOpen-Sourceですので、フックするために必要な機能についてはすべて知っていますが、バイナリは証明書で署名されているため、自分のバージョンをコンパイルできません。実行時に関数のアドレスを取得することは可能ですか、別の手法で回避することはできますか?ターゲットは「通常の」32ビットWindowsバイナリbtwです。特別なことは何もない私は思っ;)EXEファイルでフック/迂回する機能アドレスを見つける方法は?
ユアーズ、 Nefarius
EDIT:多分による私のラメ英語に私はので、ここで、少しのサンプルコードは十分詳細ではなかった:今
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
foo();
}
BOOL foo(char* someData)
{
return printf("%s", someData);
}
私はダイナミックライブラリに存在しない関数foo()
を迂回したい。これは私の問題です。私はそれが私がそう思っているようにうまくいくかどうか分かりません。
編集:今私はそれが可能であることを知っているので、重要な質問はどのように変更されましたか?私は必要な情報をどのように入手するのですか。関数のアドレス?
件名に[タグ]入れないでください、特にときそれらをタグ領域に配置しています。 – abelenky
アップ、ありがとう! – Nefarius