12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 339|回复: 0

逆向基础笔记六 汇编跳转和比较指令

[复制链接]

60

主题

60

帖子

130

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
130
发表于 2021-5-8 00:20:48 | 显示全部楼层 |阅读模式
继续更新个人的学习笔记,
其它笔记传送门
逆向基础笔记一 进制篇
逆向基础笔记二 数据宽度和逻辑运算
逆向基础笔记三 通用寄存器和内存读写
逆向基础笔记四 堆栈篇
逆向基础笔记五 标志寄存器
逆向基础笔记七 堆栈图(重点)
逆向基础笔记八 反汇编分析C语言
逆向基础笔记九 C语言内联汇编和调用协定
逆向基础笔记十 汇编寻找C程序入口
逆向基础笔记十一 汇编C语言基本范例
逆向基础笔记十二 汇编 全局和局部 变量
逆向基础笔记十三 汇编C语言范例转换
逆向基础笔记十四 汇编嵌套if else
逆向基础笔记十五 汇编比力三种循环
逆向基础笔记十六 汇编一维数组
逆向基础笔记十七 汇编二维数组 位移 乘法
逆向基础笔记十八 汇编 结构体和内存对齐
逆向基础笔记十九 汇编switch比力if else
逆向基础笔记二十 汇编 指针(一)
逆向基础笔记二十一 汇编 指针(二)
逆向基础笔记二十二 汇编 指针(三)
逆向基础笔记二十三 汇编 指针(四)
逆向基础笔记二十四 汇编 指针(五) 系列完结
JCC指令

cc 代表 condition code(状态码)
Jcc不是单个指令,它只是描述了跳转之前检查条件代码的跳转助记符
比方JNE,在跳转之前检查条件代码
典型的情况是进行比力(设置CC),然后使用跳转助记符之一
CMP EAX,0JNE XXXXX条件代码也可以用AND、OR、XOR、加法、减法(固然也可以是CMP)等指令来设置
JCC指令用于改变EIP(CPU要读取的指令所在)
JMP指令

JMP指令:修改EIP的值
JMP指令只影响了EIP,不影响堆栈和其它通用寄存器
JMP 寄存器/立即数 相当于 MOV EIP,寄存器/立即数
CALL指令

CALL指令和JMP指令都会修改EIP的值
但CALL指令会将返回所在(CALL指令的下一条指令所在)压入堆栈
因此也会引起esp的变化
RET指令

call调用跳转后执行完相关代码完要返回到call的下一条指令时使用ret指令
ret指令相当于pop eip
比力指令

CMP指令

指令格式:CMP R/M,R/M/IMM
CMP指令只改变标志寄存器的值
该指令是比力两个操纵数,实际上,它相当于SUB指令,但是相减的结果并不保存到第一个操纵数中
只是根据相减的结果来改变ZF零标志位的,当两个操纵数相称的时候,零标志位置1
例:
MOV EAX,100MOV EBX,200CMP EAX,ECXCMP AX,WORD PTR DS:[405000]CMP AL,BYTE PTR DS:[405000]CMP EAX,DWORD PTR DS:[405000]TEST指令

指令格式:TEST R/M,R/M/IMM
该指令在一定程度上和CMP指令时雷同的,两个数值进行与操纵,结果不保存,但是会改变相应标志位
与的操纵表项如下:
运算结果1 and 111 and 000 and 100 and 00可以看到只要有任一操纵数为0时,结果就为0
常见用法:用这个指令,可以确定某寄存器是否等于0
只有当eax=0时 eax and eax才会是0
以是
TEST EAX,EAX观察ZF(零标志位)就可以判断EAX是否为0
JCC指令表

起首要明白一点,所有的判断跳转指令都是根据标志位来进行判断的
JCC指令也只影响EIP
指令英文全称含义判断标志位JE, JZjump equal,jump zero结果为零则跳转(相称时跳转)ZF=1JNE, JNZjump not equal,jump not zero结果不为零则跳转(不相称时跳转)ZF=0JSjump sign结果为负则跳转SF=1JNSjump  not sign结果为非负则跳转SF=0JP, JPEjump parity,jump parity even结果中1的个数为偶数则跳转PF=1JNP, JPOjump not parity,jump parity odd结果中1的个数为偶数则跳转PF=0JOjump overflow结果溢出了则跳转OF=1JNOjump not overflow结果没有溢出则跳转OF=0JB, JNAEjump below,jump not above  equal小于则跳转 (无符号数)CF=1JNB, JAEjump not below,jump above  equal大于等于则跳转 (无符号数)CF=0JBE, JNAjump below equal,jump not above小于等于则跳转 (无符号数)CF=1 or ZF=1JNBE, JAjump not below equal,jump above大于则跳转(无符号数)CF=0 and ZF=0JL, JNGEjump less,jump not greater  equal小于则跳转 (有符号数)SF≠ OFJNL, JGEjump not less,jump greater  equal大于等于则跳转 (有符号数)SF=OFJLE, JNGjump less equal,jump not greater小于等于则跳转 (有符号数)ZF=1 or SF≠ OFJNLE, JGjump not less equal,jump greater大于则跳转(有符号数)ZF=0 and SF=OF
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-29 09:34 , Processed in 0.109375 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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