Windows内核之中断门提权

Windows内核之中断门提权

前言

    在平时三环程序下的开发中,都会用到断点,而这个断点其实就是与中断门有关联的。

1.中断门介绍
在三环程序开发中,编译器进行断点之后反汇编可以查看到,断点反汇编的形式就是 int 3。如下图,在OD中查看,这就是一个断点。

int 0x3; 其实就是查找的IDT表中,从0开始,索引为3的位置,继续看下图,通过windbg查看到int 3的段描述符。

INT段描述符对应的分解图如下:

构造中断门的高32位中的低16位的值是固定的,也就是ee00
而offset就是要跳转的函数地址(高32位中高16位和低32位中低16位)
低32位中,高16位是我们的段选择子偏移(index),查询的是GDT表

2.中断门的实现
接下来找一段空的位置,在把我们新构造的段描述符放进去。
1.构建段描述符
我们需要的两个条件,第一个是函数地址,第二个是段选择子 (index),这里我新建了一个__declspec的空函数,然后取地址即可
40100a。

第二个段选择子,我们用0008即可,就是GDT表中偏移为8的地方。

GDT表
kd> dq 80b99000
80b99000 0000000000000000 00cf9b000000ffff
80b99010 00cf93000000ffff 00cffb000000ffff
80b99020 00cff3000000ffff 80008b1e400020ab
80b9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值