• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pppwaw
V2EX  ›  程序员

问一点关于 Hook 的问题

  •  1
     
  •   pppwaw · May 15, 2020 · 2622 views
    This topic created in 2189 days ago, the information mentioned may be changed or developed.

    从未接触过驱动开发

    现在是想自己实现一个驱动,来对 NtOpenProcess 这些 API 进行 Hook,从而进行防病毒之类的操作

    目前了解到的 Hook 模式有SSDT HookInfinityHook

    有以下问题:

    • 根据了解,Windows 在 8 开始加入了PatchGuard来阻止 SSDT 的 Hook,也就是说目前无法进行 SSDT Hook 了?
    • 根据了解,SSDTHook 的替代方案 InfinityHook 只能 Hook R3 的 API 而不能 Hook R0 的,这个说法是真的吗?如果是真的,那有什么办法进行 R0API 的 Hook 呢?
    • 以及,有没有一些案例让我等小白能理解两种 Hook 从而开发自己的 Hook

    恳请 dalao 们不吝赐教

    PS:

    • 使用系统是 Win10
    • 会 Python 开发,会一点 C++开发,但是没有深入去研究过 Windows 底层
    Supplement 1  ·  May 15, 2020
    给一下相关的资料也可以,国外资料勉强也可以
    2 replies    2020-05-16 08:30:14 +08:00
    fakevam
        1
    fakevam  
       May 15, 2020
    win7 x64 就有 patch guard 了,绕过 PG 的方案有很多,但是出一个死一个
    一定要做内核防护的话,内核提供了很多 callback,可以驱动注入去做 callback 检测,但是点比较少,比如 object callback

    另外,还有一条万能的路,走虚拟化,在 host 上 hook vm,参考 360 他们的做法

    当然,你可以把 PG 关掉,这个方案搜一把就一大堆了
    pppwaw
        2
    pppwaw  
    OP
       May 16, 2020
    @fakevam emmm dalao 能给份相关的资料么,不强求绕过 PG
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3293 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 12:34 · PVG 20:34 · LAX 05:34 · JFK 08:34
    ♥ Do have faith in what you're doing.