标签: Basics 快速原理

为所有基础原理讲解相关的文章打上相应的标签。

12 篇文章

源码阅读环境搭建
基于vscode做环境配置,方便代码阅读,找到了许多有趣的工具。提前要说一点,关于vscode自动检查代码并标注错误问题,可以用创建新工作区并禁用所有插件的方式解决。 1. 翻译插件 comment translate 可以很方便的翻译注释,全文翻译是我最看重的功能,很方便。只是使用的谷歌翻译api,现在已不能使用,只能挂个外网或者换个api。在g…
tmux+pwndbg代码调试终端美化
​ pwntools是一个挺好用的工具,不过当我尝试在远程调试代码的时候,会遇到调试窗口默认找不到的情况,于是找到了使用tmux作为解决方案,但是tmux没办法很方便的用滚轮翻页,使用起来不是很方便查看内容,再加上tmux的窗格功能让我想要将内容分散到各个地方。一番搜索之后发现splitmind这个项目很合适,gdb调试的时候很方便。但是代码进入的…
House of apple2
利用条件 House of apple的利用条件如下: 程序从main函数返回或能调用exit函数 能泄露出heap地址和libc地址 能使用一次largebin attack apple系列都是对fp->_wide_data的利用,其中apple1可以任意地址写已知值,类似于largebin attack。暂且不提 apple2延续了lar…
House of apple1
其实apple系列都是对fp->_wide_data的利用,apple1可以任意地址写已知值,通过伪造_wide_data变量。另house of apple之前,常用的堆利用手法都有: +--+ house of pig、house of kiwi、house of emma 利用条件 从main返回或调用exit(其实就是利用fclose…
unlink
unlink主要利用从双向链表中取出chunk时的操作,通过伪造fd和bk指向伪造的位置,触发后达成利用的一种手法。 下面是双向链表中取chunk的操作过程 当然,那是没保护情况,现在早就上保护了 // 由于 P 已经在双向链表中(已经被free),所以有两个地方记录其大小,所以检查一下其大小是否一致(size检查) if (__builtin_e…
setcontext
setcontext+orw 大致可以把2.27,2.29做为两个分界点 2.27下的setcontext 内容如图, 作用是通过rdi寄存器里地址来设置各个寄存器的值。该版本下我们通常从setcontext+53开始利用,因为前面的fldenv byte pte [rcx]会导致程序crash。 值得注意的是,mov rcx,[rdi+0A8h]…