[fpc-devel] How to get function start and end position in executable?

2010-07-16 Thread Žilvinas Ledas

Hello all,

I want to implement kind of executable protection using "software 
guards" (*) - when function (caller) decrypts another function (callee) 
before calling it and encrypts it again after callee returns.
As a result I need to get addresses of my functions (where the asm code 
starts and ends in the executable). Is there some way to export such 
info to external file while fpc compiles executable (or maybe afterwards 
to get this info from executable)?

Any suggenstions would be appreciated!

(*) J. Cappaert, N. Kisserli, D. Schellekens, B. Preneel. 
"Self-encrypting Code to Protect Against Analysis and Tampering", 2006 
(https://www.cosic.esat.kuleuven.be/publications/article-811.pdf)



Regards
Žilvinas Ledas
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] How to get function start and end position in executable?

2010-07-18 Thread Jonas Maebe

On 16 Jul 2010, at 12:56, Žilvinas Ledas wrote:

> I want to implement kind of executable protection using "software guards" (*) 
> - when function (caller) decrypts another function (callee) before calling it 
> and encrypts it again after callee returns.
> As a result I need to get addresses of my functions (where the asm code 
> starts and ends in the executable). Is there some way to export such info to 
> external file while fpc compiles executable (or maybe afterwards to get this 
> info from executable)?

After compiling you can run "nm -S progname" to get the symbol addresses in the 
first column and (where available) the symbol size in the second column.


Jonas

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] How to get function start and end position in executable?

2010-07-18 Thread Žilvinas Ledas

Thanks, I'll try it!


Regards
Žilvinas

On 2010-07-18 13:49, Jonas Maebe wrote:

On 16 Jul 2010, at 12:56, Žilvinas Ledas wrote:

   

I want to implement kind of executable protection using "software guards" (*) - 
when function (caller) decrypts another function (callee) before calling it and encrypts 
it again after callee returns.
As a result I need to get addresses of my functions (where the asm code starts 
and ends in the executable). Is there some way to export such info to external 
file while fpc compiles executable (or maybe afterwards to get this info from 
executable)?
 

After compiling you can run "nm -S progname" to get the symbol addresses in the 
first column and (where available) the symbol size in the second column.


Jonas

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

   

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel