Loading...
昨天突然发现 glibc 2.34 发布了,虽然偶数版本似乎一般不会发布在稳定发行版中,但是还是挺好奇的,花了几分钟看了看,发现主要的变动是取消了几个 hook。首先看原先的 hook 定义处左边是 2.33,右边是 2.34,可见所有的 hook 都删掉了。在 __libc_malloc 中有如下修改在 __libc_malloc 中,__malloc_hook 原先承担两个职责用户可以在...
学习这个问题的原因是想做 pwnable.tw 的 seccomp-tool 一题,此题的 elf 可以读取、模拟、加载用户输入的 bpf 代码,其中加载使用的是 prctl 系统调用,功能号为 PR_GET_SECCOMP。暂时还不知道怎么做,原来觉得应该是通过 bpf 来完成利用,总不会是 elf 某处写渣了的溢出。由于我对 bpf 和 seccomp 不甚了解,所以先花了点时间了解了一...
主要使用的调试方法为:qemu + gdb-multiarch,再交叉编译得到有符号的 libc。qemu 安装直接通过 apt 安装并不是一个很好的选择,因为版本往往不是最新的,而且对调试的支持并不是很好(内存分析的比较一般),我选择通过手动编译安装来安装。首先下载源码,在官网可以直接下载,我下载了最新版本,即wget https://download.qemu.org/qemu-6.0....
前言断断续续写了一个多月,终于写完了。写本文的主要目的是获得一个对堆的理性认知,从知其然到知其所以然。主要分析了 __libc_malloc,_int_malloc,__libc_free,_int_free,malloc_consolidate 五个比较长且核心的函数。基本覆盖了较小(即未大到需要进行 sys_malloc)的情况。当然对于较大的请求的处理也是有必要学习的,之后应该会再写一...
今天协会打了一场内部 AWD,第一次参加这样的比赛,确实有不少手忙脚乱的地方,也有学到许多新知识。PWN 总共有两题,其中一题虚拟机类题由于有较大的 switch 结构,而 gcc 在编译超过 5 个 case 的 switch 时就会用跳表来优化,F5 之后一般会变成下面这个样子也就是 IDA 无法分析出这是一个 switch 结构,这就会导致大量的代码丢失。修复的方法是使用 Edit-&...