type
status
date
slug
summary
tags
category
icon
password
前言:最近准备学习Kernel Patch项目的实现原理,把学习的过程作为笔记记录起来
0x0 前言
首先,
KernelPatch
项目的讲解和实现原理,是跟周晓梦
大佬进行学习的,以及本文要讲解的使用QEMU启动kernel也是周晓梦
大佬原创,原理细节请移步看雪:https://bbs.kanxue.com/homepage-935696.htm上一篇,我们已经搭建好了WSL的开发环境,所以本文不再提环境的问题,感兴趣的可以查看:
搭建舒适的WSL开发环境
0x1 安装依赖
首先去安装qemu
sudo apt-get install qemu qemu-system qemu-user
sudo apt-get install gcc-10-aarch64-linux-gnu
sudo mv /usr/bin/aarch64-linux-gnu-gcc-10 /usr/bin/aarch64-linux-gnu-gcc
下载
4.15.2 Linux内核
,不过本文直接下载大佬处理过后的内核感兴趣的可以去查看周晓梦大佬的原帖
下载完各种编译依赖后,直接进入到目录下进行编译
0x2 制作Linux跟文件系统(busybox)
首先去busybox官方链接下载最新版(以最新版举例)
使用
make menuconfig
去更改配置,需要指定一下架构和编译链make menuconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
在
Setting
中打开静态编译和调试信息使用
上下左右
进行移动选择,空格
选中打开/关闭,保存关闭后开始编译编译到install目录下后,我们cd进入install文件夹,输入上面的cpio指令进行打包生成rootfs.img文件
0x3 启动内核
在以上操作都完成后,我们将编译好的kernel文件和rootfs.img放在同一目录下
我们在
run.sh
脚本中写入以下指令