【问题标题】:How to reverse engineer/extract code ATmega32如何逆向工程/提取代码 ATmega32
【发布时间】:2019-09-01 06:06:33
【问题描述】:

我需要帮助才能从 ATmega32a 微控制器中提取代码。我对硬件、寄存器、组装的东西有一定的了解,但我什至不是嵌入式系统方面的专家。尽管我知道逆向工程不适合初学者,但我仍然想至少学习一些我在网上找不到的基本概念。

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

提前致谢。

【问题讨论】:

  • 答案在网络上的零件数据表中。哪一部分你不明白?
  • 定义反编译。编译过程(假设这是编译代码)会永久删除信息,您打算如何恢复丢失的信息?
  • 我知道有一些方法可以将程序检索为机器码。现在我认为这对我来说已经足够了。

标签: arduino reverse-engineering microcontroller decompiling atmega


【解决方案1】:

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

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

avrdude -c <programmer name> -p m32 -U flash:r:read_firmware.hex:i

为此,您必须将 avrdude 安装到您的系统中。阅读更多here 您还需要一个用于 atmega 芯片的 SPI 编程器。我个人最喜欢的是pocket programmer from sparkfun

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

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

【讨论】:

  • 看完后可以用avr-objdump -D -m avr5 read_firmware.hex这样的命令进行反汇编。
  • 虽然 avr-objdump 可以尝试反汇编您使用 avrdude 阅读的代码……但它缺乏“智能”,并且蛮力方法可能使其作为逆向工程工具不太理想。你可能会得到更好的结果:cutter.reradare.orgghidra-sre.orghex-rays.com/products/ida
猜你喜欢
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 2016-06-10
  • 1970-01-01
  • 2015-04-13
  • 2010-09-11
  • 2014-05-08
相关资源
最近更新 更多