zoukankan      html  css  js  c++  java
  • rookit入門

    来源: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.de和http://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/

  • 相关阅读:
    2017光棍节新生训练赛
    javascript模块化编程(二):AMD规范
    javascript模块化编程(一):模块的写法
    CommonJS Promises/A规范
    javascript面向对象(三):非构造函数的继承
    javascript面向对象(二):构造函数的继承
    javascript面向对象(一):封装
    this用法(ryf)
    javascript继承机制的设计思想(ryf)
    XMLHttpRequest对象用法
  • 原文地址:https://www.cnblogs.com/bittorrent/p/3149190.html
Copyright © 2011-2022 走看看