Znalazłem takie zabawne próby podstawiania virtualnych funkcji:
https://en.delphipraxis.net/topic/1922-patch-a-private-virtual-method/
oni próbują tam modyfikować bezpośrednio tablicę wirtualnych funkcji w danej klasie: VMT
Potem tam ktoś sugeruje że trzeba wyczyścić cache kodu: FlushInstructionCache
Od kiedy modyfikacja adresu, ma coś wspólnego z kodem?
Przecież to jest zwyczajna tablica wskaźników - segment danych, a nie kodu.
VMT[i] := mypointertomethod
i tyle z tym roboty.