zoukankan      html  css  js  c++  java
  • RING3到RING0的函数跟踪

    前两天面试,一位面试官老师提到了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了

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

  • 相关阅读:
    看盘技巧及要点
    棉花价格持续走高带来阶段性投资机会
    2009430远光软件,美锦能源
    c#获取汉字首字母拼音
    Linq分组查询统计
    json序列化
    jquery 实现飘落效果
    python学习开始
    DOS命令大全 DOS常用代码全在这里
    Python包含以下方法:
  • 原文地址:https://www.cnblogs.com/L-Sunny/p/9098180.html
Copyright © 2011-2022 走看看