LLVM based interactive disassembler

Hi folks!

  I've been working for some time on an interactive disassembler[2]
using libLLVM for Parsing Binaries/Instructions. The whole thing started
as a Proof-of-Concept and morphed to a university project of mine. It
will now continue to exist as a Free Software[0] project. It currently
runs by the name ``FrIDa'' [1] and yes it could use a better name (one
that isn't used by like 4 other software projects for a start).

  So far I have been a mostly happy user of LLVM and want to say hi and
thanks to you all! LLVM already allows me to mostly work with binaries
From all LLVM targets and I'm looking forward to integrate lldb and
probably libclang for data-mining header files.

  My primary wish from the LLVM side right now would be some way / idea
on how to cleanly plug into the InstructionPrinter -- I would like to
write a generic printer for Operands -- use the specialized Printer and
annotate the results (wrap it into HTML).

Thanks for listening

  Christoph Egger

[0] Currently GPLv3+
[1] https://www.frida.xyz/
[2] An Interactive Disassembler is a tool to better understand how some
    binary program works. Instead of the long instruction listing you
    get by running objdump, FrIDa provides you with a control flow graph
    and lets you annotate parts of the program you already understood.
    It lets you add names to things (like functions) to actually
    describe their function -- even if the binary has been stripped and
    the original names are gone.

Cool project!

One feature that I've been missing in such tools is the ability to store your annotations as debug information. I think that having something like that would be a really useful feature when combining this kind of static analysis with analyzing the code in a debugger.

I guess that this won't be on your priority list soon but maybe its an idea that you could add to a list somewhere.

Cheers,
  Roel

Hi!

Roel Jordans <r.jordans@tue.nl> writes:

One feature that I've been missing in such tools is the ability to
store your annotations as debug information. I think that having
something like that would be a really useful feature when combining
this kind of static analysis with analyzing the code in a debugger.

That sounds like a good idea definitely, thanks for the suggestion!
Currently I don't have any idea on how this would work but something to
keep in mind.

  Christoph