[fpc-pascal] Get all caller adresses of a given function/procedure before executing

Rainer Stratmann RainerStratmann at t-online.de
Sat Aug 11 20:30:35 CEST 2012


Am Saturday 11 August 2012 17:34:44 schrieb Marco van de Voort:
> In our previous episode, Rainer Stratmann said:
> > But not the 80x86 CPU. It is still the same opcode for a call ($E8).
>
> Maybe not the call, but changing or adding address encoding is quite
> realistic.
>
> I assume you tested your code for PIC cases (which are quite common on
> *nix?)

The call ($E8) itself operates with a relative adress as I found out and write 
already and documented in the piece of code shown in a previous mail.

> http://en.wikipedia.org/wiki/Position-independent_code
>
> FPC supports PIC
>
> And of course finding a perfect starting point so that you don't find false
> positives when you find $E8 inside the address (change 1 in 256 obviously)

If there is a $E8 then also the calculated absolute adress from the following 
4 bytes must point to the searching text translate function. So errors are 
likely rare.



More information about the fpc-pascal mailing list