科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道内核级Rootkit技术入门(5)

内核级Rootkit技术入门(5)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了Windows下的内核级Rootkit的最基础性的东西,以及利用驱动程序将代码导入到内核的方法。虽然我们还没有涉及到真正的Rootkit,但这些内容是我们掌握Rootkit的必经之路.

作者:51CTO.COM 2007年10月24日

关键字: 黑客入侵 内核模式 Rootkit技术 函数指针

  • 评论
  • 分享微博
  • 分享邮件

  2. SOURCES文件

  要想构建设备驱动程序,仅有驱动程序源文件还是不够的,我们还需另外两个文件:SOURCES和MAKEFILE文件。

  我们先来介绍SOURCES文件,此文件的名称必须使用大写字母,并且不带任何扩展名,它的内容应当包含:

  TARGETNAME=MYDRIVER

  TARGETPATH=OBJ

  TARGETTYPE=DRIVER

  SOURCES=mydriver.c

  其中,第一个变量TARGETNAME的作用是为我们的驱动程序命名。在本例中,我们的设备驱动程序在编译后被命名为MYDRIVER。需要注意的是,变量TARGETNAME指定的名称会被嵌入到二进制代码之中,所以在写Rootkit时,千万不要用该变量为其指定容易被人猜中的名称。即使把二进制文件本身改名,但其内部的名字是无法改变的。最好用一些迷惑性较强的名称来为这些Rootkit命名,方法是根据系统中已有的驱动程序名,在此基础上少做手脚,一个上佳的Rootkit名便诞生了。

  第二个变量TARGETPATH的作用是指定驱动程序编译后的存放位置,该变量通常设为OBJ。一般来说,驱动程序文件被放在目录objchk_xxx/i386下面,例如本文驱动程序,作者在Windows XP下构建后的文件将位于C:\myrootkit\objchk_wxp_x86\i386。

  第三个变量TARGETTYPE用来指定要编译的文件类型。对于设备驱动程序,该变量设为DRIVER。

  第四个变量SOURCES用来指定源文件。该变量可以指定多个源文件,这时每行一个文件,并且除最后一行外,在每行末尾都要放上一个反斜杠,如下例所示:

  SOURCES= myfile1.c \

  myfile2.c \

  myfile3.c /*注意,最后一行没有反斜杠*/

  除了上面几个必选的变量外,还有一些可选变量。变量INCLUDES便是可选变量之一,它用以规定寻找包含文件的目录。现举例说明:

  NCLUDES = c:\my_includes \

  ..\..\inc \

  c:\other_includes

  如果需要链接库的话,我们还需要变量TARGETLIBS。例如,有时我们要用到NDIS库,这时在SOURCES文件就应当包含如下一行:

  TARGETLIBS=$(BASEDIR)\lib\w2k\i386\ndis.lib

  或者:

  TARGETLIBS=$(DDK_LIB_PATH)\ndis.lib

  当然,ndis.lib在你自己系统上的位置可能有所不同,你可以根据实际情况将上面的路径加以调整。其中,变量$(BASEDIR)规定DDK的安装目录$(DDK_LIB_PATH);变量$(DDK_LIB_PATH)则规定了库文件的默认安装位置。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章