吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 976|回复: 10
收起左侧

[求助] 关于IDA修改jz指令跳转的问题

[复制链接]
xuri422 发表于 2024-2-26 16:12
如图所示,该代码的红色箭头处原来是jz,我修改为jnz了。但是运行时仍然会往右边走(未修改之前也是往右边走)。
想请教一下各位大佬,我想让代码往左边走,应该怎么修改?
333.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

HonDmOon 发表于 2024-2-26 16:21
让程序不跳转,将跳转指令修改成 nop
让程序一直跳转,将 jz或jnz 跳转修改为 jmp
飘零星夜 发表于 2024-2-26 16:22
我猜测你是通过F2 修改的,或者 编辑里面的patch 修改的。
这样的只改变了文本显示而已。

要修改调试器调用的执行程序才行,比如对应的exe dll
 楼主| xuri422 发表于 2024-2-26 16:24
HonDmOon 发表于 2024-2-26 16:21
让程序不跳转,将跳转指令修改成 nop
让程序一直跳转,将 jz或jnz 跳转修改为 jmp

按上面的情况,nop的话就是左右两边都不会跳了吧;
jmp的话需要跟一个地址,但是左边这里又没有地址,所以不知道应该怎么改?
 楼主| xuri422 发表于 2024-2-26 16:25
飘零星夜 发表于 2024-2-26 16:22
我猜测你是通过F2 修改的,或者 编辑里面的patch 修改的。
这样的只改变了文本显示而已。

我是通过[edit]-->[patch program]-->[Assemble...]修改对应的exe的
zhuxiangyu1024 发表于 2024-2-26 16:29
我看你的回答,你是不是修改完之后没用apply patch bytes to xxxxx,至于为什么左边没有地址,你百度一下怎么显示,可以直接jmp到地址,不要看ida给你生成的loc_aaaaa。
HonDmOon 发表于 2024-2-26 16:31
xuri422 发表于 2024-2-26 16:24
按上面的情况,nop的话就是左右两边都不会跳了吧;
jmp的话需要跟一个地址,但是左边这里又没有地址,所 ...

就你图片的代码:
nop 是走左侧流程,不会跳转;
jmp loc_428479; 走右侧流程,强制跳转;

应用patch 是ida [Edit]->[Patch program]->[Appliy patches to input file]

免费评分

参与人数 1热心值 +1 收起 理由
爱飞的猫 + 1 热心回复!

查看全部评分

 楼主| xuri422 发表于 2024-2-26 16:47
是的,我忘记贴后面的步骤,都有Apply patches to input file...
在Output窗口也已经显示:
Applied 1/1 patch(es)
Applied 2/2 patch(es)这些提示了。
ZeHao666 发表于 2024-2-26 22:14
怎么知道jz和jnz的操作码呀?还有就是32位的芯片对应的一条指令的机器码怎么只有16位呀

点评

可以在调试器编译对应指令来查看。 [md]短跳的 JZ/JE 对应的操作码(OpCode)是 `74`,JNZ/JNE 是 `75` —— 参数(Operand)长度为 1 字节。 远跳的 JZ/JE 对应的操作码(OpCode)是 `0F 84`,JNZ/JNE 是 `0F 8  详情 回复 发表于 2024-2-28 01:45
爱飞的猫 发表于 2024-2-28 01:45
ZeHao666 发表于 2024-2-26 22:14
怎么知道jz和jnz的操作码呀?还有就是32位的芯片对应的一条指令的机器码怎么只有16位呀

可以在调试器编译对应指令来查看。

短跳的 JZ/JE 对应的操作码(OpCode)是 74,JNZ/JNE 是 75 —— 参数(Operand)长度为 1 字节。
远跳的 JZ/JE 对应的操作码(OpCode)是 0F 84,JNZ/JNE 是 0F 85 —— 参数(Operand)长度为 4 字节。

还有就是32位的芯片对应的一条指令的机器码怎么只有16位呀

x86 指令集属于复杂指令集(CISC),其指令编码长度不固定。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 01:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表