2012-11-20 30 views
7

有哪些分析和能突出什么样的每一行代码指的工具。我不是在寻找像Hex-Rays Decompiler这样的反编译器。我正在寻找一个简单的工具来帮助阅读汇编代码。ARM拆卸

回答

9

有关使用objdump什么?

$ cat add.c 
int add(int a, int b) { 
    return a + b; 
} 

$ arm-linux-gnueabihf-gcc -c -O2 add.c 

$ arm-linux-gnueabihf-objdump -d add.o 

add.o:  file format elf32-littlearm 


Disassembly of section .text: 

00000000 <add>: 
    0: 1840  adds r0, r0, r1 
    2: 4770  bx lr 

它可以提供源代码的混合,以及如果你的对象文件中包含调试信息(GCC -g),如果你提供-S到objdump的。

+3

ARM的ARM(ARM建筑参考手册),具体架构(或得到,因为它会指定架构差异较新的一个)详细介绍了每种指令的意思。 objdump + ARM ARM是您所需要的。 –

+0

同意。该工具是为了补充和节省那些宝贵的几分钟时间,当你运行紧张的时间表。 – tecMav

+0

指令集并不复杂,只需浏览一下文档,您通常不需要返回。你可以在寻找并等待这个问题的答案的时候多次学习指令集。 –

7

的在线反汇编(ODA)支持ARM等架构无数。您可以在实时视图中输入二进制数据,并在您输入时看到反汇编,或者您可以上传文件进行反汇编。这个网站的一个很好的功能是你可以与其他人分享链接到反汇编。

http://www.onlinedisassembler.com

+0

”最大上传大小为256KB“:( – m0skit0

2

正如你在你的问题,IDA Pro可以拆卸ARM提到过。
此外,你试过ARM DS-5 Development Studio
某些功能是更多的硬件相关,但IDE是非常好的(蚀)。

特点:裸机

  • 调试支持,RTOS和Linux和Android平台
  • 非侵入性周期准确的ETM和PTM指令跟踪
  • 对SMP系统的无缝支持
  • 更快的调试周期
  • 自动调试会话
  • ITM和STM测量跟踪
  • 预-CON技术支持压花和定制平台

在手动它说,它包含:

  • DS-5调试器,覆盖产品开发的各个阶段
  • ARM编译5.04嵌入式和裸金属代码
  • 适用于Linux应用程序和Linux内核的Linaro GCC Toolchain 2013.03
  • 适用于各种操作系统(包括Linux,Android和RTX)的ARM Streamline™性能分析器
  • Eclipse IDE中,源代码编辑器和项目经理
  • 固定的虚拟平台(FVP)用于Cortex™-A8和四核Cortex-A9处理器
  • 示例项目和文档