CTF pwn -- ARM架构的pwn题详解

本文详细介绍了如何在CTF中应对ARM架构的pwn题目,包括使用QEMU和gdb-multiarch搭建环境,ARM架构的基本知识,以及32位和64位寄存器的介绍。通过一道例题解析了栈溢出利用思路,为解决此类问题提供了指导。
摘要由CSDN通过智能技术生成

概述

  ARM架构过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。因此我们常用的手机、平板等移动设备都是采用ARM体系架构的,因此CTF中不可避免也会出现ARM架构的pwn题。不过这种题目涉及的知识点都不会像x86体系架构那么深和细。

环境搭建

使用QEMU

  QEMU
  借用官网的原话,QEMU is a generic and open source machine emulator and virtualizer.,qemu是一个通用的、开源的机器仿真器和虚拟机。因此我们可以在linux操作系统中安装它,然后用它来调试其它架构平台的程序。如何安装见下面代码所示:

# 最好先update一下
sudo apt update
sudo apt install qemu

  在安装qemu后,对于静态链接的arm程序就已经可以直接运行了,使用命令qemu-arm prog运行32位的arm程序,其中prog指代程序名。但对于动态链接的程序还是无法正常运行,此时需要安装对应架构的动态链接库才行。
  如下面的命令和截图所示,这里以运行64位动态链接的arm程序为例,键入命令后发现有如下截图的libc版本返回,我们安装debug版本的,即sudo apt install libc6-dbg-arm64-cross

sudo apt search "libc6" | grep arm

arm-libc6
  安装完后,在/usr目录下会出现aarch64-linux-gnu这个文件夹,该文件夹即对应刚安装好的arm64位libc库,之后我们使用下面的命令指定arm程序的动态链接器,即可运行程序。

qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./prog

  这里补充一下关于架构的一些知识以及介绍下qemu对应的一些命令。qemu-arm指的是arm32架构的,用这个命令来运行32位的arm程序,而qemu-a

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值