[fpc-devel] Quick question on VMT / writeable or protected memory

Alfred alfred at consulab.nl
Wed Apr 14 17:49:07 CEST 2021

The mORMot[1] sources could give you some info.
During runtime, it patches the exe-memory to redirect function calls.
Hard part was to get around the W^X memory protection on some BSD's.

Look at:

procedure PatchCode(Old,New: pointer; Size: integer; Backup: pointer;
inside SynCommons.pas

function TInterfaceFactory.GetMethodsVirtualTable: pointer;
inside mORMot.pas

More information about the fpc-devel mailing list