6_再次开中断STI的正确姿势

1 直接开启sti --蓝屏

1570247170919

2 配置环境 正确开启sti 中断

kpcr -- 很多重要线程切换的数据、结构

进入内核的时候 fs 不再是teb/tib; 是kpcr

同时观察 kifastcallentry,发现 的确设置了 fs 为内核的 kpcr:

1570247977571

那我们手动修改成 kpcr ;

1570247880781

注意: 如果 直接使用fs 不行;那么就查相关硬编码 来代替。

1570248214479

 

 

效果 系统不卡,且任何方式杀不掉,关机也杀不掉:

当前系统不卡死了,能线程调度了;但是 测试的程序 不能被杀死,也结束不了,因为结束线程是 插入 apc队列请求,是异步过程;因为结束线程并不是马上结束的,肯定需要执行到特定的环境,不然执行到一个语句就切,那么环境就是错误的,可能导致蓝屏、%100导致错误。

线程结束实际过程:

从 0 环返回3环 之前;系统会检查其 apc 队列,查看是否有结束的请求。有 就杀死(如果是进程的最后的一个线程,那就把对应进程给清理掉)

但是这里:

在 0环一直死循环;导致不会切换到3环的瞬间之前检查;所以杀不掉。

 

怎么杀掉:

---- 只有修改 破环那个死循环。

1570249015308

  • !process 0 0

  • .process 对应的_eprocess

  • u 0xaddr

  • ew 401005 9090 修改。。。 nop掉。就可以杀死并关机了

1570249133343

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值