- Notifications
You must be signed in to change notification settings - Fork43
A light-weight and efficient disassembler written in C for the ARMv7 instruction set.
License
jbremer/darm
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A light-weight and efficient ARMv7/Thumb/Thumb2 disassembler written in C withPython bindings. VFP/Neon/SIMD (it's all the same) support is upcoming!
Warning: project is no longer maintained, a better alternative might becapstone.
Using thedarm library is fairly straightforward - just call the rightfunction with the right parameter and you're all set. Following is an exampleof disassembling an ARMv7 instruction in C and printing its stringrepresentation to stdout.
#include<stdio.h>#include"darm.h"intmain(){darm_td;darm_str_tstr;if(darm_armv7_disasm(&d,0x42424242)==0&&darm_str2(&d,&str,1)==0) {printf("-> %s\n",str.total); }}
And the exact same program, but using the Python bindings.
importdarmprintstr(darm.disasm_armv7(0x42424242))
The darm library is released under theBSD 3-Clause License, also knownasBSD Simplified.
For support and contact, feel free to check out theofficial Darm website, the IRC channel,#darm at freenode,or you can always reach me on my email:jurriaanbremer@gmail.com.
(See also theContributors page ondarm.re.)
Many thanks toValentin Pistol without whom this project would neverhave seen the light of day.
Thanks toPeter Geissler,Jay Little,Michael Laurenzano,Jonathan Tetteroo,Joshua Drake, andrednovae for contributions, suggestions,additional tests, etc.