最近在学习Linux内核调试,看了钞sir的环境搭建搭建了qemu环境之后本来兴高采烈地去开启我的内核调试之旅,没想到碰到了很多障碍,百度了很久也解决不了,最后自己胡乱碰撞,终于解决了这些问题,我觉得我遇到的这些问题也是很多坛友也会遇到的,现在我来讲讲我遇到的问题和解决的方法。要调试驱动必须要驱动加载地址,但是当我运行了系统给的sh之后,它居然给我返回了地址为零,这里以 2019 STARCTF/CTF hackme 为例:
原因:不是root权限,无法看到地址。(虽然题目给了地址,但相同的问题还是会出现的)
解决方法:既然没有root权限,那我就用root权限的登录就好了。
解压给的cpio文件 -> 进入该文件 -> 找到init ->打开并修改(由于hackme给了地址,所以这里用的是其他题目的init来演示。
0x02 GDB显示错误Can not find ELF BASE
当你运行target remote:1234,显示一堆CAN NOT FIND ELF BASE的时候,内心有点崩溃吧。原因:没有用ROOT权限运行GDB。
解决方法:sudo su 接下来你懂的。
这时候要运行poc文件就能看到在你的断点里面调试了,可能有人会说调试不就是为了POC吗,这怎么写POC我也不太懂,因为我也是初学者,现在先学会如何调试最重要,之后我会再更新的。cpio是我们的文件系统,一开始我也遇到这怎么弄的麻烦,最后还是偶然发现了答案。解决方法:
解压cpio -> 放入想要文件到解压出来的文件里面->运行以下命令:
find . | cpio -o --format=newc > ../core.cpio
(如果有提供fs.sh 直接用就好了,不用打这条命令)
当然 这个core.cpio是你自己决定的,如果改了名字,记得运行镜像的命令的也要相应的修改。最后,这就是我遇到的麻烦和阻碍,希望对linux内核调试的你们有帮助,之后如果我遇到更多的麻烦我会更新在这里的,欢迎大家一起交流linux内核调试。看雪ID:Vinadiak
https://bbs.pediy.com/user-855782.htm
*本文由看雪论坛 Vinadiak 原创,转载请注明来自看雪社区进阶安全圈,不得不读的一本书
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458300085&idx=2&sn=fadec86fabb10c839e0910494e8eeba1&chksm=b1819e3f86f61729805b44a39da66add56cd9f095df9ffdda525a98cab8f6f9ecefef462ddfd#rd
如有侵权请联系:admin#unsafe.sh