RootKit 入门

转载 2007年10月02日 14:45:00

引用自http://zhleonix.spaces.live.com/blog/cns!540BEA2C8D67096B!156.entry

来源:rootkit_com 作者:Clandestiny 翻译:fqh

“Help!我是一名新手!我需要一款rootkit入侵朋友的机器…我想编写自己的rootkit…我想开始开发代码… 该从哪里入手?”

此类问题在rootkit.com上不断地出现,并且重复回答一些人问的相同问题浪费了大量时间,我想到我们应当编辑一个短小的文档来对它们进行一般性的叙述。下面的论述远非完整的,社区中有经验的人可以提建议来对它进行拓展。

你想知道从哪里入门?好的,首先,如果你来到这里是为了寻找入侵你朋友机器的既成方法,你可来错了地方!Rootkit.com主要是一个知识性的网站,它目的是提供一些有关rootkit开发的资料和相关编程的文章。另一方面,如果你是一名想学习如何编写自己的rootkit的新手,你需要一些如何入门的建议,请接着阅读…不幸的是,rootkit开发和软件开发需要相当多你必须掌握的前提知识:

1. 首先,你得学习一种语言。C / C++最好的选择。不像其他语言,C具有内嵌汇编语言的能力。虽然大多数程序员极少使用到汇编语言,但是rootkit的开发有时需要汇编语言的灵活性,所以x86汇编应当成为你的辅助编程语言。Randall Hyde的《Art Of Assembly》是汇编编程最好的参考资料之一。该书有印刷和电子书两种可获取的版本。
《Art of Assembly》的下载网址是
http://webster.cs.ucr.edu/AoA/DOS/

2. 你需要学习一些操作系统的理论。虽然大学的设计操作系统理论课程不是必需的,但阅读大学计算机学科教材的若干章节是有益的。特别是进程﹑线程﹑内存管理等知识,你得了解。
这方面很好的书籍有两本:
《Operating System Concepts》Silberschatz, Galvin, 和 Gagne著
《Operating Systems》Deitel & Deitel著

3. 你得应用理论知识,理解真实世界中的操作系统比如windows实际上是如何工作的。虽然Windows不公开源代码,但是有很多牛人热衷于对系统内核工作原理进行逆向分析,并公开了他们的发现。弄一本此类的书吧,比如Sven Schreiber写的《Undocumented Windows 2000 Secrets》 或者Prasad Dabak, Milind Borate,和 Sandeep Phadke写《Undocumented Windows NT》。

4. 如果你想着手开发内核rootkit,你还得学习如何编写内核模式驱动程序(KMD)。很不幸,互联网上关于内核编程的教程,适合初学者的很少。不过,Four-4写出了几篇很好的win32汇编版的教程,它们可在
http://www.assembly-journal.com/sitemap.php获取。除此之外,这方面的书籍还有一些:包括Art Baker 和Jerry Lozano蓍的《The Windows 2000 Device Driver Book》以及Walter Oney蓍的《Programming The Microsoft Windows Driver Model》。

5. 学习逆向代码分析的基础知识,也就是说对于没有源代码的二进制文件也能(通过逆向分析)了解到(代码功能等)有关信息。练习逆向分析软件的保护机制(序列号,时间检验,脱壳,演示软件的功能限制等等)是发展这个技能的有趣方式。有很多程序员编写了训练用的小型程序。这些程序称之“crackmes”和” “reversemes”,我们可用它们来进行练习。在
http://www.crackmes.dehttp://www.reversemes.de上收集了大量这样的小程序。http://www.woodmann.com上有大量高手写的关于逆向工程的资源。http://bib.universitas-virtualis.org/上也有若干优秀教程和文章。逆向分析同样需要一些特别的工具,包括反汇编器和调试器。IDA Pro是首选的反汇编器,SoftICE (内核调试器)和OllyDebug是可供使用的调试器。其他各式各样的此类工具可从http://protools.cjb.net获取

6. 最后,本站讨论了一些入侵工具和rootkit,如果你需要理解它们的资料,我推荐Greg Hoglund的《Exploiting Software》(本站就有)和《Shell Coder's Handbook》。两者都会提供给你很好的入门知识。《Exploiting Software》有一章节介绍了基本的rootkit技术。一般,基于它们的数据拦截方法,Rootkit可以分为两种:要么是挂勾,要么是直接内核对象操作(DKOM)。为了理解挂勾技术,以下链接可能对你有帮助。

API 检测技术(API Spying Techniques)
http://www.internals.com/articles/apispy/apispy.htm
挂勾高级函数(Advanced Function Hooking)
http://www.phrack.org/show.php?p=58&a=8
挂勾Windows NT服务表(Windows NT Service Table Hooking)
http://www.wiretapped.net/~fyre/sst.html
挂勾Windows NT系统服务(Hooking Windows NT System Services)
http://www.windowsitlibrary.com/Content/356/06/2.html
挂勾Windows NT系统调用(Windows NT System-Call Hooking)
http://www.ddj.com/articles/1997/9701/
为了理解DKOM,你可以阅读fuzen_op 写的FU rookit的源代码。

相关文章推荐

内核级Rootkit技术入门

本文转自:http://netsecurity.51cto.com/art/200609/31683.htm                 Rootkit是一种奇特的程序,它具有隐身功...

【原创】RootKit hook之[二] SSDT hook

标 题: 【原创】RootKit hook之[二] SSDT hook 作 者: combojiang 时 间: 2008-01-12,23:00:47 链 接: http://bbs.pedi...

rootkit hook之[三] inline hook

最近为了写好rootkit inline hook篇,特意A了著名的流氓软件(cdnprot.sys),这个文件很庞大,有152k之多, 花费了我好几个晚上的时间,让我少看好多集的电视剧《闯关东》,在...

rootkit hook之[四]-- IDT Hook

今天我们一起来学习下Rootkit里面的IDT hook. 由于涉及到一些基本概念,在这里也顺便提一下。呵呵,帖子比较长,慢慢看。闲话少说,直奔主题。 我们首先来了解下什么是IDT? IDT ...

从EXE的资源段提取sys文件-转载自(rootkit:subverting the windows kernel)

Windows PE executables allow multiple sections to be included in the binary file. Each section can b...

LINUX下rootkit木马侦测文档-总结版

LINUX下rootkit木马侦测文档 ####################################################################### wget...

基于VMM的Rootkit检测技术及模型分析

Linux通过其特有的虚拟文件系统(Virtual Filesystem)实现对多种文件系统的兼容。虚拟文件系统又称虚拟文件系统转换(Virtual Filesystem Switch vFs),是一...
  • sdulibh
  • sdulibh
  • 2014年06月09日 11:26
  • 1153

如何劫持软件更新来安装 Rootkit 的后门访问

有无数种方法破解系统。如果我们想应用自己的系统,我们不应该忽视任何的可能性,我们需要搜索弱点保持警惕。在这次破解,我们将会看看滥用信任用户对软件更新,他们的系统上安装监听器/rootkit。 利...

【原创】rootkit hook之[六] -- sysenter Hook

标 题: 【原创】rootkit hook之[六] -- sysenter Hook 作 者: combojiang 时 间: 2008-02-26,12:25:40 链 接: http://b...

读书笔记_Rootkit技术_深入补丁

之前介绍的都是在函数的入口处进行代码补丁,因为在内存中很容易找到函数,所以这个方法很容易实现。但anti-rootkit也同样容易检测到这种补丁,因为它可以只检查函数起始的20个字节的完整性就能够发现...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RootKit 入门
举报原因:
原因补充:

(最多只允许输入30个字)