如何在空白代码里面写个判断,简单的小问题
我想在OD里面的一个逆向关键地方跳到空白代码 自己写个判断 当eax=2的时候下面的je或者jnz什么的跳转就能实现 如果eax是大于或者小于2的时候就不跳 求师傅指导
本帖最后由 bettering 于 2015-1-7 22:12 编辑
JA/JNBE 不小于或不等于时转移.
JAE/JNB 大于或等于转移.
JB/JNAE 小于转移.
JBE/JNA 小于或等于转移
所以
mov eax,2--EAX赋值
cmp eax,2--对比
jnb xxxxxx--这里就是实现的跳转了
条件跳转设置条件即可mov
bettering 发表于 2015-1-7 22:08
JA/JNBE 不小于或不等于时转移.
JAE/JNB 大于或等于转移.
JB/JNAE 小于转移.
大大是判断寄存器的eax不是自己赋值给eax呢
现在我确实想不出好的办法
zl123456 发表于 2015-1-7 21:50
条件跳转设置条件即可mov
师傅 详细一点吧,小菜有点没底
Crook 发表于 2015-1-7 22:18
大大是判断寄存器的eax不是自己赋值给eax呢
现在我确实想不出好的办法
……我只是给EAX一个值,既然eax有值了,你直接判断不就行了{:5_188:}
1.jmp 空白处
2.cmp eax,2
3.je到6
4.mov 赋值给影响跳转的因素(不等于2时)
5.jmp 回去
6.mov 赋值给影响跳转的因素(等于2时)
7.jmp 回去
bettering 发表于 2015-1-7 22:31
……我只是给EAX一个值,既然eax有值了,你直接判断不就行了
感谢师傅,是我糊涂了 没好好查指令 其实是一个比较复杂的SMC 谢谢师傅了
7楼说得很清楚了,就是一个简单的比较指令的运用
cmp eax, xx
估计楼主是遇到某个patch的位置几次断到的情况了,
建议是每次运行一次把运行次数放到代码断,每次断到的时候 读取一次这个代码段的数据
页:
[1]
2