1

正のオフセットでは、VMT はすべてのユーザー定義の仮想メソッドへのポインターを格納します。
VMT をフックするコードを書く必要があります。これを行う方法は、祖先クラスの仮想メソッドへのポインターを取得することです。
言いましょう: TCustomForm.ShowModal. 次に、 の VMT でオフセットを調べますTCustomForm。このオフセットを使用して、VMT に移動しTMyForm、必要な関数を指すようにその VMT を変更します。

アプローチを一般化したいと思います。そのためには、VMT が保持するエントリの総数を知りたいので、最後まで検索しません。

VMT (のユーザー定義可能部分) のサイズを取得するにはどうすればよいですか?

4

2 に答える 2