S3c_r3v3rs3r

PXN与PAN机制攻防

由来与演进

前言 PXN(Privilege Execute Never)与PAN(Privilege Access Never)是ARM在v7架构开始引入的安全机制。与之对应的Intel使用相同机制的名称为SMEP(Supervisor Mode Execution Prevention)和SMAP(Supervisor Mode Access Prevention)。实际上是在Intel在2014年...

Trusted Firmware-M 安全启动

BL2安全启动源码浅析

前言 TF-M提供了安全启动,加密,验证和安全存储等功能。本文主要对Arm TrustZone Firmware-M的BL2安全启动 模块进行浅析,结合官方文档基于AN521平台的编译配置进行源码浅析。 正文 安全启动与信任链 安全启动是建立系统信任链(Chain of Trust)的基础。信任链(Chain of Trust)是基于根信任(Root of trust)创建的, 而根信任的...

使用Qemu运行Trusted Firmware-M

TF-M入门指南

前言 Trusted Firware-M是ARM针对带有TrustZone-M的小型MCU提供的适配层,提供了PSA接口, 打通了安全世界与非安全世界的通道。TFM中提供了Attestation,Crypto和Secure Storage服务, 并且不同服务提供了隔离机制。本文将叙述如何使用Qemu模拟arm-mps2-an521平台运行TF-M。 正文 软件版本 trusted-firm...

Microcontroller Trustzone隔离技术简介

TrustZone-M简介

前言 随着安全相关的热度在IOT设备场景下的不断升温,越来越多的小型设备生产厂商愿意在设备的安全性上进行投资。本文主要简单介绍TrustZone-m相关技术(不仅仅局限于ARM TrustZone,包括近似的安全隔离技术)。ARM自Arm-v8开始对Trustzone技术进行了适配和普及,但在市场上好像并没有很大的使用量,大部分的设备还是基于Arm-v7架构的芯片进行开发。但从2020年开始...

HarmonyOS内存模块分析

内存初始化过程分析

前言 HMOS系统初始化过程主要在OsMain函数中,内存初始化的过程在OsMain函数中OsSysMemInit函数中完成。本文将作为《HarmonyOS内存管理——内存分配》文章的延续,对内存初始化过程进行分析。 正文 内核中Vaddr与Paddr的关系   由于HMOS代码仅开源了C代码,一些启动的汇编代码并没有开源,所以系统初始化时使用汇编对内存的设置操作没有办法通过源码的方式进行...

HarmonyOS内存模块分析

内存分配函数分析

前言 当前HarmonyOS开源的源码适用于小型IOT设备,从开源仓代码分析,内核使用的是LiteOS,但与现有的 开源LiteOS有着较大的不同。其中与开源版本LiteOS最大的不同之处当数内存管理模块。HarmonyOS支持Arm Cortex-A7 并且可以通过使能MMU对虚拟内存进行管理。该系列文章将对HarmonyOS内存模块进行详细的代码剖析讲解, 该篇文章的分析内容主要侧重与内...

浅谈内存检测工具与IOT系统

浅谈Kasan、Hwasan、Valgrind和MTE在IOT系统的应用

前言 在现有的IOT设备和系统中进行开发时踩内存是最容易产生的现象之一,同样有着很大的安全隐患。 与现在复杂操作系统Linux,Windows相比,rtos系统同常运行在资源相对受限的单板上。 本文将很对现有的内存检测技术进行简短的分析和介绍。 正文 Valgrind Memcheck Valgrind Memcheck应该是最早一款带有运行时内存检测的工具。Valgrind拥有一系列工...

pwntools使用入门教程

pwntools常用模块和函数

前言 PWN tools是 python2 平台上十分好用的二进制分析解决CTFpwn问题的工具。 package中集成的功能十分强大,包含程序交互,socket交互,进程调试,和ELF二进制文件分析等内容。 正文 安装pwntools $ apt-get update $ apt-get install python2.7 python-pip python-dev git libss...

ROP漏洞利用CTF实例

Return-Oriented Programming 漏洞CTF利用实例

前言 题目来自于pwnable.kr平台的horcruxes题目。 ROP全程是Return-oriented Programming,该漏洞是利用buffer overflow实现的攻击。 但是于传统的buffer overflow不同之处在于ROP攻击可以绕过NX保护机制。NX保护机制是 通过设置栈所处的内存为不可执行区域从而实现的shellcode不可在栈中被执行。 然而ROP是通...

GDB常用指令

Linux平台gdb调试程序常用指令

前言 gdb是linux平台必用的调试CLI软件,它不但支持程序员对可读源代码的 调试,同样也支持对程序的逆向汇编和动态调试。 gdb所支持的调试功能十分强大,通过help查看可支持的指令很多。 本片文章总结一些在逆向时常用的一些指令。 正文 1. 运行gdb加载程序 gdb [elf_filename] 2. 运行程序: run(r) [args] 注: [args]可接收多个参...