实现一个最简单的内核
编写一个引导程序首先我们要先要编写一个汇编程序,使用C语言作为高级语言不能直接控制硬件,而且 C 语言的函数调用、函数传参,都需要用栈。我们需要先要为C语言提供一个工作环境。 MBT_HDR_FLAGS EQU 0x00010003;flag字段,指出OS映像需要引导程序提供或支持的特性MBT_HD ...
Read more
一种虚拟机使用物理机代理的方法
物理机:V2rayN设置打开V2rayN的参数设置选项将下图中的“允许来自局域网的链接”勾选 然后点击确认即可,物理机的设置就这么多了。 虚拟机:设置网络设置我这里使用的是ubuntu22.04.3 LTS amd64,找到设置中的网络选项,再设置网络代理类似下图所示 其中ip填写在主机中使用i ...
Read more
2021SCTF复现
SCTF复现gadget一个静态编译的文件 本来看到静态编译想到的是直接使用pwntools的工具,但是实际上文件是开了沙盒的,这里只有read,alarm和fstat函数能被系统调用。 但是仔细看看在x86下open函数的系统调用就是5,这样的话,我们可以先转换到32位执行open之后再回到6 ...
Read more
关于_dl_runtime_resolve分析与ret2dlresolve
前言之前总结了静态链接和动态链接的过程,这次我们要真正讨论一下ret2dl的攻击方法。在此之前我们需要把_dl_runtime_resolve进行一下分析。 _dl_runtime_resolve分析我在网上查到资料是这个函数在\sysdeps\x86_64\dl-trampoline.S路径里。但 ...
Read more
与ret2dl有关的前置知识-动态链接
前言之前写这篇博客的时候没有学习静态链接就去补了补知识,索性把这篇博客也改为基础知识,后面再写具体的攻击方法。看这篇前可以先了解一下静态链接。 一些重要的section“.interp”当我们的系统将可执行文件装载之后,其中好多地址还处于无效状态,此时需要动态链接器通过映射的方法加载到进程的地址空间 ...
Read more
与ret2dl有关的前置知识-link
前言我们rop里有一种高级的攻击方法ret2dl,它和动态链接有关,在我去学习ret2dl时发现自己对ELF文件中的一些section不是那么熟悉,而且不了解静态链接是怎么完成的,对动态链接的过程有些不知所措,这里总结一下最近学习的静态链接以及其相关section对ret2dl做一些补充说明。我这里 ...
Read more
DASCTF July X CBCTF 4th pwn
前言之前写了一半的ret2dl的博客还没写完,本来准备边写边学。后面发现涉及的东西有些多,所以还是准备彻底理解了再接着写。最近打了安恒的比赛,这里记录和复现一下这场比赛的pwn。 Easyheap题目分析我们先分析一下题目,开始看到main函数开始有一些做初始化的函数,可以看到题目开了沙盒,我们来查 ...
Read more
pwn入门指南
前言写这篇是因为学校社团招新需要给学弟学妹每个方向的大致印象,发展方向,当然我也希望这篇文章可以帮助到更多的人。接下来我会介绍一下入门pwn需要准备一些什么,学习一些什么,希望这些不成熟的意见可以帮助到刚开始入门pwn的你。由于篇幅有限,这里不会详细介绍各个知识点,更多的是一些链接,不涉及具体内容, ...
Read more
利用树莓派实现arm架构下的heap调试
一切的开始​ 在最近半年多的比赛中总是可以看到很多都涉及arm架构,比如:红明谷,虎符,国赛等大大小小的比赛都涉及了关于arm架构的题目。常规的做法是搭建quem虚拟机,然后使用gdbserver远程调试,来达到调试目的,当然也可以再用patchelf改一下动态链接库,使用python脚本交互 ...
Read more