Atmel AVR 反汇编器
有人可以向我推荐 Atmel AVR 8 位微控制器的反汇编程序吗?有这方面的开源项目吗?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有人可以向我推荐 Atmel AVR 8 位微控制器的反汇编程序吗?有这方面的开源项目吗?
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
您还可以使用 avr-objdump,它是 avr-gcc 工具集的工具部分(http://www.avr-objdump)。 nongnu.org/avr-libc/ )。例如:
在 >http://www.nongnu.org/avr-libc/user-manual/using_tools.html
You can also use avr-objdump, a tool part of the avr-gcc toolset ( http://www.nongnu.org/avr-libc/ ). Ex:
where
<avr architecture>
is found on http://www.nongnu.org/avr-libc/user-manual/using_tools.html[plug]IDA Pro 支持 AVR 反汇编[/plug]:
至于开源,AVR GCC 包包含 objdump 的端口,包括反汇编功能。
[plug]IDA Pro supports AVR disassembly[/plug]:
As for opensource, AVR GCC package includes a port of objdump, including disassembling functionality.
http://www.onlinedisassembler.com/odaweb/
很多平台(还有 AVR),但 Microchip(你没有需要任一)丢失。
最大的优点是它是基于网络的。
http://www.onlinedisassembler.com/odaweb/
Lots of platforms (AVR also) but Microchip (which you didn't need either) is missing.
Big plus is that it is web based.
查看vAVRdisasm。
Checkout vAVRdisasm.
AVRDisassembler 是一个用 .NET Core 编写的开源 (MIT) AVR / Arduino 反汇编程序(这意味着它可以在 Windows、Mac、Linux 上运行)。除了将反汇编代码写入标准输出之外,它还可以发出 JSON 转储(用于互操作性、分析目的)。
免责声明:我是该库的作者。
AVRDisassembler is an open source (MIT) AVR / Arduino disassembler written in .NET Core (which means it can run on Windows, Mac, Linux). Apart from writing the disassembly to stdout, it can also emit a JSON dump (for interopability, analysis purposes).
Disclaimer: I am the author of said library.
我正在使用 Johannes Bauer 的 avrdisas。它适用于转储的闪存,而不是 .hex 文件或 ELF。
编译以下内容:
产生列表:
使用以下命令提取闪存内容:
给出:
e001 bb07 9701 f7f1 9ab0 cffc
反汇编:
这对我有用,即使字节序与列表不匹配,我会需要将 0x17 解析回 DDRB 等。
I'm using avrdisas by Johannes Bauer. It works with dumped flash, rather than the .hex file or ELF.
Compiling the following :
produces listing:
extracting the flash contents with:
gives:
e001 bb07 9701 f7f1 9ab0 cffc
disassembly:
and this works for me, even if the endian-ness does not match the listing and I would need to resolve 0x17 back to DDRB etc.
作为开源反汇编程序,我尝试过 Radare2,它是面向命令行的,但您也可以使用名为 Cutter 的 GUI。 https://rada.re/n/
或者您可以使用经典的 avr-objdump:
信息来源此处
As opensource disassembler I've tried Radare2 which is command-line oriented but you can also use the GUI called Cutter. https://rada.re/n/
Or you can just use the classical avr-objdump:
Information source here
问题是关于反汇编 HEX 文件,作为解决方案,上面的其他答案中提到了很多工具。很难添加更多东西。
但如果有人正在寻找:在 IDE 中运行时也可以反汇编 C/C++。使用 Atmel studio 及其集成反汇编工具,可以通过以下方式完成:
这对于验证是否根据需要编译特定代码片段非常有用,因为优化有时会跳过/破坏序列并导致一些意外行为。
The question is rather about disassembling the HEX file and as a solution there are mentioned quite a lot tools above in other answers. Hard to add something more.
But if someone is looking for: it is also possible to disassemble the C/C++ while running in IDE. With Atmel studio with its integrated disassembling tool it can be done following way:
This can be useful in order to verify that particular code fragments are compiled as needed because the optimization sometimes skips/mangles the sequence and leads to some unexpected behavior.