B

无条件跳转

一条汇编指令 __text:000000010333E3D4                 B               loc_10333EA74

对应字节码        A8 01 00 14

其中,0x14是B对应的字节码,0x1A8是对应的偏移

0x10333EA74 - 0x10333E3D4 = 0x6A0 = 0x1A8 * 4

这里*4推测是一条指令4个字节的意思。

CBZ

有条件跳转

一条汇编指令 __text:00000001031CAE70                 CBZ             X20, loc_1031CB224

对应字节码 B4 1D 00 B4

其中,右边的0xB4是指令CBZ对应的字节码,左边的0xB4应该对应X20(不确定),0x1D对应的偏移

0x1031CB224 - 0x1031CAE70 = 0x3B4 = 0x1D * 8 * 4

这里*4同样应该是指令占4个字节的意思。*8可能是因为8个bit?为什么指令B没有*8也不得而知。

说了这么多,是想直接修改汇编,将CBZ改成B。

__text:00000001031CAE70                 CBZ             X20, loc_1031CB224

B4 1D 00 B4

===》

__text:00000001031CAE70                 B               loc_1031CB224

ED 00 00 14

顺便一提,这也就能更直观的说明,什么时候需要用B,什么时候需要用BR了:

一条指令4字节,指令B占1个字节,偏移占3个字节,当偏移大于0xFFFFFF的时候,就需要通过寄存器跳转指令BR来操作了。

基本上都是个人推论。

ARM64汇编,跳转命令B\CBZ,字节码相关推荐

  1. java 字节码查看_一种查看java字节码时显示方法调用关系图的方法与流程

    本发明涉及一种代码逻辑分析方法,具体涉及一种查看java字节码时显示方法调用关系图的方法. 背景技术: 目前软件反编译领域有不少对可执行文件进行反编译的工具如IDA,也有对Java代码生成的中间码文件 ...

  2. 【JVM源码解析】模板解释器解释执行Java字节码指令(上)

    本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Archit ...

  3. Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现

    关于怎么查看字节码的五种方法参考本人另一篇文章<Java以及IDEA下查看字节码的五种方法> 查看汇编语言汇编码 说要看汇编还是很有必要的,因为有些地方比如加锁其实还是通过汇编实现的,只看 ...

  4. 你还在为怎么查看字节码指令而担忧吗?

    来自:烟雨星空 前言 我们平时编码过程中,可能很少去查看 Java 文件编译后的字节码指令.但是,不管你是因为对技术非常热爱,喜欢刨根问底,还是想在别人面前装X .我认为,都非常有必要了解一下常见的字 ...

  5. 这一次,彻底弄懂 Java 字节码文件!

    作者 | 东升的思考 责编 | Elle 不啰嗦,直接从最最简单的一段Java源代码开启Java整体字节码分析之旅. Java 源码文件 package com.dskj.jvm.bytecode; ...

  6. JVM学习笔记之字节码指令集

    目录 背景 概述 执行模型 字节码与数据类型 指令分类 加载与存储指令 再谈操作数栈与局部变量表 局部变量压栈指令 常量入栈指令 出栈装入局部变量表指令 算术指令 所有算术指令 比较指令的说明 类型转 ...

  7. Java字节码的详细讲解-刘宇

    Java字节码的详细讲解-刘宇 一.字节码的整体结构 二.字节码范围解析 2.1.魔数 2.2.版本信息 2.3.常量池(constant pool) 2.4.描述符规则 2.5.访问标志(Acces ...

  8. 【Java 虚拟机原理】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )

    文章目录 一.字节码文件 与 JVM 二.字节码文件示例 三.字节码文件二进制结构分析 1.魔数 2.次版本号 3.主版本号 4.常量池个数 一.字节码文件 与 JVM Java 源码编译成 Clas ...

  9. java的字节码无法显示_【java】查看Java字节码文件内容的方法+使用javap找不到类 解决方法...

    研究synchronized底层实现,涉及到查看java字节码的需要 前提是,你的PC已经成功安装了JDK并别配置了环境变量. ==========查看方法========= 一.javap查看简约字 ...

最新文章

  1. Ubuntu 14.04 opencv 2.4.9 安装
  2. 中国12个工科世界第一,网友:全是不吃香的|软科2021世界一流学科排名
  3. 数据库密码加密 使用的是 druid加密
  4. IIS 发布网站到外网
  5. Java黑皮书课后题第2章:*2.22(金融应用:货币单位)改写程序清单2-10,解决将double转int可能会造成精度损失问题。以整数值作为输入,其最后两位代表的是美分币值
  6. c语言 中多一个分号,问什么C程序里总是提示缺少分号;,而明明有分号?
  7. python面向对象三大特性、类的约束、print带颜色输出及super补充
  8. qt 获取发送信号的对象
  9. linux vim 添加注释_vim基础教程
  10. 799元!乐视智能门锁新品Le1S发布
  11. 委外订单--采购入库单不能记账
  12. Java GUI 表白程序 | 源码
  13. 深度学习概念挖掘——GPU
  14. OpenHarmony更新编译问题及解决办法
  15. oracle数据库在公有云上,【云端起舞】在Oracle公有云上创建克隆数据库
  16. Chrome浏览器如何导入证书(最新!)
  17. 23.5 MySQL架构
  18. My Bookmarks
  19. mysql设置字符集为gb18030_GB2312、GBK、GB18030 这几种字符集的主要区别
  20. 网优谷给零基础JAVA新人的一些建议

热门文章

  1. 光学液氮恒温器T9015-4W的技术参数
  2. airflow配置相关
  3. Git: ‘LF will be replaced by CRLF the next time Git touches it‘ 问题解决与思考
  4. 梯度下降与ReLU激活函数
  5. 程序员给女友4千生活费,收到女友错发信息后分手,神对话!
  6. canvas跨域:Tainted canvases may not be exported.
  7. java中关闭redis事务_Redis 事务支持
  8. 玩QQ游戏,见到好几个图像是美女的QQ,就不始玩
  9. 6-1 顺序表创建和就地逆置 (10 分)
  10. 爱豆教育:新手小白在亚马逊开店需要注意这4点问题?