首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >独角兽引擎-同时模拟手臂和拇指模式

独角兽引擎-同时模拟手臂和拇指模式
EN

Stack Overflow用户
提问于 2021-03-01 11:27:05
回答 1查看 183关注 0票数 0

我是汇编代码、Keystone引擎和Unicorn引擎的新手,我在尝试解决逆向工程挑战时遇到了一个问题。

我得到了一些汇编代码,其中包括arm和thumb模式指令(CODE16和CODE32)。

但是,在初始化仿真器时,似乎只有两种选择。mu = Uc(UC_ARCH_ARM, UC_MODE_ARM) or mu = Uc(UC_ARCH_ARM, UC_MODE_THUMB)

当我选择其中一个时,只运行汇编代码的一部分。我使用的是python绑定。我是否正在尝试做一些不可能或不受支持的事情?

EN

回答 1

Stack Overflow用户

发布于 2021-03-11 20:16:29

只需在任何模式下初始化,就像在钩子中一样正常(在C中):

代码语言:javascript
复制
static void hook_code(uc_engine *uc, uint64_t address, uint32_t size, void *user_data)
{
    uc_reg_read(uc, UC_ARM_REG_CPSR, &cpsr);
    int thumb_state = cpsr & 0x20;

    if (thumb_state){      // if thumb bit set...
    
        // Do Thumb things (e.g capstone Thumb mode disassemble)

    } else {              // Arm mode set
    
        // Do Arm things (e.g capstone Arm mode disassemble)
    }   
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66416246

复制
相关文章

相似问题

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