0

Python内でRAW関数ポインタを呼び出すことは可能ですか?

例えば:

ctypes.windll.kernel32.GetModuleHandleA(None)

API を呼び出すと、Python は DLL + 関数ポインターを解決して機能させます。しかし、たとえば 0xDEADBEEF (関数ヘッダーに対応) などの生の関数ポインターがある場合、この生のポインターを渡す関数インスタンスを作成するにはどうすればよいですか?

コンパイルされた実行可能ファイルにあるため、関数をエクスポートすることはできませんが、次のようなことができるようにしたいと考えています。

明確にするために... C ++では、次のような方法でRAW関数を呼び出すことができます:

#define myfunction ((void(*)(int a, int b, int c)) 0x00402383)

myfunction(1, 2, 3);

私はPythonで似たようなものを作りたかったのですが、おそらくctypesライブラリを使用していますか? ライブラリ内を掘り下げましたが、関数インスタンスを初期化する方法が見つかりませんでした。

ノート:

  • Python エンジンは DLL 内に組み込まれています。
  • 関数アドレスを呼び出したいプロセスに DLL を挿入します。
4

1 に答える 1