Cha*_*ara 6 hardware embedded microcontroller decompiling mikroc
我遇到了PIC Micro控制器的问题.
我很久以前就有一个由我编程的微控制器,我丢失了相关的源代码和原理图.现在我需要反转端口的值.我可以使用一些NOT门来做到这一点,但这样做很麻烦.或者我需要写回整个程序.
我不希望在PIC C或MikroC中看到代码.拥有可理解的汇编代码就足够了.
那么有没有人对我可以用于此目的的好的HEX反编译器有任何经验?根据您的经验发表任何评论?:)
编辑:器件PIC 16F84A
反编译不太可能是一个实用的解决方案,甚至不太可能存在特定编译器和指令集组合的工具.
然而,反汇编是直截了当的,但是由于在HEX文件中没有保留注释或符号,您是否能够理解结果代码是另一回事.如果你有原始的目标代码,它可能会使反汇编更具可读性.有许多PIC反汇编程序,只有谷歌它; 我无法指导您处理任何特定的PIC系列,因为有许多PIC系列具有不同的指令集,并且您没有指定.
一种简单的反汇编方法是简单地将HEX文件加载到MPLAB中并选择View-> Disassembly Listing,然后右键单击窗口并选择"Output to File".此输出可能需要一些按摩,以使其适合于汇编器的输入.
我知道这是一篇旧帖子,但我最近遇到了类似的问题,并且在网上没有找到非常完整的答案。由于硬盘故障,我丢失了 MPLAB X IDE 项目,幸运的是,我已经使用代码的工作版本对设备进行了编程。
恢复 .hex
按照以下步骤从编程设备恢复 .hex 信息:
使用 MPLAB X IDE 和 PIC 编程器(我使用 PICkit3)从已编程器件读取 .hex 文件:
反汇编 .hex
您可以在 MPLAB X IDE 中查看反汇编结果,但无法编辑或保存它(或者至少我不知道如何编辑或保存),而且它非常神秘。我发现最简单的、没有任何附加条件的反汇编程序是与 gputils 一起打包的,它被称为 gpdasm。要下载并安装,请访问此处的 gputils 页面:
https://gputils.sourceforge.io/
现在打开命令提示符并导航到 .hex 文件所在的文件夹。使用以下命令从 .hex 生成汇编源文件:
gpdasm -p p16f84a -csno hexfile.hex > asmfile.dis
Run Code Online (Sandbox Code Playgroud)
使用 -c -s -n 和 -o 选项,这会生成一个非常好的列表,非常接近能够按原样组装。显然变量名和标签无法恢复,但至少可以识别子例程,这使事情变得容易多了。希望这对将来的人有帮助。