好的,所以我有一个Arduino,上面有一个要刷新的草图(我没有源代码),我想对其进行逆向工程,并且我已经成功地转存了闪存并拆开了一部分。我希望能够使用Atmel mkII之类的设备来单步操作Arduino,但是我没有太多运气来确定使用mkII和Atmel Studio 6进行片上调试的菜单选项。可以使用Atmel Studio 6和mkII?还有其他单步您没有原始源代码的Arduino的方法吗?

评论

很难说我很久以前就停止使用JTAG(现在我为Atmel使用了Boot-loader,因为它更舒适了),而且AVR studio 5停止了对本机C ++的支持,所以我仍然使用2.7.0,但是在过去, ATMega168也有类似的问题,我通过自制仿真器解决了。因此,尝试找到一个或自己编写它。还有一些C / C ++反编译器,但是您必须有一个正确的编译器。。。东西取决于时间

#1 楼

我对该工具不熟悉,因此您没有具体问题的答案。但是这里有两条建议:

1)有很多arduino模拟器,您可以使用它们通过代码进行单步操作。

2)Arduino体积小巧,非常简单,您应该仅使用(拆卸)程序集和大脑即可对它进行反向工程。 (与x86不同,x86具有使生活变得复杂的数百种方法。)是的,这需要时间,但是做得越多,您变得越快。

只需开始浏览清单即可。尝试找到小的,独立的子例程。弄清楚它们的输入和输出是什么样的。猜测一下它们的功能是什么。 (“ LED闪烁”,“校验和例程”,“对额外的I2C总线进行位冲击”,“检查按钮按下情况”)很快,它会滚雪球,而较高级别的例程将更容易理解,因为您知道较低级别的例程的。有时您会达到知识的极限,但是您可以根据您对软件的了解做出有根据的猜测。 (即“必须在其中进行傅立叶变换的地方”)