可以反汇编十六进制stm8固件吗?
问问题
2846 次
2 回答
1
您的文件包含两个部分 8000-87FFh 和 8800-BFFFh。显然首先是引导加载程序,其次是主程序。您可以单独拆卸它们。
我试图做以下事情:
- 只需将第一部分剪切并保存到一个文件中,然后将第二部分保存到另一个文件中。
- 使用裸照反汇编每个文件:
naken_util.exe -disasm -stm8 ./fw.hex > ./fw.asm
- 结果我得到了两个 asm 文件:main.asm和boot.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 上:
打开 VS2013 解决方案并使用 IDA 6.6 SDK 头文件和库进行构建。您需要将 idasdk66\include 和 idasdk66\module 添加到包含列表中,并将 idasdk66\lib\x86_win_vc_32 添加到项目文件中的库位置列表中。
然后将输出 st8.w32 复制到:C:\Program Files (x86)\IDA 6.6\procs
于 2019-08-03T00:01:57.823 回答