使用QEMU模拟运行arm64内核
2024-8-31
| 2024-8-31
0  |  阅读时长 0 分钟
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 脚本中写入以下指令
notion image
 

📎 参考文章

  • Android
  • Linux
  • Kernel
  • 使用NDK(ollvm混淆)编译KPM搭建舒适的WSL开发环境
    Loading...
    目录