【送书福利第五期】:ARM汇编与逆向工程

文章目录

  • 📑前言
  • 一、ARM汇编与逆向工程
    • 1.1 书封面
    • 1.2 内容概括
    • 1.3 目录
  • 二、作者简介
  • 三、译者介绍
  • 🌤️、粉丝福利

📑前言

与传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)架构相比,Arm架构的指令集更加简洁明了,指令执行效率更高,能够在更低的功耗下完成同样的计算任务,因此在低功耗、嵌入式等领域具有广泛的应用。同时,由于ARM公司采用了开放授权的商业模式,许多芯片厂商都可以使用Arm架构进行设计和生产,因此Arm架构在移动设备、智能家居、工控等领域也得到了广泛应用。此外,Arm架构还具有可扩展性和兼容性,可以支持从单核到多核的不同规模和复杂度的处理器设计,并且可以运行各种不同的操作系统,如Linux、Android等。

随着Arm架构的广泛应用,相关安全事件层出不穷,各类Arm设备的安全性亟待提升,设备逆向分析工作需要进一步深入,以了解设备内部实现方式和运行机制,发现潜在的安全漏洞和缺陷,从而加强设备的安全性。此外,分析黑客的攻击载荷和恶意软件,了解攻击者的攻击手段和目的,可以帮助我们及时发现并阻止攻击,从而保护系统和数据。因此,熟练掌握Arm逆向分析技术十分重要。

一、ARM汇编与逆向工程

1.1 书封面

在这里插入图片描述

1.2 内容概括

《ARM汇编与逆向工程 蓝狐卷 基础知识》分为12章,从基础的字节和字符编码到操作系统原理、Arm架构和指令,再到静态和动态分析、逆向工程实践,循序渐进地讲解Arm逆向工程的方方面面,而且每一章都包含许多实际的案例,可以帮助读者更好地理解和掌握相关知识。同时,书中也介绍了许多工具和技术,如IDA Pro、Radare2、Binary Ninja、Ghidra、GDB等,这些工具在实际逆向工程中都有着广泛的应用。此外,本书还介绍了Arm环境的构建和使用,可以帮助读者快速搭建自己的Arm环境。

总的来说,本书对逆向工程的各个方面都进行了较为全面的介绍,对于想要学习Arm逆向工程的读者来说是一本很好的入门书籍,可以帮助读者建立起Arm逆向分析技术的知识体系。同时,由于逆向工程领域的不断更新和变化,读者也需要不断学习和探索,才能在实践中获得更多的经验和技能。需要注意的是,在学习逆向工程时要遵守相关法律法规和道德规范,不能侵犯他人的知识产权和隐私权

1.3 目录

前言致谢作者简介第一部分 Arm汇编内部机制第1章 逆向工程简介 21.1 汇编简介 21.1.1 位和字节 21.1.2 字符编码 31.1.3 机器码和汇编 41.1.4 汇编 61.2 高级语言 111.3 反汇编 121.4 反编译 13第2章 ELF文件格式的内部结构 152.1 程序结构 152.2 高级语言与低级语言 162.3 编译过程 172.3.1 不同架构的交叉编译 182.3.2 汇编和链接 202.4 ELF文件概述 222.5 ELF文件头 232.5.1 ELF文件头信息字段 242.5.2 目标平台字段 242.5.3 程序入口点字段 252.5.4 表位置字段 252.6 ELF程序头 262.6.1 PHDR 程序头 272.6.2 INTERP程序头 272.6.3 LOAD程序头 272.6.4 DYNAMIC程序头 282.6.5 NOTE程序头 282.6.6 TLS程序头 292.6.7 GNU_EH_FRAME程序头 292.6.8 GNU_STACK程序头 292.6.9 GNU_RELRO程序头 312.7 ELF节头 332.7.1 ELF meta节 352.7.2 主要的ELF节 362.7.3 ELF符号 372.8 .dynamic节和动态加载 402.8.1 依赖项加载 412.8.2 程序重定位 412.8.3 ELF程序的初始化和终止节 442.9 线程本地存储 472.9.1 local-exec TLS访问模型 502.9.2 initial-exec TLS访问模型 502.9.3 general-dynamic TLS访问模型 512.9.4 local-dynamic TLS访问模型 52第3章 操作系统基本原理 543.1 操作系统架构概述 543.1.1 用户模式与内核模式 543.1.2 进程 553.1.3 系统调用 563.1.4 线程 623.2 进程内存管理 633.2.1 内存页 643.2.2 内存保护 653.2.3 匿名内存和内存映射 653.2.4 地址空间布局随机化 693.2.5 栈的实现 713.2.6 共享内存 72第4章 Arm架构 744.1 架构和配置文件 744.2 Armv8-A架构 754.2.1 异常级别 764.2.2 Armv8-A执行状态 814.3 AArch64执行状态 824.3.1 A64指令集 824.3.2 AArch64寄存器 834.3.3 PSTATE 894.4 AArch32执行状态 904.4.1 A32和T32指令集 914.4.2 AArch32寄存器 944.4.3 当前程序状态寄存器 964.4.4 执行状态寄存器 99第5章 数据处理指令 1035.1 移位和循环移位 1055.1.1 逻辑左移 1055.1.2 逻辑右移 1065.1.3 算术右移 1065.1.4 循环右移 1075.1.5 带扩展的循环右移 1075.1.6 指令形式 1075.1.7 位域操作 1125.2 逻辑运算 1205.2.1 位与 1215.2.2 位或 1225.2.3 位异或 1245.3 算术运算 1255.3.1 加法和减法 1255.3.2 比较 1275.4 乘法运算 1305.4.1 A64中的乘法运算 1305.4.2 A32/T32中的乘法运算 1315.5 除法运算 1455.6 移动操作 1465.6.1 移动常量立即数 1465.6.2 移动寄存器 1495.6.3 移动取反 150第6章 内存访问指令 1516.1 指令概述 1516.2 寻址模式和偏移形式 1526.2.1 偏移寻址 1556.2.2 前索引寻址 1626.2.3 后索引寻址 1646.2.4 字面值寻址 1666.3 加载和存储指令 1726.3.1 加载和存储字或双字 1726.3.2 加载和存储半字或字节 1746.3.3 A32多重加载和存储 1776.3.4 A64加载和存储对 186第7章 条件执行 1897.1 条件执行概述 1897.2 条件码 1907.2.1 NZCV条件标志 1907.2.2 条件码 1937.3 条件指令 1947.4 标志设置指令 1977.4.1 指令的S后缀 1977.4.2 测试和比较指令 2017.5 条件选择指令 2077.6 条件比较指令 2097.6.1 使用CCMP的布尔与条件 2107.6.2 使用CCMP的布尔或条件 212第8章 控制流 2158.1 分支指令 2158.1.1 条件分支和循环 2168.1.2 测试和比较分支 2198.1.3 表分支 2208.1.4 分支和切换 2228.1.5 子程序分支 2258.2 函数和子程序 2278.2.1 程序调用标准 2278.2.2 易失性和非易失性寄存器 2288.2.3 参数和返回值 2298.2.4 传递较大值 2308.2.5 叶子函数和非叶子函数 233第二部分 逆向工程第9章 Arm环境 2409.1 Arm板 2419.2 使用QEMU模拟虚拟环境 2429.2.1 QEMU用户模式模拟 2439.2.2 QEMU系统模式模拟 246第10章 静态分析 25210.1 静态分析工具 25210.1.1 命令行工具 25310.1.2 反汇编器和反编译器 25310.1.3 Binary Ninja Cloud 25410.2 引用调用示例 25810.3 控制流分析 26310.3.1 main函数 26410.3.2 子程序 26510.3.3 转换为字符 26910.3.4 if语句 27010.3.5 商除法 27210.3.6 for循环 27310.4 算法分析 275第11章 动态分析 28811.1 命令行调试 28911.1.1 GDB命令 28911.1.2 GDB多用户模式 29011.1.3 GDB扩展:GEF 29211.1.4 Radare2 30311.2 远程调试 30811.2.1 Radare2 30911.2.2 IDA Pro 30911.3 调试内存损坏 31111.4 使用GDB调试进程 319第12章 逆向arm64架构的macOS恶意软件 32512.1 背景 32612.1.1 macOS arm64二进制文件 32612.1.2 macOS Hello World(arm64) 32912.2 寻找恶意arm64二进制文件 33112.3 分析arm64恶意软件 33712.3.1 反分析技术 33812.3.2 反调试逻辑(通过ptrace) 33912.3.3 反调试逻辑(通过sysctl) 34212.3.4 反虚拟机逻辑(通过SIP状态和VM遗留物检测) 34612.4 总结 351

二、作者简介

Maria Markstedter是全球著名的ARM逆向工程专家,2018年入选“福布斯30岁以下科技精英”榜单,2020年得“福布斯网络安全年度人物”奖。

在这里插入图片描述

三、译者介绍

ChaMd5安全团队

国内老牌CTF战队,成立于2016年,旨在维护企业安全和培养安全人才,为各大企业提供安全服务,著有《CTF实战:技术、解题与进阶》

在这里插入图片描述

🌤️、粉丝福利

参与方式:关注博主+点赞+收藏+评论,(每人最多评论三次)
本次送书3本【取决于阅读量,阅读量越多,送的越多】
活动时间至:2024-3-21 12:00
活动结束后,会私信中奖粉丝的,各位注意查看私信哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM Cortex R52内核 01 概述

ARM Cortex R52内核 01 Introduction 1.1 Cortex-R52介绍 Cortex-R52处理器是一种中等性能、有序、超标量处理器,主要用于汽车和工业应用。它还适用于各种其他嵌入式应用,如通信和存储设备。 Cortex-R52处理器具有一到四个核心,每个核心实…

C#装箱和拆箱

一,装箱 装箱是指将值类型转化为引用类型。 代码如下: 装箱的内部过程 当值类型需要被装箱为引用类型时,CLR(Common Language Runtime)会为值类型分配内存,在堆上创建一个新的对象。值类型的数据会被复…

Github: Github actions自动化工作原理与多workflow创建和部署

Github actions 1 )概述 Github Actions 是Github官方推出的 CI/CD 解决方案 https://docs.githu.com/en/actions 优点 自动发布流程可减少发布过程中手动操作成本,大幅提升ci/cd效率,快速实现项目发布上线 缺点 存在较高的技术门槛需要利用…

【Git教程】(八)版本库间的交换 —— 版本库的克隆与命名,分支监控、命名、拉取及推送 ~

Git教程 版本库间的交换 1️⃣ 克隆版本库2️⃣ 如何告知 Git 其他版本库的位置3️⃣ 给版本库添加别名4️⃣ 获取数据5️⃣ 远程跟踪分支:监控其他分支6️⃣ 利用本地分支操作别处的版本库7️⃣ PULL操作8️⃣ PUSH操作9️⃣ 命名分支🌾 总结 Git 是个…

elementUI两个select单选框联动

实现需求&#xff1a;两个单选框内容两栋&#xff0c;在选择第一个时&#xff0c;第二个选框能自动更新对应选项。且在切换第一个选项内容时&#xff0c;第二个选框会被清空且切换到新的对应选项。 设置值班班次和备班情况两个选项 &#xff0c;完整代码如下&#xff1a; <…

论文阅读_时序模型_iTransformer

1 2 3 4 5 6 7 8英文名称: ITRANSFORMER: INVERTED TRANSFORMERS ARE EFFECTIVE FOR TIME SERIES FORECASTING 中文名称: ITRANSFORMER&#xff1a;倒置Transformers在时间序列预测中的有效性 链接: https://openreview.net/forum?idX6ZmOsTYVs 代码: https://github.com/thum…

【排序算法】-- 深入理解桶排序算法

概述 在计算机科学中&#xff0c;排序算法是一种对数据进行有序排列的重要技术。桶排序&#xff08;Bucket Sort&#xff09;是一种常见的排序算法&#xff0c;它通过将数据分到有限数量的桶中&#xff0c;并对每个桶中的数据分别排序&#xff0c;最后按照顺序将所有桶中的数据…

机器视觉学习(四)—— 图像的色彩

目录 一、图像的基础知识 二、NumPy模块 三、图像色彩变化 3.1 RGB图像的分通道显示 3.2 HSV图像的分通道显示 一、图像的基础知识 总结的笔记&#xff1a; """ 二值图: 每个像素取值 0或1,图像显示出来只有黑白色; 黑色:0 白色:1 灰度图: …

IoT 物联网场景中 LoRa + 蓝牙Bluetooth 室内场馆高精定位技术全面解析

基于LoRa蓝牙的室内场景定位技术&#xff0c;蓝牙主要负责位置服务&#xff0c;LoRa主要负责数据传输。 01 LoRa和蓝牙技术 LoRa全称 “Long Rang”&#xff0c;是一种成熟的基于扩频技术的低功耗、超长距离的LPWAN无线通信技术。LoRa主要采用的是窄带扩频技术&#xff0c;抗干…

基于深度学习的口罩人脸识别研究进展

MTCNN模型训练输入的所有图像都是正样本&#xff08;戴口罩的照片&#xff09;&#xff0c;没有负样本作为模型输入。在后续的识别任务模块中&#xff0c;导入MTCNN模型检测结果&#xff0c;对特征点进行编码比较进行识别。 基于MTCNN的口罩人脸识别框架可分为四个阶段&#xf…

大美博罗迎盛会,“村ART“点亮新征程

三月的博罗,春意盎然,生机勃勃。在这万物复苏的美好时节,首届"村ART"乡村艺术作品评比大赛盛大开启。本次大赛由博罗县政府和泰康保险集团联合主办,以"农民画农民、农民画农村"为主题,旨在为广大农民朋友搭建一个展示才华、抒发情怀的广阔舞台,用艺术之光点…

IDEA : 已经有一个永久破解版的IDEA2019版本,现在又想安装最新版本的,俩版本共存,发现新版本打不开的解决方案

在新文件的目录下&#xff0c;注释掉一行19版本的地址 地址&#xff1a;C:\Users\23999\AppData\Roaming\JetBrains\IntelliJIdea2023.2 (不同电脑Users后边的一个地址的注释会不一样) 然后找到该目录下的indea64.exe.vmoptions 用 记事本 打开 在-javaagent 那一栏里会自动给…

营气卫气是什么?循行规律?

营在脉中&#xff0c;卫在脉外&#xff0c;营周不休。 营气 营在脉中运行&#xff0c;为什么营气能在脉中运行呢&#xff1f;因其性柔顺精专&#xff0c;所以营气能循行、运行于经脉之中&#xff0c;正如《灵枢卫气》所云“其精气之行于经者&#xff0c;为营气”。 营气的运行…

使用CURL命令确定Access-Control-Allow-Origin问题

一、问题描述 有前端小伙伴反馈ajax请求遇到跨域问题&#xff0c;也让后端小伙伴设置了跨域允许&#xff0c;但诡异的事情是在前端小伙伴的微信开发者工具中Network headers中看到了两行&#xff1a;Access-Control-Allow-Origin&#xff0c;其中居然出现了&#xff1a;“Acce…

uniapp兴趣社区交友圈子系统小程序源码 thinkphp框架后台管理

圈子论坛社区系统&#xff0c;含完整的后台PHP系统。功能&#xff1a;小程序授权登陆&#xff0c;H5和APP&#xff0c;手机号登陆&#xff0c;发帖&#xff0c;建圈子、发活动。圈主可置顶推荐帖子&#xff0c;关注、点赞、评论、交流等。可作为圈子贴吧等自媒体。 兴趣社区圈…

丁腈手指套:守护你的指尖,赋予无限可能

在繁忙的现代生活中&#xff0c;无论是在工业车间、医疗场所&#xff0c;还是日常生活的琐碎细节中&#xff0c;保护我们的双手都显得尤为重要。丁腈手指套作为一种专业的防护用品&#xff0c;以其出色的防护性能、舒适性和灵活性&#xff0c;为众多领域的工作者提供了便捷而高…

SQLServer介绍、安装、数据库导入导出

安装 本地运行的&#xff1a;cn_sql_server_2008_r2_express_with_management_tools_x64.exe 官网&#xff1a;SQL Server下载 同上链接下载SSMS管理 SQL Server Management Studio&#xff08;SSMS&#xff09;是干什么的&#xff1f; SQL Server Management Studio&#x…

理解计算属性等

计算属性 计算属性的作用是将写在computed内的写了对应的属性名&#xff0c;属性值都是函数&#xff0c;将这属性值的函数调用之后的返回值赋给属性名的变量。因此其实计算属性内的是值&#xff0c;不是方法&#xff0c;因此写插值等语句是只是写变量&#xff0c;而不是调用。且…

Python零基础---爬虫技术相关

python 爬虫技术&#xff0c;关于数据相关的拆解&#xff1a; 1.对页面结构的拆解 2.数据包的分析&#xff08;是否加密了参数&#xff09;&#xff08;Md5 aes&#xff09;难易程度&#xff0c;价格 3.对接客户(433,334) # 数据库 CSV 4.结单&#xff08;发一部分数据&a…

【Spring Boot 3】整合nacos + Dubbo3 的Spring cloud Alibaba项目

这里写自定义目录标题 前言1、项目结构2、搭建nacos注册中心、配置中心3、项目依赖4、common模块5、provider服务提供者pom文件bootstrap.yml在nacos中添加配置启动类UserServiceImpl consumer服务消费者pom文件bootstrap.ymlnacos配置启动类UserController 测试END 前言 在sp…