ARM disassembler

Hi,

I am newbie for LLVM. I need some help,
I want to disassemble ARM binaries and perform some operation on LLVM IR and again back to generate ARM binary from modified ARM LLVM IR. How I can proceed for the same.
Any tool or document will be highly appreciated.

Thanks and Regards,
Deep

Hi Sandeep.

I don’t know of a specific tool to specifically translate ARM binaries to llvm IR…

An idea could be to look into the s2e project. I know its used by PANDA (dynamic analysis platform) to translate system executions to llvm IR.

You might be able to find a way to use PANDA to accomplish your goal or maybe some existing project is using s2e for something closer to what you need.

Panda: https://github.com/moyix/panda
s2e: https://github.com/dslab-epfl/s2e

Hope this helps.
Yasser

Hi Deep,

I want to disassemble ARM binaries and perform some operation on LLVM IR and
again back to generate ARM binary from modified ARM LLVM IR. How I can
proceed for the same.

I'm afraid this isn't something LLVM can do by itself. Disassembling
binaries to a higher level language like LLVM is in general a very
difficult problem (mostly because of the possibility of self-modifying
code, but it's no walk in the park even without that), and not in the
scope of the LLVM project itself.

Cheers.

Tim.

Note that there are projects with this kind of goal. For example:

http://decompiler.fit.vutbr.cz/

You can even play with small examples online. It appears to use some of the LLVM infrastruture.

Hi.

These links may be helpful. I’v not tried.
http://code.google.com/p/llvm-qemu/
http://infoscience.epfl.ch/record/149975/files/x86-llvm-translator-chipounov_2.pdf
http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-March/012953.html

If successful, please let me know.
Good Luck.