大家好,欢迎来到IT知识分享网。
当我们开发Rootkit的时候,经常需要改变其功能,这时经常重复加载、运行、测试、停止和卸载这一系列的动作。加载和运行驱动程序的方法很多,我们这里介绍的是最简单的一种——利用工具软件InstDrv。
InstDrv是一款非常小巧的工具,它的.zip压缩包只有189KB。该工具可以动态地加载、运行、停止和卸载内核级驱动程序。该工具可以从网上下载,为了读者方便使用,该工具可以到论坛下载。
在 交互模式下,首先在“Full path of the driver”下面的文字框中输入要加载的驱动程序的绝对路径,对于本例而言,该地址是C:/myrootkit/objchk_wxp_x86/ i386/mydriver.sys,然后就可以利用文字框下面的“Install”、“Start”、“Stop”和“Remove”按钮分别进行驱动 程序的安装、运行、停止和卸载操作了。
当我们单击“Install”和“Start”按钮后,利用Win0bj程序(论坛下载地址)可以在/Driver目录中看到我们的驱动程序mydriver,如下图所示:
现在开始介绍InstDrv的命令行模式下的使用方法。在该模式下,我们同样需要使用驱动程序的绝对路径。此外,还有几个选项可用,这些选项的作用如下所示:
DbgPrint(“消息字符串”); |
当 我们收到这样的消息时,至少说明某行代码已经执行,此外还能给出更多的描述信息。虽然这种调试方法计较简陋,但却很方便。像SoftIce 或WinDbg之类的调试程序的配置和使用是很麻烦的,尽管它们功能很强大。使用调试语句时,返回码能打印出来,对于出错情况也有较为详细的描述。我们可 以利用这些函数给出驱动程序执行期间的重要信息,然后使用适当的调试消息捕获工具记录下这些消息,从而进行简单的调试。
我们这里介绍的是一个常见的调试语句捕获工具:Debug View,到51CTO论坛下载。
我 们说过,这和一般程序不同,驱动程序消息不会显示在标准输出设备上,也就是说,我们在屏幕上看不到这则消息。下面我们还是以上篇“内核级Rootkit技 术入门”文章中编译好的驱动程序为例子,来说明如何利用Debug View来记录调试消息。我们的驱动程序非常简单,它只是在内核运行时,利用调试语句给出一则消息:“I am a driver and I loaded!”,然后卸载时给出消息“MyUnload called”。下面具体介绍如何利用专门的工具Debug View查看这些调试消息。
DebugView 是一款本地调试软件,它能捕获驱动程序的调试输出信息。DebugView不仅能够捕获用户模式的应用程序产生的调试输出,而且还能捕获Windows内 核本身或/和内核模式设备驱动程序所产生的调试输出信息。对于后者,我们需要选中“Capture”菜单中的“Capture Kernel”选项,或者在工具栏中单击齿轮形状的“Capture Kernel”按钮(如果该按钮上有一个红色的叉,你就需要再按一下;否则说明已经设定为捕捉内核状态了),或者使用热键Ctrl+K。
下面是工作中经常用到的功能,我们在此加以介绍:
插入注释
通过选择“Edit”菜单的“Append Comment”菜单项,我们就能在当前输出窗口中键入注释并回车,从而向输出中添加注释。
清屏
利用工具栏上的“clear”按钮能够清除当前程序产生的输出消息。
输出窗口内容的保存
我 们要想将DebugView窗口中的内容保存成一个扩展名为.log的文件,可以选中 “File”菜单中的“Save”或“Save As”菜单项,或者使用组合键Ctrl+S。此外,我们开可以利用“Edit”中的“Copy”菜单项,或组合键Ctrl+C将选中的内容复制到剪贴板, 然后保存在适当的地方。
将消息记录到文件中
为了将DebugView程序捕获的记录输 出成为像我们在输出窗口看到的样子的文件,我们要使用“Files”菜单中的“Log to File”或“Log to File As”菜单项,或者工具栏中的“Log to File”按钮,或者使用组合键Ctrl+O也可以。然后设置文件的名称和最大尺寸等。如果选择了“wrap”选项,当文件尺寸达到其最大值时, DebugView将回卷到文件起始处。
如果选择了“Create New Log Every Day”项,DebugView就不再限制日志文件的尺寸,但它会为每天的日志新建一个文件,该文件的名称是你规定的文件名加上当前日期。
本 文向读者介绍加载和调试内核级Rootkit的一些简易方法和工具,其中具体介绍了InstDrv和DebugView这两款小工具的使用。实际上,这些 方法只适合于开发期间的简单调试,对于更加复杂的调试工作,我们可以使用SoftIce 或WinDbg之类的调试程序;对于“产品级”的Rootkit的加载,我们需要更加高级的技术,我们将在会面的文章中详细介绍。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132185.html