Skip to content

Community

Rafał Leśniak edited this page Apr 24, 2016 · 1 revision

ERESI wanted 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 priority features in wait for development. This page is specially crafted to report them.

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.

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.

Support (de)serialization and time-travel debugging of IR code

The ability to store, reload and replay code traces intermediate representation would enable ERESI to perform symbolic execution independently of the analyzed architecture.

Support for disassembling the ARM THUMB instruction set

Libasm is currently unable to disassemble ARM binaries that contains code compiled in THUMB mode. This prevents libasm from being used on embedded systems or other low-level code that compile interrupt routines or other functions in THUMB mode. Adding THUMB mode support would allow correct disassembling and analysis of such code in all ERESI projects.

Support for embedded ARM debugging

ARM specific code is currently unimplemented in the embedded user-land debugger, which prevent e2dbg from being used on mobile linux distributions based on ARM.

Support for ARM code transformation to ELIR intermediate form

Being able to transform ARM assembly code to IR is a major step toward better static analysis of ARM binary code.

Disassembly and analysis of Java byte-code

Java disassembling can be made easy using the good reference material. A good starting point is the Wikipedia page on Java byte-code. Such feature will allow us to extend our static analysis primitives to Java programs.

Questions

If you have any question or wonders regarding any of those points, contact us !

Clone this wiki locally