基于windows平台的rootkit技术分析与应用-analysis and application of rootkit technology based on windows platform.docxVIP
- 5
- 0
- 约6.17万字
- 约 69页
- 2018-05-18 发布于上海
- 举报
基于windows平台的rootkit技术分析与应用-analysis and application of rootkit technology based on windows platform
第二章 Rootkit 技术原理本章分别介绍了用户级 Rootkit 技术和内核级 Rootkit 技术相关的技术原理, 了解这些原理是理解与应用 Rootkit 核心技术的前提和准备工作,这些原理包括 用户级 Rootkit 技术原理、实时进程数据注入技术和内核级 Rootkit 技术原理、构 建 Windows 设备驱动程序等。用户级 Rootkit 技术原理本节介绍用户级 Rootkit 技术的相关原理,首先介绍了 DLL 基础,它是扩展 应用程序功能的有效方式,用户级 Rootkit 一般将自己的功能代码通过 DLL 方式 载入需要挂钩的目标进程中进行运作,而如何将自己的代码载入目标进程中则需 要利用实时进程数据注入技术。此外,本节还介绍了一个在 Rootkit 编程中常见 函数指针。DLL 基础(1)在应用程序中使用 DLL(动态链接库)的理由:通过运用 DLL,扩展了应用程序的特性,简化了项目管理,有助于节省内 存,也促进了资源的共享和本地化,并且可以解决不同操作系统平台间的差异, 所以 DLL 得到了广泛的应用。(2)关于 DLL 的概念: 一个地址空间是由一个可执行模块和多个 DLL 模块构成的。在创建 DLL 的时候,必须给链接器指定 DLL 开关。这个开关会使链接器在 生成的 DLL 文件映像中保存一些与可执行文件略微不同的信息。这样操作系统 的加载程序就能够将该文件映像识别为 DLL,而不会将它识别为应用程序。一旦系统将一个 DLL 的文件映像映射到调用进程的地址空间中之后,进程 中的所有线程就可以调用该 DLL 中的函数了。该 DLL 中的函数创建的任何对象 都为调用线程或调用进程所拥有。如果编译器看到一个变量、函数或 C++类是用 declspec(dllexport)修饰的, 那么它就知道应该在生成的 DLL 模块中导出该变量、函数或 C++类。相反,如 果可执行文件的变量或函数是使用 declspec(dllimport)修饰的,那么编译器就知 道该可执行文件的源文件需要从 DLL 模块中导入一些变量或函数。(3)构建 DLL 的步骤:首先创建一个头文件,在其中包含想要在 DLL 中导出的函数原型、结构以 及符号。为了构建该 DLL,DLL 的所有源文件都需要包含这个头文件。然后创 建 C/C++源文件来实现想要在 DLL 模块中导出的函数和变量。随后在构建该 DLL 模块的时候,编译器会对每个源文件进行处理并产生一个.obj 模块。当所 有.obj 模块都创建完毕后,链接器会将所有.obj 模块的内容合并起来,产生一个 单独的 DLL 映像文件。如果链接器检测到 DLL 的源文件输出至少一个函数或变 量,那么链接器还会生成一个.lib 文件。这个文件列出了所有被导出的函数和变 量的符号名。(4)导出与导入:在链接 DLL 的时候,链接器会检测到这些与导出的变量、函数或类有关的 嵌入信息(由 declspec(dllexport)修饰),并生成一个.lib 文件。这个.lib 文件列 出了该 DLL 导出的符号。在链接任何可执行模块的时候,只要可执行模块引用 了该 DLL 导出的符号,那么这个.lib 文件当然是必需的。除了创建这个.lib 文件 之外,链接器还会在生成的 DLL 文件中嵌入一个导出符号表。这个按字母顺序 排列的导出段列出了导出的变量、函数和类的符号名。链接器还会保存相对虚拟 地址(RVA),表示每个符号可以在 DLL 模块中的何处找到。如果编译器看到一个变量、函数或 C++类是用 declspec(dllimport)来修饰 的,那么它会知道应该从某个 DLL 模块中导入该符号。其实在导入符号的时候, 不必使用 declspec(dllimport)关键字,而可以直接使用标准 C 语言的 extern 关键 字。但是,如果编译器能够提前知道我们引用的符号是从一个 DLL 的.lib 文件中 导入的,那么它将产生略微高效的代码。当链接器在解决导入符号的时候,会在 生成的可执行模块中嵌入一个特殊的段,它的名字叫导入段。导入段列出了该模 块所需的 DLL 模块,以及它从每个 DLL 模块中引用的符号。(5)DLL 隐式链接和显式链接:应用程序导入函数与 DLL 文件中的导出函数进行链接有两种方式:隐式链 接和显式链接。所谓的隐式链接是指在应用程序中不需指明 DLL 文件的实际存 储路径,程序员不需关心 DLL 文件的实际装载。而显式链接与此相反。采用隐式链接方式,程序员在建立一个 DLL 文件时,链接程序会自动生成 一个与之对应的 LIB 导入文件。该文件包含了每一个 DLL 导出函数的符号名和 可选的标识号,但是并不含有实际的代码。LIB 文件作为 DLL 的替代文件被编 译到应用程
您可能关注的文档
- 基于webrtc语音引擎的会议混音技术分析-analysis of conference mixing technology based on webrtc voice engine.docx
- 机构养老问题探究——以泗水县为例-probe into the problem of institutional pension —— taking surabaya county as an example.docx
- 基于webservice的招商引资视频会议系统-video conference system of investment promotion and capital introduction based on web service.docx
- 基于webservices应用的安全机制分析-analysis of security mechanism based on web services application.docx
- 基于webservice的应用集成关键技术分析-analysis of key technologies of application integration based on web service.docx
- 基于webgis与遗传-禁忌算法木材物流网络优化-optimization of wood logistic network based on webgis and genetic - tabu algorithm.docx
- 基于webservice的bs架构的在线考试系统的设计与实现-design and implementation of bs - based online examination system based on web service.docx
- 基于webservice物流跟踪决策系统实现-implementation of logistic tracking decision system base on web service.docx
- 基于web-svg的电网信息数据展示的分析与应用-analysis and application of grid information data display based on we b - svg.docx
- 基于web代理的访问控制网关系统分析与实现-analysis and implementation of access control gateway system based on web proxy.docx
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)