先反汇编
$ aarch64-linux-gnu-objdump -d -S vmlinux >  vmlinux.txt

然后再分析5.0内核的相关指令
8068709 ffff000011c30040 <__create_page_tables>:
8068710         mov     x28, lr
8068711 ffff000011c30040:       aa1e03fc        mov     x28, x30
8068712         adrp    x0, init_pg_dir
8068713 ffff000011c30044:       f0003260        adrp    x0, ffff00001227f000 <init_pg_dir>
8068714         adrp    x1, init_pg_end
8068715 ffff000011c30048:       900032a1        adrp    x1, ffff000012284000 <_end>

以如下指令为例:
ffff000011c30044:       f0003260        adrp    x0, ffff00001227f000 <init_pg_dir>

查看符号表
$ cat System.map | grep init_pg_dir
ffff00001227f000 B init_pg_dir

找到 C6.2.10章节 ADRP的解释
f0003260机器码,immlo 为 bit30:bit29, immhi 为 bit23~bit5
所以 immhi:immlow 为 0b'000000000011001001111
imm = SignExtend(immhi:immlo:Zeros(12), 64);则为 0b'000000000011001001111000000000000 == 0x'64f000
而ffff00001227f000 - ffff000011c30000 == 0x'64f000
两者一致

ARM指令解析之ADRP相关推荐

  1. Android逆向之旅--「最右」签名算法解析(ARM指令学习恶心篇)

    一.前言 今天开始我们后续会开展三篇左右的arm指令学习,因为之前一直都有同学和我说有没有详细的arm指令分析,这个之前的确一直没有好的样本,有的人可能说可以用自己写的C代码然后反编译so来学习,那样 ...

  2. 最右android工资,Android逆向之旅—最右App的签名算法解析(ARM指令学习不舍篇)

    一.逆向分析 本文继续来看最后一篇介绍ARM指令学习,之前的两篇文章已经详细介绍了ARM指令的基础知识,本文继续把剩下来的所有都介绍完了,首先一定要去看前面的基础篇和进阶篇,不然我都很难保证你看这篇文 ...

  3. arm汇编解析—qnnpack卷积实现

    目录 前言 基础直通车 arm基础知识 arm指令释义 qnn汇编代码解析 前言 最近在移植QNNPACK神经网络加速库,涉及到对卷积arm汇编的修改,这边做个记录,对汇编部分的内容进行注释,顺便学习 ...

  4. arm指令bne.w改成b,即无条件跳转

    近期逆向一个程序,需要把bne.w改成b,无条件跳转.由于ios逆向不像pc上,可以在od里直接改汇编指令,这篇文章给了我很大的帮助.通过memory write 修改后,验证可行后,再用ultrae ...

  5. ARM linux解析之压缩内核zImage的启动过程

    ARM linux解析之压缩内核zImage的启动过程 首先,我们要知道在zImage的生成过程中,是把arch/arm/boot/compressed/head.s 和解压代码misc.c,deco ...

  6. ARM指令浅析1(mov、ldr)

    1.环境及优化项 采用-O2优化选项,通过arm处理器架构下的gcc编译器编译用例生成汇编码查看其生成的指令.至于为什么用O2选项,是因为在某些用例中,加入-O3选项之后,arm处理器架构下gcc编译 ...

  7. 常用ARM指令总结(未完待续)

    ARM指令集介绍 7种工作模式,2种工作状态 ARM指令的种类,共有7类指令,可以完成存储器访问,数据运算,程序跳转,处理器控制,以及帮助编程的伪指令等. 数据处理指令大致分为三类: a.数据传送指令 ...

  8. ARM指令寻址方式之: 内存访问指令寻址

    4.2  内存访问指令寻址 根据内存访问指令的分类,内存访问指令的寻址方式可以分为以下几种. ① 字及无符号字节的Load/Store指令的寻址方式. ② 杂类Load/Store指令的寻址方式. ③ ...

  9. ARM指令寻址方式之: 数据处理指令的寻址方式

    4.1  数据处理指令的寻址方式 4.1.1  数据处理指令的寻址方式概要 数据处理指令的基本语法格式如下. <opcode> {<cond>} {S} <Rd>, ...

最新文章

  1. 软件发布版本的业界规则?
  2. 怎么查看linux是不是as7u4,Linux下搭建Android开发环境
  3. java的mock测试框架
  4. java web前端模版,以Eclipse替核心搭建JAVA WEB开发环境(三)-模板项目Archetype
  5. 中运量71路线路图_双语导乘对标“航空式服务”,71路中运量车队服务进博会出“新招”...
  6. UVA - 11882Biggest Number dfs+期望剪枝
  7. mysql 雇员表脚本,mysql压力测试脚本实例_MySQL
  8. 自动摘要php,phpcms修改手动摘要255字符、自动摘要200字符及取消自动摘要
  9. 《spring-boot学习》-07-spring data jpa
  10. WPF中MVVM模式(简略介绍)
  11. Visual Studio 代码提示选不中
  12. RNA甲基化修饰m6A检测热门技术—MeRIP-seq
  13. 2020启智开发者大会精彩来袭,这些公开课不容错过!
  14. python中的可迭代是什么意思_Python可迭代跟迭代器的区别
  15. 设置vscode默认终端为msys/MinGW32/MinGW64
  16. matlab tic和toc单位,Matlab中tic和toc用法
  17. vmware下虚拟机centos,root登录时候提示鉴定故障解决方法
  18. dell服务器T100无法进入系统,戴尔电脑开机进不去,一直在转圈圈,怎么处理?
  19. 破解Kotlin协程创建调用的那些事
  20. 存在正文时不允许未命名的原型参数_用Swift开发macOS程序, 六、原型、格式与开发说明...

热门文章

  1. 山东大学单片机原理与应用实验 3.7LCD 1602显示实验
  2. ESP8266-Arduino编程实例-L9110直流电机风扇传感器模块
  3. 养鸡场的计算机管理,养鸡场管理系统7.3 免费版
  4. 安装过千月(BlueSoleil)蓝牙软件后,网络图标上就一直显示红叉,但却能上网
  5. 立创开源 tsop48-dip48通用
  6. VxWorks的移植和BSP定制过程
  7. 完美世界手游服务器维护时间表,完美世界手游开服表
  8. 排序算法比较次数总结
  9. 计算机系迎新晚会策划,计算机科学系迎新晚会策划书.doc
  10. 最新云知梦Jquery项目实战 jq重入门到精通(完整 )