单片机stm8拆解

问题描述 投票:0回答:3

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

disassembly stm8
3个回答
3
投票

这个 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


2
投票

您的文件由两部分组成:8000-87FFh 和 8800-BFFFh。显然第一个是引导加载程序,第二个是主程序。 您可以单独拆卸它们。

我已尝试执行以下操作:

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

启动文件以公共IRQ表开始。主文件将所有 IRQ 指定为 886Bh,其中似乎开始了

main()
功能,第一个指令是
asm("sim")
禁用所有 IRQ。

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


0
投票

gmtdisas 是一个可以用来反汇编二进制文件的工具...

https://github.com/volbus/gmtdisas

它的依赖项很少,可以轻松地为 Windows 和 Linux 编译。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.