The embedded elf debugger is the implementation of a new concept of debugger that run inside the process to be debugged instead of being an external entity accessing from the outside the target address space. instead of using system-specific api such as ptrace, the debugger is linked into a library that is getting injected in a process using the ld_preload environment variable. this makes e2dbg very efficient as it does not need context switching for inspecting the target process. the eresi debugger can also be scripted in the same conditions as a complete eresi interpreter is embedded into the debugger.
the main features of the embedded elf debugger are :
* debugging on dynamic elf binaries without using ptrace
* runtime injection of software extension developed in c language.
* runtime static and extern functions redirection.
* breakpoints and stepping using the sigaction syscall.
* possibility of registers reading and writing on such events.
* instruction tracing until next event.
* runtime access to the linkmap linked list of the runtime linker.
* support for debugging of multithread processes.
* backtracing capabilities including on multithread processes.
* innovative unintrusive debugging technique : allocation proxying