枸杞蒲蒻blog

学无止境.

chunk-extend-and-overlap

chunk-extend-and-overlap

chunk extend overlap条件 程序中需要存在基于堆的漏洞 漏洞需要可以控制chunk header的数据 攻击举例 对inuse的fastbin进行extend 对inuse的smallbin进行extend 对free的smallbin进行extend 通过extend后向overlap 通过篡改presize size实现向前overl...

heapoverflow-and-off-by-one

heap attack

堆攻击技巧:heap over flow 和 off by one 一般情况而言一下两个可以发生堆溢出的前提 程序向堆上写入数据 写入的数据大小没有被很好的控制 我们利用堆溢出的基本策略 覆盖下一个chunk的prevsize、size、chunk_content 利用堆的机制来进行数据的写入例如unlink 一下函数可能会发生溢出 gets scanf...

linux-amd64-printable-shellcode

linux-amd64-shellcode

amd64 linux printable shellcode amd64 linux shellcode的编写很简单有很多的工具,pwntools,roputils可以帮助我们十分方便的生成shellcode。 在一些非常限制的应用中我们要使用printable shellcode。 一下工具配合asm生成工具可以轻松生成shellcode https://github.com/ecx8...

ascii-shellcode

ascii-shellcode

Ascii shellcode 一般一下指令在printable范围内 1.数据传送: push/pop eax… pusha/popa 2.算术运算: inc/dec eax… sub al, 立即数 sub byte ptr [eax… + 立即数], al dl… sub byte ptr [eax… + 立即数], ah dh… sub dword ptr [eax… + 立即数]...

fake FILE struct

fake FILE

FILE struct linux中标准IO库中使用FILE 结构体来描述文件的结构。此结构体会在调用open时创建。 struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ #define _IO_file_flags _flags /* The followin...

堆数据结构的理解

堆的数据结构

_int_malloc _int_malloc是内存分配的核心函数它主要进行一下思想的核心操作: 根据用户申请的内存块大小来进行分配(fastbin,small bin,large bin,unsorted bin) 有小到大依次检查不同的bin又不是有相应的块可以用来分配 当所有的chunk无法满足则会考虑top chunk top chunk无法满足则会内存申请 ...

pwn 资料

pwn 资料

收集的资料 ctf wiki https://ctf-wiki.github.io/ctf-wiki/pwn/ ROP linux x86 https://zhuanlan.zhihu.com/p/23487280 ROP linux x64https://zhuanlan.zhihu.com/p/23537552 Linux堆内存管理深入分析 1 https://zhuanlan.zhi...

linux main 函数执行的宏观过程

linux main process

程序main的出生到死亡 linux ELF程序的执行当然是从_start函数开始执行的啦,但是我们一般编写main函数的时候却是直接在main函数中进行我们的编程工作。下面让我们来分析一下大体的执行过程。 Glibc 的入口实现 void _start() {   %ebp = 0;   int argc = pop from stack   char ** argv = top of s...

android native so reuse

standard JNI so reuse

实验成功记录 首先我们要设置好Android Studio让它能够正常的访问它的仓库。 接着我们要在gradle.properties里添加以下属性 android.useDeprecateNdk = true 接着我们要在build.gradle(Module:app)里的android{…….}里添加以下属性 sourceSets{ main{ ...

android debug tricks

android debug tricks

安卓软件调试技巧 我一般使用网易的沐沐模拟器,但是arm架构的apk还是使用真机来进行调试,妥善安装Android Studio即可。 一般使用一下代码生成证书 keytool -genkeypair -v -keystore xample.keystore -alias publishingdoc -keyalg RSA -keysize 2048 -validity 10000 之后再...