不用虚拟机,使用windows调试linux内核

1.安装msys2

https://www.msys2.org/

2.打开msys2 ucrt64安装qemu和gdb还有gef

pacman -S mingw-w64-ucrt-x86_64-qemu

pacman -S gdb

pacman -S binutils

用下面的脚本安装gef

bash 复制代码
#!/usr/bin/env bash

set -e

# check dependencies
if [ ! "$(command -v python3)" ]; then
	echo "GEF requires Python3 installed."
	exit 1
fi

# Backup gdbinit if any
if [ -f "${HOME}/.gdbinit" ]; then
    mv "${HOME}/.gdbinit" "${HOME}/.gdbinit.old"
fi

tag=$(python3  -X utf8 -c 'import urllib.request as r,json as j; x=j.loads(r.urlopen("https://api.github.com/repos/hugsy/gef/tags").read()); print(x[0]["name"])')
python3 -X utf8 -c "import urllib.request as r; x=r.urlopen('https://github.com/hugsy/gef/raw/${tag}/gef.py').read(); print(x.decode('utf-8'))" > ${HOME}/.gef-${tag}.py

if [ -f "${HOME}/.gef-${tag}.py" ]; then
    echo "source ~/.gef-${tag}.py" > ~/.gdbinit
    exit 0
else
    echo "GEF was not properly downloaded"
    exit 2
fi

官方版本里面缺少-X utf8会出错。

3.去github下载一键包,如:

https://github.com/bsauce/kernel-exploit-factory/tree/main/CVE-2017-11176

注意start.sh里面的-enable-kvm要去掉,因为windows不支持。

4.在msys2 ucrt64里面运行start.sh

5.打开另一个窗口,运行gdb_kernel.sh

相关推荐
bksczm5 分钟前
Linux 五种 I/O 模型与多路复用详解
运维·服务器·网络
wjcroom11 分钟前
FileBrowser的docker运行了改变密码长度的做法
运维·docker·容器
IT爱学堂15 分钟前
新版Linux零基础入门到高手Rocky版本-替换CentOS(完结)
linux·运维·centos
kkkkkkkkkk_Z25 分钟前
学嵌入式和Linux应用编程|学习日记:计算机网络基础
linux·学习·计算机网络
蒸蒸yyyyzwd44 分钟前
cpp选手秋招学习笔记day24-cs144项目总结
运维·服务器·网络
ang7841 小时前
日常高频使用的 Ansible 命令,按使用频率和场景整理。
linux·运维·服务器
高亦真1 小时前
今天是学习嵌入式的第35天
linux·学习·算法
学海浪太大1 小时前
笔记本电脑插入显示器没反应
windows
mounter6252 小时前
eBPF 驱动的云原生网络变革:Cilium 的前世今生与全机套接字迭代技术演进
linux·ebpf·linux kernel·kernel
赵庆明老师2 小时前
用同一个用户登录宝塔面板的ftp与Linux的sftp
linux·运维·服务器