首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Capstone动态地从手臂切换到拇指

Capstone动态地从手臂切换到拇指
EN

Stack Overflow用户
提问于 2020-02-24 19:22:37
回答 1查看 303关注 0票数 0

我正在尝试写一个简单的脚本来反汇编ARM/THUMB字节码。在ARM中,从一种模式切换到另一种模式是很常见的,因此反汇编程序能够遵循这一点是非常关键的。尽管文档上说它非常简单(参见https://www.capstone-engine.org/lang_python.html#62-dynamically-change-disassemble-mode-at-run-time ),但我还是遇到了问题。对于我来说,这在运行时似乎不起作用。

下面是我的测试:

代码语言:javascript
复制
for i in md.disasm(CODE, 0x1000):
    print("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))
    if i.mnemonic == "bx":
        md.mode = cs.CS_MODE_THUMB

请注意,它实际上确实进入了拇指模式,只是不是在循环期间。因此,发生的情况是,代码在ARM中被完全反汇编,但如果我再次运行它,它将在THUMB中被完全反汇编。

预先感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2020-11-28 02:51:24

disasm在一次调用中反汇编多条指令,所以当您更改模式时为时已晚。

您可以一次反汇编一条指令,也可以使用cs_disasm_iter

参考链接:https://www.capstone-engine.org/iteration.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60374888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档