当前位置: 首页 > news >正文

硬编码(修改RIP相关指令)

修改RIP相关指令


0x70-0x7F (JCC)

  1. 条件跳转,后面跟一个字节立即数的偏移(有符号),共两个字节(定长指令)
  2. 如果条件成立,跳转到当前指令地址 + 当前指令长度 + lb
  3. 向前跳7F,向后跳80

在这里插入图片描述

上图中70-7f的硬编码为jcc跳转指令(定长),可以看到大于等于80是向上跳,而小于80是向下跳

这是一个字节的情况

我们来看下两个字节的JO等指令如何查表(指令相同但硬编码不同):
在这里插入图片描述
首先查主表Table A-2 0F的位置

在这里插入图片描述
他告诉我们这个指令是2个字节,要我们去查Table A-3的表,我们再接着查Table-3 80的位置

Table A-3. Two-byte Opcode Map: 80H — F7H (First Byte is 0FH) * 查这张表

在这里插入图片描述
对应的是Jcc指令,再看一下上面的一排小字 (Jccf64, Jz - Long-displacement jump on condition)意思是:64位模式下忽略操作数大小前缀,强制使用64位,长位移跳跃条件

这些2个字节的jcc指令也有向上跳和向下跳的区分,大于等于0x80000000向上,反之向下


其他修改RIP的指令

  1. 0xE0
    • RCX = RCX -1 当 ZF标志位 = 0 && ECX != 0 时跳转到当前指令地址 + 当前指令长度 + 偏移
  2. 0xE1
    • RCX = RCX -1 当 ZF标志位 = 1 && ECX != 0 时跳转到当前指令地址 + 当前指令长度 + 偏移
  3. 0xE2
    • RCX = RCX -1 当 ECX != 0 时跳转到当前指令地址 + 当前指令长度 + 偏移
  4. 0xE3
    • 当RCX = 0 时跳转到当前指令地址 + 当前指令长度 + 便宜
  5. 0xE8
    • CALL指令的下一条地址
  6. 0xE9
    • JMP指令跳转
  7. 0xEA
    • JMP 跨段跳转
  8. 0xEB
    • JMP 短地址跳转
  9. 0xC3
    • RIP出栈
  10. 0xC2
    • RIP出栈后,RSP = RSP + Iw
  11. 0xCB
    • 出栈8个字节,低4个字节赋值给RIP,高4个字节中低2位赋值给CS
  12. 0xCA
    • 出栈8个字节,低4个字节赋值给RIP,高4个字节中低2位赋值给CS,RSP = RSP + Iw

在这里插入图片描述

相关文章:

  • 关于AUTOSAR AP 开发流程的研究
  • 【QT】控件一(QWidget、Button、Label)
  • Step-Audio-AQAA 解读:迈向「纯语音」交互的端到端 LALM 新里程
  • 将 CSV 转换为 Shp 数据
  • 关于Javascript ES6箭头函数用法的分析,函数声明的几个方式
  • CTF实战技巧:获取初始权限后如何高效查找Flag
  • S参数对称性及能量守恒
  • Qwen3 Embedding 测试
  • 【python深度学习】Day53 对抗生成网络
  • squirrel 语言入门教程
  • TLSF 内存分配器
  • Boost.Pool 和 Boost.Fast_Pool 介绍与使用
  • FreeRTOS的低功耗Tickless模式
  • 【计算机网络】非阻塞IO——epoll 编程与ET模式详解——(easy)高并发网络服务器设计
  • 负载均衡器:Ribbon和LoadBalance
  • thinkphp8提升之查询
  • 深度解析JavaScript闭包:从原理到高级应用
  • 物理“硬核”切换镜头!Pura 80 Ultra一镜双目镜头切换的仪式感
  • Veeam Backup Replication系统的安装与使用
  • 低温对FPGA的核心影响
  • 做网站的公司北京有哪些/广州今日新闻最新消息
  • 网网站制作/三只松鼠网络营销策略
  • 网站 被攻击_主业篡改 被黑了 织梦做的站/百度自动优化
  • 网站怎样做优化调整/深圳搜索竞价账户托管
  • 做网站二级页面的/鹤壁网络推广哪家好
  • 专门做房产的网站/资源搜索神器