前言
最近终于打算着手开始学习内核的pwn了,基础知识接触了一些,但是问题最大的是,kernel的运行环境和一般的用户空间程序不一样,调试方法也不一样,所以打算记录一下自己学习如何进行kernel的调试,这才算是进入kernel exploit的第一步。
另外,我发现了网上的教程或多或少都存在一些没说清楚的地方,导致不能完整的复现以达到目的,所以决定自己研究一下。
光是一个kernel是没办法调试的,还需要一些其他的东西,比如一个能用的shell。但是鉴于添加这些东西比较麻烦,所以最终我决定使用virtualbox进行虚拟化,直接使用ubuntu的镜像
环境
- manjaro linux(arch linux based)
- virtualbox
- ubuntu iso
准备工作
安装virtualbox、gdb、socat
由于我在archlinux下,所以可以用pacman安装。
sudo pacman -S gdb socat
至于virtualbox可以使用aur:
yaourt virtualbox
然后选择合适的版本安装即可
编译linux内核
我们需要自己编译一个debug的内核,下载源码可以直接在github的