堆基础06-how2heap进阶篇
前言
学习材料:shellphish 团队在 Github 上开源的堆漏洞系统教程 “how2heap”
glibc版本:glibc2.31
操作系统:Ubuntu 20.04
示例选择:本篇依旧参考pukrquq师傅基于 glibc2.34 版本的分析文章,选取与其文章中第三部分相同的 poc 示 ...
堆基础05-how2heap初级篇
前言
学习材料:shellphish 团队在 Github 上开源的堆漏洞系统教程 “how2heap”
glibc版本:glibc2.31
操作系统:Ubuntu 20.04
示例选择:本篇依旧参考pukrquq师傅基于 glibc2.34 版本的分析文章,选取与其文章中第二部分相同的 poc 示 ...
堆基础04:how2heap入门篇
前言
学习材料:“how2heap” 是 shellphish 团队在 Github 上开源的堆漏洞系统教程,包含很多常见的堆漏洞教学示例,本篇也将使用此教程 中的示例完成对堆利用的学习
glibc版本:glibc2.31
操作系统:Ubuntu 20.04
示例选择:本篇参考了pukrquq师傅基 ...
堆基础03:free源码分析
前言前一篇基于 64 位操作系统,对 glibc2.31 源码中 malloc 的部分进行了详细分析,本篇衔接前一篇接着 free 部分的源码分析
__libc_free 主流程__libc_free() 的流程不复杂,这里圈出 4 个部分来看,以看的更为清晰:
红色方框:
这部分是针对 ho ...
堆基础02:malloc源码分析
前言前一篇已经介绍了 ptmalloc2 的分配策略以及涉及到的主要数据结构,本篇将基于 glibc.2.31 源码,分析 malloc在源码中的具体实现。主要参考博客园上的一篇基于 glibc2.31的源码分析,以及看雪上一篇基于 glibc2.23 的源码分析。分析过程与之前分析 AFL 源码一 ...
堆基础01:ptmalloc2初探
前言
本篇第一部分会介绍堆分配涉及到的系统调用,这部分比较简单,通过实验即可理解;第二部分介绍 ptmalloc 分配器的起源与大致的分配策略;第三部分则是堆管理涉及到的数据结构,从而为下一篇源码分析做好准备
本篇内容均基于 64 位下的 Ubuntu 系统,所以描述的每个基本内存块(例如栈中的一个 ...
KCTF2022春季赛第九题
前言这是一道和第三题一样,付出了我很多心血的题目。从周六开始,一直没有思路,开始想着就这样放弃了,毕竟只有那四位做出来,但是到了周日晚上,突然打开了思路,趁着题目还有1天时间,决定周一再尝试一次,周一花了一天时间,下班时已经解出Sm4算法,回家后也找到了进行异或的位置,实际上已经分析出了全部的加密算 ...
KCTF2022春季赛第七题
前言一道简单题,签到题难度,但是排在了第七题的位置,简简单单的一道Go逆向,思路还是比较新,作者重写了标准库的函数,做了个简单的校验,但是静态就可以看出来逻辑,甚至通过校验部分可以直接猜到出题思路,以至于最终没有分析完就得到了答案。至于没有分析完的,也懒得分析了,就是个需要花费至多十多分钟去分析的一 ...
KCTF2022春季赛第三题
前言这是一次失败的经历,从周五放出题开始,不到2个小时,就有人解出题目,上午刚刚写完wp的喜悦瞬间消散,开始着手准备解题。这一天没有进展。直至第二天傍晚,才开始有所眉目。所谓的异常处理,并不会对解题有太大影响,相反,题目算法本身的复杂度,成了影响的关键因素,从周六傍晚开始逆算法,直至第二天凌晨4点3 ...
KCTF2022春季赛第二题
前言2022春季赛的第二题,成功在规定时间内完成,写完wp后首发在看雪论坛,还混到了一个优秀,现在补档到博客里。
分析流程Part 0x0
sub_40100C用来显示文本内容
sub_40103A用来读取输入字符串
IDA分析出的 v9 >= 0,这里的v9是单字节有符号数,因此实际运算时表现 ...