GitXplorerGitXplorer
j

darm

public
214 stars
43 forks
11 issues

Commits

List of commits on branch master.
Unverified
cadffa77bf15e4ac3f8051e60c1ccefcc836e62b

Merge pull request #31 from vnd/master

jjbremer committed 9 years ago
Unverified
62a4228959edc35f61d4bced7b56f2a5291d5627

Update README.md with latest project status

committed 9 years ago
Unverified
f42b509adabbb3a0fbb87937db33d14c2d213bee

Merge pull request #26 from up-n-atom/bugfixes

jjbremer committed 10 years ago
Unverified
0ee5797889c176a73a04229b9569831bf422fd52

Python 3.x: Darm string representation returns a bytes object instead of string object. Use decode method to conform with Python 2.x to return a string object.

uup-n-atom committed 10 years ago
Unverified
71a027e0ffb2171d01213c6ecc6da1c49e158398

Merge pull request #25 from jmgao/bugfixes

jjbremer committed 10 years ago
Unverified
f7af5ad4e45d8a45c27ac32d9f0a281e6b5fe7eb

Fix decoding of thumb CBNZ/CBZ.

jjmgao committed 10 years ago

README

The README file for this repository.

darm

A light-weight and efficient ARMv7/Thumb/Thumb2 disassembler written in C with Python bindings. VFP/Neon/SIMD (it's all the same) support is upcoming!

Warning: project is no longer maintained, a better alternative might be capstone.

Example code

Using the darm library is fairly straightforward - just call the right function with the right parameter and you're all set. Following is an example of disassembling an ARMv7 instruction in C and printing its string representation to stdout.

#include <stdio.h>
#include "darm.h"

int main()
{
    darm_t d; darm_str_t str;

    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.

import darm

print str(darm.disasm_armv7(0x42424242))

License

The darm library is released under the BSD 3-Clause License, also known as BSD Simplified.

Support & Contact

For support and contact, feel free to check out the official Darm website, the IRC channel, #darm at freenode, or you can always reach me on my email: jurriaanbremer@gmail.com.

Acknowledgement

(See also the Contributors page on darm.re.)

Many thanks to Valentin Pistol without whom this project would never have seen the light of day.

Thanks to Peter Geissler, Jay Little, Michael Laurenzano, Jonathan Tetteroo, Joshua Drake, and rednovae for contributions, suggestions, additional tests, etc.