在IDA中,我将按Alt + G并将T寄存器设置为1,以使代码首先成为Thumb,但是在Ghidra中,我不确定如何强制执行。

上下文是我有一些功能由数据结构所指向,我已经将它们设置为具有新函数指针类型的数据类型,因此我不确定是否真的需要重新分析代码,它是否可以正确地流动(也不确定如何

[Edit:]我最初选择ARMv4作为目标,在阅读了一些ARM体系结构并再次从ARMv7开始后,代码正确地具有Thumb支持。

#1 楼

因此,一旦在具有Thumb(ARMv7 +)的体系结构中选择感兴趣的区域并按CTRL + R,将打开“设置寄存器值”编辑器,然后选择TMode并设置值1。

编辑->工具选项->选项|列表字段|注册字段|显示隐藏寄存器集,您的清单中将具有

assume TMode = 0x1


这样的注释

评论


您知道如何通过脚本执行此操作吗? currentProgram对象具有一个getRegister方法,但没有setRegister。

–成吉思汗
19/12/24在18:23

ARM体系结构支持的很好的参考Thumb:infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.kui0100a/…

– jmcarter9t
2月4日20:08