码迷,mamicode.com
首页 > 其他好文 > 详细

RING3到RING0的函数跟踪

时间:2018-05-28 00:50:19      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:图片   字符串   ima   老师   实现   win   image   字符   sys   

前两天面试,一位面试官老师提到了RING3到RING0的跟踪,自己以前是windbg跟踪过一次,想着再用OD跟踪一下

就在当复习一下,当时答面试官哥哥进R0是哪个函数的时候,竟然想不起来,只知道说是Ki开头的那个函数,真是汗颜,不珍惜机会啊

好好记住吧

OD加载咱们的notepad 下断点到CreateFileW,迷惑于是CreateFileW还是CreateFileA可以用PEID看一下,或者OD自己查找不过OD在这里不是太好用

技术分享图片

然后OD运行(F9)到这里,看EIP很清晰就是该函数

技术分享图片

继续往下调试就很顺利看到调用的NT函数,当然中间的这两个函数需要注意,如下,用它毕竟是因为该函数和字符串,路径有关

技术分享图片

然后就看到调用的函数是NtCreateFile,最终是ZwCreateFile,当然他们的入口地址是一样的,如下

技术分享图片

技术分享图片

现在还还没进去R0呢就再去跟进esi,可以看到他的索引号(42),和调用的KiFastSystemCall,索引号的意思是要在SSDT找位置,对应的位置找对应的函数地址,所以我们懂了实际上R3就是找索引号,然后陷进去到R0,找对应SSDT的位置得真正运行函数地址

KiFastSystemCall是进R0得关键

技术分享图片

这是KiFastSystemCall的实现,sysenter就是中断进R0了调用NtCreateFile,返回

技术分享图片

返回后记得释放啊

技术分享图片

最后retn看到CreateFileW了

技术分享图片

 

借用曾是土木人的一张图:

技术分享图片

 

RING3到RING0的函数跟踪

标签:图片   字符串   ima   老师   实现   win   image   字符   sys   

原文地址:https://www.cnblogs.com/L-Sunny/p/9098180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!