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

Michael Van Canneyt michael at freepascal.org
Wed Apr 14 18:48:50 CEST 2021



On Wed, 14 Apr 2021, Jonas Maebe via fpc-devel wrote:

> On 14/04/2021 17:49, Alfred via fpc-devel wrote:
>> 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
>
> Please don't use that kind of hacks. It also breaks in case WPO is used
> and some calls get devirtualised at compile time.

This is mORMot. It consists solely of hacks :)

Michael.


More information about the fpc-devel mailing list