ERESI WIP developments
You want to start working in ERESI and you dont know where to begin : this is a very common issue.
We currently have many advances in progress, this page is specially crafted to report them all.
If you have interest in developping one of this feature, consider contacting us. If you have developed or want to develop another feature, we might also be interested.
Here is the list of current ERESI community developments:
Complete support for IA32 code transformation to intermediate form
Being able to transform the entire IA32 instruction set to IR is one more step toward stable static analysis of IA32 binary code
Developers: Julio Auto & Julien Vanegue
Status: WIP
Support for disassembling the ARM architecture
Being able to disassemble ARM binaries will allow us to start doing static analysis on such architectures.
Developer: Thiago Cardoso
Status: WIP
Support for debugging GDB targets
Supporting the GDB serial protocol will allow us to connect to VMware, Boches, Qemu, and gdb-server nodes, in order to replace the gdb client with the much more powerful ERESI client.
Developer: Eric Bisolfati
Status: COMPLETED
Support for debugging the SPARC and AMD64 architectures
Supporting the embedded debugging of SPARC and AMD64 in e2dbg will allow us to extend our portability on that part of the project.
Developer: Julien Vanegue
Status: Discontinued
Support for debugging JTAG targets with ERESI
Many embedded systems use the JTAG hardware protocol to enable embedded software debugging without having to inject a debugger on the board. This is another form of remote debugging that is to be supported in the ERESI framework.
Developer: Jesus Sanchez Palencia
Status: WIP
Improve source-level debugging with ERESI
The embedded debugger is currently capable to import debug information for global variables, but lacks knowledge of local variables during runtime. An extension of the ERESI debug format library is necessary to cover those. Additionally, libedfmt currently does not provide the source line association for a given mapped address during execution. Improving those two points would make e2dbg entirely capable of debugging with full source code information.
Developer: Eduardo Franklin
Status: Starting
Important OPEN developments
Additionally to those work in progress features, we want to develop the following:
Be able to disassembly Java byte-code for further static analysis
Java disassembling can be made easy using the good reference material. A good starting point is the Wikipedia page on Java bytecode.
Such feature will allow us to extend our static analysis primitives to Java programs.
Porting the Kernel shell on BSD kernels
Currently, the kernel shell only works with the Linux kernel. It could be easily ported on other operating systems such as BSD kernels. We could then start to do dynamic instrumentation of BSD kernels within the ERESI language.
Improve the Embedded ELF Tracer (etrace)
The embedded tracer currently has no maintainer! Making sure it continues to work with newer versions of the ERESI framework is a project in itself. Potential improvements include the capability to trace within internal library functions, or to make it more performant, especially by reducing its setup time.
Porting the libasm on the PPC architecture
Supporting such architecture in libasm is the first step towards static analysis of PPC binary code using the ERESI capabilities.
Support for MIPS code transformation to intermediate form
Being able to transform MIPS assembly code to IR is one more step toward static analysis of MIPS binary code.
Questions
If you have any question or wonders regarding any of those points, contact us !
