逆向_06JCC跳转相关指令

  1. JCC
    1. JMP指令
    2. call指令
    3. RETN指令
    4. CMP指令
    5. TEST指令
    6. JCC指令

JCC

JMP指令

  • JMP只是改eip的值,无其他操作

call指令

  • 修改eip的值
  • 将原函数/call下一条指令(返回)地址入栈
  • 类似操作
    • push eip
    • mov eip,0x12345678

RETN指令

  • 将原函数/call下一条指令(返回)地址出栈
  • 修改eip的值
  • 类似操作
    • pop eip

CMP指令

  • 指令格式:CMP R/M,R/M/IMM
  • 作用:该指令比较两个操作数,实际上,它相当于SUB指令,但是相减的结果并不保存到第一个操作数当中,只是根据相减的结果来改变零标志位的,当两个操作数相等的时候零标志位置1

TEST指令

  • 指令格式:TEST R/M,R/M/IMM
  • 作用:该指令在一定程度上和CMP类似的,两个数值进行操作,结果不保存,但是会改变相应标志位

JCC指令

编号 指令 条件解释 标志位
1 JE/JZ 结果为零则跳转(相等时跳转) ZF=1
2 JNE/JNZ 结果不为零则跳转(不相等时跳转) ZF=0
3 JS 结果为负则跳转 SF=1
4 JNS 结果不为负则跳转 SF=0
5 JP/JPE 结果中1的个数为奇数则跳转 PF=1
6 JNP/JPO 结果中1的个数为偶数则跳转 PF=0
7 JO 结果溢出了则跳转 OF=1
8 JNO 结果没有溢出则跳转 OF=0
9 JB/JNAE 小于则跳转(无符号数) CF=1
10 JNB/JNAE 不小于则跳转(无符号数) CF=0
11 JBE/JNA 小于等于则跳转(无符号数) CF=1 or ZF=1
12 KNBE/JA 大于则跳转(无符号数) CF=0 and ZF=0
13 JL/JNGE 小于则跳转(有符号数) SF≠OF
14 JNL/JGE 大于等于则跳转(有符号数) SF=OF
15 JLE/JGE 小于等于则跳转(有符号数) ZF=1 or SF≠OF
16 JNLE/JG 大于则跳转(有符号数) ZF=0 and SF=OF

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 787772394@qq.com

文章标题:逆向_06JCC跳转相关指令

本文作者:二豆子·pwnd0u

发布时间:2020-09-17, 14:07:45

最后更新:2020-09-24, 17:43:20

原始链接:http://blog.codefat.cn/2020/09/17/%E9%80%86%E5%90%91-06JCC%E8%B7%B3%E8%BD%AC%E7%9B%B8%E5%85%B3%E6%8C%87%E4%BB%A4/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

/*爱心代码*/ /*雪花效果*/ /*百度代码自动提交*/