[erlang-questions] Intrusive function intercept

Geoff Cant nem@REDACTED
Thu Oct 10 21:47:55 CEST 2013


The 'int' module in the debugger application might be able to help here. It performs the instrumentation (re-compiles your module from debug_info[1] with breakpoints and so on) and manages the execution of instrumented code for you.

http://www.erlang.org/doc/man/int.html

I think that using 'int' as the basis for building a production system is crazy, but it'd be interesting to try out.

-Geoff
[1] ALWAYS compile with debug_info.[2]
[2] Why is that not the default? I have never not wanted it.

On 2013-10-10, at 02:13 , Richard Carlsson <carlsson.richard@REDACTED> wrote:

> On 2013-10-10 10:54 , Tyron Zerafa wrote:
>> Yes, we can change the code of the /test/ function and use messages;
>> however I was wondering whether there is another approach. Our idea is
>> to build a resource access control system which authorizes access to
>> resources. We came up with the following implementation options:
>>  1) change the Erlang/OTP libraries - ruled out (not an option)
>>  2) perform checks before each access - will have to change our current
>> code and add these checks
>>  3) using monitoring as described in the previous post - monitoring
>> process performs checks and only allow processes to proceed if they've
>> got the correct privilieges
> 
> If you're not afraid of getting down and dirty, there's another possibility that doesn't require any source code changes, and which guarantees that you check all resource accesses: rewrite the BEAM bytecode of modules at load time, inserting checks automatically.
> 
>    /Richard








More information about the erlang-questions mailing list