Kernel再入门
kernel pwn 再入门
应该是在18年草草的学习了一下内核pwn的一些知识,现在重新入门一次,希望有所收获。
保护机制
smep & smap
SMAP(Supervisor Mode Access Prevention,管理模式访问保护)和SMEP(Supervisor Mode Execution Prevention,管理模式执行保护)的作用分别是禁止内核访问用户空间的数据和禁止内核执行用户空间的代码。arm里面叫PXN(Privilege Execute Never)和PAN(Privileged Access Never)。SMEP类似于前面说的NX,不过一个是在内核态中,一个是在用户态中。和NX一样SMAP/SMEP需要处理器支持,可以通过cat /p...
Qemu学习
qemu 逃逸学习笔记
什么是QEMU
QEMU是一种通用的开源计算机仿真器和虚拟器。QEMU共有两种操作模式
全系统仿真:能够在任意支持的架构上为任何机器运行一个完整的操作系统
用户模式仿真:能够在任意支持的架构上为另一个Linux/BSD运行程序。
同时当进行虚拟化时,QEMU也可以以接近本机的性能运行KVM或者Xen。
当QEMU用作虚拟器时,QEMU的优点在于其实纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,但是也正因为QEMU是纯软件实现的,因此所有指令都需要QEMU转手,因此会严重的降低性能。而可行的办法是通过配合KVM或者Xen来进行加速,目前肯定是以KVM为主。KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 QEMU 则...
Cfi那些事
控制流完整性
针对于漏洞利用,最终的效果和目的就是劫持控制流,控制目标程序做一些他本来做不了的事情。可以达到这一目的的方式有很多,比如ROP、劫持函数指针等等。而这些都来自于软件中一些漏洞,如缓冲区溢出、释放后利用等等。最初防御的方式就是头疼医头,脚疼医脚,哪里出现了漏洞比如缓冲区溢出,我们就检查一下内存边界,或者在边界处设置一个cookie(canary)。
或许是漏洞多的补不过来,之前的防御方式不能很好的完成防御计算机被破坏的工作,原本的防御方式经过几轮较量后衍生出了很多绕过方式,这些攻击手法就是现代漏洞利用技术的核心,比如ROP。如果攻击者通过层层阻挠,到达了执行ROP这一步,那么后续的路基本就畅通无阻了,因为之前并没有防御ROP的有效方式。
CFI即Control Flo...
Windows pwn 栈题入门
Windows pwn 栈题入门
HITB GSEC babyshellcode
刚刚迈入windows大门,所以参考了下之前windows栈题目的wp自己动手调试一下。
远古栈溢出题目,先看看保护:
λ winchecksec babyshellcode.exe
Results for: babyshellcode.exe
Dynamic Base : "Present"
ASLR : "Present"
High Entropy VA : "NotPresent"
Force Integrity : "NotPresent"
Isolation : "Present"
NX : "Present"
SEH ...
Windows 堆分析
windows 堆分析
windows和linux堆管理机制虽然呈现给用户的效果是一样的,大体思路也是差不太多,但是底层实现逻辑大相径庭,很多地方和glibc的ptmalloc差别很大。网上资料零零散散,而且都是通过逆向手段分析,所以每个版本资料还多少有些差异,在这里对windows堆管理机制做个归纳,学习一下。
接口
在glibc中,通常我们调用的分配函数就是malloc、calloc、realloc,但是这三个函数本质都差不多,本体还是malloc函数的逻辑。
在windows中,堆的分配函数就比较多了这里我们逐一介绍一下。
函数原型
参数
说明
HeapAlloc(HAND...
Windows seh分析
windows SEH分析
与linux不同,windows的函数调用栈中存储了不止栈底指针(saved ebp)以及返回地址、局部变量、canary这几样,windows在栈中存放了许多的私货,这其中就包括了seh。
SEH
什么是SEH?全称就是Structure Exception Handler,也就是结构化异常处理。
那么这个SEH,是干什么的呢?
SEH是Windows操作系统上 对 C/C++ 程序语言做的语法拓展,用于处理异常事件的程序控制结构。异常事件是指打断程序正常执行流程的不在期望之中的硬件、软件事件。硬件异常是CPU抛出的如 除0、数值溢出等;软件异常是操作系统与程序通过 RaiseException语句抛出的异常。Windows拓展了C语言...
Windows 笔记
windows 笔记
pe
由coff发展而来,32位称之为pe32,64位称之为pe+或者pe32+。
pe文件与elf文件差不多,也分为几类具体来说如下表:
种类
扩展名
可执行
exe,scr
库
dll,ocx,cpl,drv
驱动
sys,vxd
对象
obj
pe文件格式如下图:
头部信息相对于elf文件内容更多一些,从cos头到节区头都是头部信息,映射关系与elf大同小异。
1.dos头:主要为了向后兼容,...
Leetcode模版
#模版
##头文件<bits/stdc++.h>不好使怎么办
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#include <string>
进制转换问题
反序数
输入一个...
51 post articles, 7 pages.