不用虚拟机,使用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

相关推荐
T0uken4 分钟前
基于 vcpkg 与 LLVM-MinGW 的 Qt6 静态链接开发方案
c++·windows·qt
进阶的猪10 分钟前
使用printk对SPI子系统全过程的追踪
linux·服务器
2301_8035545220 分钟前
Linux里面的文件描述符和windows里面的句柄
linux·运维·服务器
IT摆渡者20 分钟前
linux 系统安全检查
运维·网络·经验分享·笔记
星马梦缘32 分钟前
如何切换window-ubuntu双系统【方案一】
linux·ubuntu·双系统
云动课堂32 分钟前
【运维实战】Nginx 高性能Web服务 · 一键自动化部署方案 (适配银河麒麟 V10 / openEuler / CentOS 7/8)
运维·前端·nginx
无心水33 分钟前
【Hermes:Skill系统深度】21、Skill 调试与冲突解决:为什么没触发?怎么修复? —— Honcho 智能体排障完全手册
人工智能·windows·openclaw·养龙虾·hermes·养马·honcho
idolao36 分钟前
CentOS 7 安装 jakarta-tomcat-connectors-jk2-src-current.tar.gz 详细步骤(解压、编译、配置)
linux·centos·tomcat
时空自由民.1 小时前
蓝牙协议栈介绍
linux·网络·单片机
Python私教2 小时前
FuturesDesk 集成 OMC 多智能体编排提效
人工智能·windows·开源