正のオフセットでは、VMT はすべてのユーザー定義の仮想メソッドへのポインターを格納します。
VMT をフックするコードを書く必要があります。これを行う方法は、祖先クラスの仮想メソッドへのポインターを取得することです。
言いましょう: TCustomForm.ShowModal
. 次に、 の VMT でオフセットを調べますTCustomForm
。このオフセットを使用して、VMT に移動しTMyForm
、必要な関数を指すようにその VMT を変更します。
アプローチを一般化したいと思います。そのためには、VMT が保持するエントリの総数を知りたいので、最後まで検索しません。
VMT (のユーザー定義可能部分) のサイズを取得するにはどうすればよいですか?