Algorithmica
HPC研读记录(1-3章)
一、复杂性模型
概述
传统复杂性理论
To estimate the real running time of a program, you need to sum all
latencies for its executed instructions and divide it by the clock
frequen...
ret2dir手法学习
原理
Ret2dir(Return-to-Direct Mapping)是一种 内核利用
技术,攻击者可以利用它 绕过 SMEP、SMAP、pxn
等用户空间与内核空间隔离的防护手段,最终实现
本地提权。
在 大多数 Linux 内核(基于 x86_64 架构)
中,物理地址(Physical Address) 的很大一部分会被
直接映射(direct...
ret2usr利用手法以及常见保护机制绕过浅析
ret2usr
在SMAP、SMEP以及kpti保护未开启时,内核空间可以访问或执行用户空间的数据,那我们其实可以直接返回到用户空间执行函数,从而避免构造较为复杂的内核ROP链。
这里仍以2018 强网杯 -
core为例,这题中虽然开了kaslr,但是我们不需要利用一些手法来泄露地址,init脚本中本身就给我们提供了一些利用点。
1...
kernel pwn初探
基础知识
基础的概念入门时不宜死磕,最好粗略看看留个印象,然后下去环境配好后,在调试探索时逐步深化理解。
如何理解内核
操作系统内核(Operation System
Kernel)本质上也是一种软件,可以看作是普通应用程式与硬件之间的一层中间层,其主要作用便是调度系统资源、控制
IO
设备、操作网络与文件系统等,并为上层应用提供便捷、抽象的应用接口。...
C#开发学习记录1
开发环境:Visual Studio 2022
前言
从高中时就对开发软件比较感兴趣,用过pygame写过小游戏,当时其实也想用Unity来写个游戏来着。不过高中确实学业压力比较重,加上Unity主要是用C#作为编程语言的,当时也没接触过C#语言,就不了了之。大一又误入安全歧途:smirk:,一直在打ctf,现在趁寒假学点windows程序开发。一开始我看了b站上的...
快速在24.04Ubuntu搭建pwn环境
打了重庆市赛时,3个pwn题有2个给了2.39glibc,据有些大师傅们说,2.39的glibc只能在24.04的Ubuntu上兼容,我也试了试用glibc-all-in-one,下2.39的glibc,但是下下来是空的。这说明原先22.04Ubuntu的环境已经不够用了,需要新建一个24.04版本的Ubuntu虚拟机来应对各种可能的做题环境。这...
pwn-anote
32位程序,存在后门函数。
粗测一下功能,add没有我们可以控制的输入;edit可以往里写内容,并且最后会显示work
done;show能够看chunk里的内容,而且还送了gift,也就是堆上的地址。然后由于程序是c++编写的,直接看反编译的代码会比较模糊,这里结合动态调试分析功能点。
这里每次add时都会申请一个0x20大小的chunk,其中dat...
利用原理
主要链条:
1exit->__run_exit_handlers->__call_tls_dtors
源码:
123456789101112131415161718192021222324252627282930313233343536373839# define PTR_DEMANGLE(var) PTR_MANGLE (var)# define ...
云崽bot基础搭建过程记录
突发奇想想要搭建一个qqbot玩玩,经同学推荐,准备从最简单的yunzai框架入手。
安装
环境准备:Windows/Linux/MacOS/Android Node.js(>=v21), Redis, Git
redis安装
下载地址redis,密码:114514
解压后启动redis-server.exe这个文件。
将redis...
问题由来
在对于堆的_IO_FILE利用的学习过程中,我们通常需要伪造一个fake_IO_FILE,并且附带源码调试,以方便清除是否进入了目标函数,是否一些条件判断通过。但是有时候却在pwndbg加载时找不到对应的glibc的symbol
file文件,这就导致我们无法进行源码级别调试,而且看结构体只能自己一个一个字段带进去看,十分麻烦。所以这里介绍一下如何方便地进行带符号调试。
...