House of musl-dininghall 👴不知道为啥最近比赛都开始出 musl-libc 了 House of musl-dininghall 1.1.24(x86_64...
VM escape - PCI 签到题 我逃不掉 IO 编址 CPU 需要和 IO 设备(Input/Output Device)进行交互,交互需要通过总线上的物理地址识别 IO ...
VNCTF2021-WriteGiveFlag 0x00 X-NUCA2020 Final 有一道 AWD-CryptoPwn(lemon),用到了 read() 返回 0 泄露数据,👴🚪都...
VM escape - QEMU Case Study 原文:http://phrack.org/papers/vm-escape-qemu-case-study.html Table of...
BalsnCTF2019 KrazyNote note.ko init_module __int64 __fastcall init_module(__int64 ...
Kernel userfaultfd 缺页 内核为每个进程都维护了一张页表,记录虚拟地址和物理地址的映射关系,页表储存在MMU中。CPU发出的访问地址是虚拟地址,通过MMU转换为物理地址,通...
WCTF2018-klist run.sh #!/bin/sh qemu-system-x86_64 -enable-kvm -cpu kvm64,+smep -kernel ./bzIm...
Kernel ret2dir d i r 溢 出 先看神仙:https://www.usenix.org/conference/usenixsecurity14/technical-...
Kernel double fetch 条件竞争 👴学数电的时候学过竞争-冒险现象,组合逻辑电路中,同一信号经不同的路径传输后,到达电路中某一会合点的时间有先有后,这种现象称为逻辑竞争,而因...
栈 队列 👴想毕业 栈 一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底 后进先出 #include<stdio....
Kernel ret2usr 继续ROP 上一篇rop执行的commit_creds(prepare_kernel_cred(0))是在内核空间 获取commit_creds和prepar...
Kernel ROP kernel rop还是🌶个rop rop思路 commit_creds和prepare_kernel_cred是内核态函数,rop控制LKM执行rop执行c...
伙伴算法 伙伴 两个chunk满足以下三个条件称作伙伴 大小相同 地址连续 从同一个大块中分离 一对伙伴有三种情况 一个chunk已分配,另一个chunk空闲 ...
Kernel UAF 👴的第一道kernel pwn Kernel UAF和glibc heap uaf差不多一个意思,指针没清除,释放之后还能继续用 经常出现在多线程多进程多文件...
Kernel Pwn从入门到白给 Kernel Ring Model intel CPU 将 CPU 的特权级别分为 4 个级别:Ring 0, Ring 1, Ring 2, Rin...
c++STL-vector 可变长的动态数组 #include<vector> 在命名空间std中 构造与初始化 #include<iostream> #in...
线性表 👴只是想毕业 定义 n个具有相同特性的数据元素的有限序列 同一线性表中元素具有相同特性。 相邻数据元素之间存在序偶关系。 除第一个元素外,其它每一个元素有且仅有一个直...
top chunk利用 House of Orange 略 House of Force /* finally, do the allocation */ p = av->...
House of Strom 风暴要火 原理 unsorted bin + large bin glibc-2.23 unsorted bin /* re...
#scanf malloc glibc2.23后,scanf的缓冲区在堆中,利用scanf可以触发malloc申请比较大的堆块 Hitcon2016-babyheap struct not...
House of Corrosion 无内鬼,来个链接 https://github.com/CptGibbon/House-of-Corrosion 先学洋文 corrosion 英[...
#glibc2.29-off by one Hitcon2018 children_tcache 无内鬼,先来个glibc2.27-off by null size可以超tcache范围,...
glibc2.29-double free fastbin double free,👴的青春回来🌶 glibc2.29-tcache #if USE_TCACHE { ...
House of Orange 🍊屋 原理 申请的size大于当前top chunk的size时,原来的top chunk会被释放并放入unsorted bin,可以在没有free...
SROP Framing Signals — A Return to Portable Shellcode srop-slides signal 先学洋文 算了⑧学了,signal就是...
glibc2.29-tcache stashing unlink 👴的青春回来🌶 先学洋文 stashing 英[ˈstæʃɪŋ] 美[ˈstæʃɪŋ] v. 存放; 贮藏;...
c++pwn c++pwn,就是艹c艹 Name Mangling 先学洋文 mangling 英[ˈmæŋɡlɪŋ] 美[ˈmæŋɡlɪŋ] v. 压碎; 撕烂; 严重损...
glibc2.29,那咋办🐎 tcache double free 不好使了,👴的青春结束了 Unsortedbin Attack 没了,👴的青春结束了 House of Force 没了...
arm64 函数调用 第1-4个参数分别保存在x0-x7,剩下的从右向左依次入栈,被调用者实现栈平衡,返回值在x0 寄存器 x0-x30寄存器 通用寄存器,64位,也可以当作32位(w...
arm32 函数调用 arm32 第1-4个参数分别保存在r0-r3,剩下的从右向左依次入栈,被调用者实现栈平衡,返回值在r0
Heap trick Heap Overflow 没验size,👴能填到后面的chunk Use After Free free之后还能用 Double Free 也算是个uaf,多...
python-bytecode 官方文档:https://docs.python.org/2/library/dis.html 栈基本操作 TOS ...
afl-mutated bit flips byte flips arithmetics known ints dictionary havoc splice 前五项无随机性,后两项有随机...
afl基本操作 简介 AFL(American Fuzzy Lop),由Michał Zalewski开发的基于覆盖引导的模糊测试工具 通过记录输入样本的代码覆盖率,从而调整输入样本以提高...
ptrace反调试 ptrace #include <sys/ptrace.h> long ptrace(enum __ptrace_request request, pid_t...
Self-modifying code SMC,这洋文翻译过来应该是 我 改 我 自 己 程序在运行期间修改自身指令 静态分析时,看到的都是加密的内容,需要动态分析 例 遇到了再说
angr从入门到放弃 angr-doc:https://github.com/angr/angr-doc angr-api-doc:http://angr.io/api-doc/ ...
符号执行从入门到放弃 基本原理 在不执行程序的前提下,用符号值表示程序变量的值,然后模拟程序执行来进行相关分析 使用符号执行分析一个程序时,使用符号值作为输入,而非一般执行程序时使用的具体...
tcache_perthread_struct 源码 glibc-2.27 /* We overlay this structure on the user-data portion of...
global_max_fast 源码 glibc-2.23 /* Maximum size of memory handled in fastbins. */ static INTERN...
静态链接 静态库 命名规则lib(.*).a 静态库生成 void fuc() { puts("A1_D4i"); } gcc -c fuc.c -o libfuc.o ar -r...
动态链接 GOT和PLT .got Global Offset Table,全局偏移表。这是链接器在执行链接时实际上要填充的部分, 保存了所有外部符号的地址信息 .plt Proced...
ELF静态结构 ELF ELF 是洋文Executable and Linking Forma的缩写,即可执行可连接格式,具有这种格式的文件成为ELF文件 在 ELF 规范中,所有符合 E...
hook glibc-2.27 /* Forward declarations. */ static void *malloc_hook_ini (size_t sz, ...
控制流平坦化 控制流平坦化 通过一个主分发器来控制程序基本块的执行流程 正常执行流程 控制流平坦化后的执行流程 各结构之间的关系 函...
tcache 结构体 tcache_entry /* We overlay this structure on th...
malloc_printerr corrupted size vs. prev_size if (__builtin_expect (chunksize(P)...
last remainder last remainder struct malloc_state { /* Serialize access. */ __...
_int_malloc 执行流程 若请求大小在fast bin范围内,在fast bin中查找是否有chunk可以使用 ...
_IO_FILE利用 _IO_FILE结构体 struct _IO_FILE { int _flags; /* High-order word is ...
Off-By-One in the heap 堆块验证机制 inuse() /* extract p's inu...
Fastbin Attack 条件 存在堆溢出、use-after-free 等能控制 chunk 内容的漏洞 漏洞发生于 fastbi...
x86平台Linux系统调用号 x86平台32位Linux系统调用号 #define __NR_restart_syscall 0 #define __NR...
堆利用从入门到入狱 堆 程序虚拟地址空间的一块连续的线性区域,由低地址向高地址方向增长,在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。 ...
Intel和AT&T的语法区别 记录一下Intel和AT&T的语法区别,防止脑残 操作数前缀 在 Intel 语法中,寄存器和和立即数都没有前缀。而...
CSAPP-Cache Lab Part A 缓存模拟器 实现一个缓存模拟器,读取给定的 trace 文件,输出对应的hit,miss,eviction次数 ...
CSAPP-Buffer Lab Level0: Candle Your task is to get BUFBOMB to execute the code for...
CSAPP-Bomb Lab 刚看到这东西有个大胆的想法,直接IDA pro F5 我就是饿死,死外面,从这跳下去,也不会用IDA pro phase_1 080...
没有对象如何面向对象 类&对象 定义类 定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么...