【问题标题】:Ghidra and MSP430 decompiler does not show any functionsGhidra 和 MSP430 反编译器不显示任何功能
【发布时间】:2021-04-06 21:37:08
【问题描述】:

我正在试验 Ghidra 并反编译用于 MSP430 FR4133 Launchpad 的代码。我不确定它是否受支持,但 Ghidra 似乎支持 MSP430 设备。

对于一个简单的测试,我在此 link 中使用 MSP EXP430FR4133 Launchpad 的示例代码。

此链接包含此目录中的简单源程序 MSP-EXP430FR4133_Software_Examples_windows\Firmware\Source\OutOfBox_MSP430FR4133。这是一个带有秒表和温度传感器的简单程序。

我决定加载二进制文件夹中的二进制文件。

然后我选择了 TI MSP430 16-bit 并让 Ghidra 进行分析。问题是反编译器不提供任何功能。我想知道我是否选择了错误的架构或选项?

更新 1 我发布了两张额外的图片,它们显示了两个功能,但没有任何意义。

【问题讨论】:

  • 在reset vector指向的位置显示反编译后的代码。
  • 我不确定如何找到重置向量。您会在我最近的两个屏幕截图中看到列表框右侧有一个滚动条。单击这两个函数会显示反编译的代码。这些是说“无法恢复跳转表”。我怀疑如果我选择了错误的架构会发生这种情况。
  • 复位向量在地址FFFE。
  • FFFE 没有地址。列表从 0000 到 49db。我想知道我是否使用了正确的设置来导入原始二进制格式?

标签: msp430 ghidra


【解决方案1】:

您不是在反编译原始二进制文件,而是一个文本文件。

如果您查看自述文件,则表明这是一个预构建的 TI-TXT 映像。

基本上,它包含以十六进制编码的小块数据,前缀为加载地址。见格式定义here

Ghidra 支持类似的格式(Intel HEXMotorola S-Records),但不支持 TI-TXT。我没有找到将其转换为受支持格式的工具,但这可能可以通过一个小脚本来完成。

【讨论】:

  • 您能否在我上面的 MSP430 示例中说明支持哪种类型的文件?
  • 我不确定,我不知道 IDE。但显然,TI 为 MSP430 维护了一个 GCC 版本,因此您可以编译 ELF 格式的示例?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2020-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多