IDA逆向代码 --- F5 反汇编识别错误的情况

本文探讨了在使用IDA进行反汇编时遇到的代码识别错误,特别是在F5伪代码中变量未正确赋值的问题。通过示例展示了如何从汇编层面理解正确的表达式,并提出通过动态调试来校正IDA的识别错误。作者欢迎读者分享更优的解决方案。
摘要由CSDN通过智能技术生成

场景:F5 之后的伪代码,变量直接被使用,没有被赋值,但是根据上下文,一定具有含义;
例如:

v3 = &v104 + 0x14 * (signed __int16)v29 - 0x442;
// 这里的104 是什么??前面只有定义,没有被赋值,而且不属于数组中的一部分

查看对应Arm指令:
.text:9FAADCD8                 MOVS    R6, #0x50    ; 这里的0x50 是什么??
.text:9FAADCDA                 STR     R0, [SP,#0x1218+var_1200]  
.text:9FAADCDC                 LSLS    R3, R4, #0x10
.text:9FAADCDE                 ASRS    R3, R3, #0x10
.text:9FAADCE0                 MULS    R6, R3
.text:9FAADCE2                 MOVS    R0, #0x1200   ;这里 是&V104  查看 int v104; // [sp+1200h] [bp-18h]@9
.text:9FAADCE6                 LDR     R1, =0xFFFFEEF8
.text:9FAADCE8                 ADD     R0, SP
.text:9FAADCEA                 ADDS    R6, R0, R6
.text:9FAADCEC                 MOVS    R4, #1
.text:9FAADCEE                 ADDS    R6, R6, R1

查看对应的汇编

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值