• House of Force2

    House Of Force2基于top chunk分配机制的利用,glibc会对用户请求的size_1和top chunk现有的size_0进行验证,如果size_0大于用户申请的chunk大小size_1,就会将从top chunk中切割出size_1大小的chunk,剩余部分放入top chunk。 如果top chunk足够大(size_0大于top chunk与目标地址的距离),malloc两次,第二次申请的chunk就会到目标地址处,实现一次任意地址写。 然而实际上top chunk 的size_...
  • House of Einherjar

    House of Einherjar原理释放堆块时,unlink后向合并堆块,强制使得 malloc 返回一个几乎任意地址的 chunk 。 free 函数中的后向合并核心操作如下 1234567/* consolidate backward */if (!prev_inuse(p)) { prevsize = prev_size(p); size += prevsize; p = chunk_at_offset(p, -((long) prevsize)); unlink(...
  • 蓝桥杯

    救赎基础知识1.欧几里得辗转相除法 求解 最大公约数 最小公倍数12int gcd(int a, int b){return b == 0 ? a : gcd(b, a % b);}int lcm(int a, int b){return a / gcd(a, b) * b;} 2.求质数1234567/* 判断素数 */bool isPrime(LL n) { for (int i = 2; i * i <= n; ++i) if (n % i =...
18910