当前位置:网站首页>SYSCALL SWAPGS
SYSCALL SWAPGS
2022-07-30 16:56:00 【ma_de_hao_mei_le】
友链
references:
swapgs指令会将GS寄存器的值和MSR地址为C0000102H(IA32_KERNEL_GS_BASE)的值进行交换
当时用SYSCALL实现系统调用的时候,不存在内核栈空间,也不存在指向保存了内核栈空间内核结构的指针
因此,内核没办法去保存通用寄存器的值或者引用的内存里的值
关于为什么要保存通用寄存器或者内存里的值到栈里面请参考这篇文章:https://blog.csdn.net/ma_de_hao_mei_le/article/details/124604874
SWAPGS指令不需要任何操作数
在使用该指令之前不需要保存任何通用寄存器,
在交换完毕之后就可以使用GS作为段地址来访问内核结构了
尝试给nt!KiSystemCall64函数下断点,下完断点之后g直接导致虚拟机崩溃了

后来网上搜可一下
https://stackoverflow.com/questions/65367333/breakpoint-setting-in-ntkisystemcall64-not-working
说是因为该函数的前三条指令是用于设置内核栈空间的,内核调试需要先执行这三条指令来设置栈空间,也就是说这三条指令上面是不能下断点的,需要往后偏移
还有就是如果断点一直不被触发,有可能是因为目标机器上装了什么杀软导致的,卸载再尝试一下

从push 2B那条指令开始调试,也就是bp nt!KiSystemCall64+0x15
边栏推荐
- Lotus explodes the block failed
- Various meanings of SQL's PARTITION BY syntax (with examples)
- 云厂商做生态需要“真连接、真赋能”,用“技术+真金实银”发展伙伴
- 测试管理与规范
- LeetCode167:有序数组两数之和
- huato 热更新环境搭建(DLL方式热更新C#代码)
- How to connect redis in node.js?
- olap——入门ClickHouse
- FP6606ACAW4 TQFN-20L (3mmx3mm) USB双端口充电控制器 百盛电子代理
- [NCTF2019] Fake XML cookbook-1|XXE vulnerability|XXE information introduction
猜你喜欢
随机推荐
深度学习区分不同种类的图片
数据库课程设计大作业大盘点【建议在校生收藏】
疫情之下的裁员浪潮,7点建议帮你斩获心仪offer
Gorilla Mux 和 GORM 的使用方法
实现web实时消息推送的7种方案
Explore CSAPP Experiment 2-bomb lab-Section 1
[MRCTF2020]Ezaudit
data storage
新零售saas小程序如何探索数字化门店的破局之路?
torch.optim.Adam() function usage
Rounding out the most practical way of several DLL injection
服务器装好系统的电脑怎么分区
测试管理与规范
PHP留言反馈管理系统源码
数据的存储
SLIM: Sparse Linear Methods (TopN推荐)
The way of life, share with you!
FP6600QSO SOP-8 USB专用充电端口控制器 用于快充电协议和QC2.0/3.0
Oracle动态监听与静态监听详解
升级Win11后不喜欢怎么退回Win10系统?









