×

内核级HOOK的几种实现方法与应用说明

消耗积分:0 | 格式:rar | 大小:0.02 MB | 2020-11-10

分享资料个

  实现内核级HOOK 对于拦截、分析、跟踪系统内核起着致关重要的作用。实现的方法不同意味着应用侧重点的不同。如想要拦截NATIVE API 那么可能常用的就是HOOKSERVICE TABLE 的方法。如果要分析一些系统调用,那么可能想到用HOOK INT 2E 中断来实现。如果想要拦截或跟踪其他内核DRIVER 的调用, 那么就要用到HOOK PE 的方法来实现。这里我们更注重的是实现, 原理方面已有不少高手在网上发表过文章。大家可以结合起来读。下面以我写的几个实例程序来讲解一下各种方法的实现。错误之处还望各位指正。

 

  1、HOOK SERVICE TABLE 方法:

  这种方法对于拦截NATIVE API 来说用的比较多。原理就是通过替换系统导

  出的一个SERVICE TABLE 中相应的NATIVE API 的地址来达到拦截的目的。

  因为此方法较为简单, 网上也有不少资料来介绍。所以这里就不给出实例程序了。SERVICE

  TABLE 的结构如下:

  typedef struct ServiceDescriptorEntry {

  unsigned int *ServiceTableBase;

  unsigned int *ServiceCounterTableBase;

  unsigned int NumberOfServices;

  unsigned char *ParamTableBase;

  } ServiceDescriptorTableEntry_t, *PServiceDescriptorTableEntry_t;
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !