我发现了armstorm,但目前仅支持THUMB。可以从另一个程序中调用,并且希望它具有自由许可(与GPL兼容)。
#1 楼
Jurriaan Bremer的DARM(GitHub)是用C编写的ARMv7反汇编程序,可在3条款BSD许可下使用。 >使用DARM的简单示例如下:// The structure which will hold all the metadata about the disassembled instruction...
darm_t d;
// disassemble a 32bit opcode...
if( darm_armv7_disasm( &d, 0xE12FFF14 ) >= 0 )
{
if( d.instr == I_BX )
{
// do something with a BX instructiuon...
}
// print the disassembled full instruction
darm_str_t str;
if( darm_str( &d, &str) > 0 )
printf( "%s\n", str.instr );
}
评论
这看起来像我要的!我想我什至可以同时使用DARM和Armstorm来获得全力支持...
–布伦丹·多兰·加维特(Brendan Dolan-Gavitt)
13年4月16日在17:05
#2 楼
是的,IDA Pro的SDK允许您通过insn_t类(在ua.hpp中)访问指令的组成部分。评论
很高兴知道这一点,但是我正在寻找可以在另一个程序中调用的东西,希望它具有自由许可。
–布伦丹·多兰·加维特(Brendan Dolan-Gavitt)
13年4月16日在1:53
@ BrendanDolan-Gavitt:也许说明问题是一个好主意?
– 0xC0000022L♦
2013年4月17日下午4:51
#3 楼
这个问题的最新答案是建议Capstone库。我已经将它用于ARM拆卸,并且非常可靠。恕我直言,这是目前最好的开源库。该库基于LLVM的TabelGen指令说明。因此,它的ISA支持与LLVM一样完整。
评论
对于它的价值,我认为它可能会在短期内添加到ERESI中,因为他们已经为Intel和Sparc提供了它,并且正在增加更多的ARM支持。