如何逆向工程/提取代码 ATmega32

Una*_*lik 2 microcontroller decompiling atmega reverse-engineering arduino

我需要帮助从 ATmega32a 微控制器中提取代码。我有关于硬件、寄存器、汇编的知识,但我什至不是嵌入式系统的专家。尽管我知道逆向工程不适合初学者,但我仍然想至少学习我在网上找不到的基本概念。

如何与芯片通信、提取代码并反编译?为此有哪些硬件/软件要求?(假设代码不受保护。)

提前致谢。

Nit*_*tro 7

您永远无法从 Atmega32 芯片内部获取 C 代码,因为该芯片永远不知道 C 代码。

但是,您可以使用终端中的以下命令从芯片中获取机器代码

avrdude -c <programmer name> -p m32 -U flash:r:read_firmware.hex:i
Run Code Online (Sandbox Code Playgroud)

为此,您必须将 avrdude 安装到您的系统中。在此处阅读更多信息 您还需要一个用于 atmega 芯片的 SPI 编程器。我个人最喜欢的是Sparkfun 的袖珍程序员

然后,您可以通过文本编辑器浏览十六进制文件,并尝试使用 Atmega32 数据表理解机器代码。

就我个人而言,我从来不觉得值得付出努力。

  • 阅读后,您可以使用“avr-objdump -D -m avr5 read_firmware.hex”之类的命令对其进行反汇编。 (4认同)