0

可以反汇编十六进制stm8固件吗?

4

2 回答 2

1

您的文件包含两个部分 8000-87FFh 和 8800-BFFFh。显然首先是引导加载程序,其次是主程序。您可以单独拆卸它们。

我试图做以下事情:

  1. 只需将第一部分剪切并保存到一个文件中,然后将第二部分保存到另一个文件中。
  2. 使用裸照反汇编每个文件:naken_util.exe -disasm -stm8 ./fw.hex > ./fw.asm
  3. 结果我得到了两个 asm 文件:main.asmboot.asm

引导文件以普通 IRQ 表开头。主文件将所有 IRQ 指定为 886Bh,其中似乎开始main()起作用,第一条指令是asm("sim")禁用所有 IRQ。

此外,您可以使用一些更复杂的程序,例如IDA,并在需要时将它们反编译为源代码。

于 2017-03-20T13:17:14.927 回答
0

这个 IDA Pro 6.6 插件似乎可以工作。https://github.com/derbroti/Stm8Ida

假设你在 Windows 上:

  1. 打开 VS2013 解决方案并使用 IDA 6.6 SDK 头文件和库进行构建。您需要将 idasdk66\include 和 idasdk66\module 添加到包含列表中,并将 idasdk66\lib\x86_win_vc_32 添加到项目文件中的库位置列表中。

  2. 然后将输出 st8.w32 复制到:C:\Program Files (x86)\IDA 6.6\procs

于 2019-08-03T00:01:57.823 回答