7_API调用

0 查看 kifastcallentry 里面具体怎么调用

  • 首先是 切换了 fs 为kpcr的选择子

  • 然后 构造了 一个trap frame(保存3环--》0环 切换的上下文;如果0环不使用就没啥用,就不用构造;例如这里实验就没有构造,只是 切换了内核的kpcr)

1 使用内核api 申请内存 注意:

1570251121226

1.1 这里的函数地址是写死的,真正的地址应该动态获取

1.2 这里push 0x3b ; pop fs ; 是为了恢复 3环fs 为 teb

1.3 这里cli 关中断 是为了防止 在 pop fs 和iretd 之间 被切换线程;导致fs 被修改。

这里可以使用实现测试;如果不加cli 会有可能导致蓝屏;

虽然几率小,但是我们可以一直死循环调用

1570251483336

 

在中断开关 之间 就可以调用api了,就像例子里面调用exallocatepool() 分配内存一样。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值