版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、写这一系列文革的目的有两个:一是告诉大家绝影还在。二是尝试向大家介绍一种新的技术,我把他叫做“动态感染”,也许这样命名不规范,但我至今仍未找到对这一技术的比较科学合理的命名方式。所以姑且把它叫做“动态感染”吧。所谓的“感染”大家应该比较熟悉,它的原理是在一个pe文件中新添加一个节(或者从已有的节中寻找一块足够大的可用空间),将感染代码写入,再修改原pe文件的 entrypoint 的代码,改为 jmpxxxxxxxx(xxxxxxxx为感染代码的起始位置),当感染代码执行完毕后,再使用一条jmpoldentrypoint代码跳回pe程序的原入口点。这样当pe文件运行时就会先执行我们 写入的感染
2、代码。对pe文件的分析和更改技术都比较成 熟,唯一的难点是所有感染代码都要使用自定位代码, 或者修改pe文件的导入表等,加入对感染代码所使用的dll函数的支持。这一感染过程是静态的, 必须在pe文 件没有运行的情况下进行;同时这一方法也是很不妥的, 毕竟修改了原始的pe文件,恢复起来相当困难,几乎对 其进行了不可逆的破坏。以下要讲的“动态感染”,都是在内核态下,所以我们要做的,也就是一个内核模块(有些人叫做“驱动”,但我觉得这样并不严格)。当一个pe文件开始执行时,内核中先要进行很多工作:分配内存、创建线程、加载导入表中的dll等,这里就不详细阐述了。我们想要做的,是在执行到entrypoin
3、t之前,用zwallocatevirtualmemory向目标进程中分配内存, 写入感染代码,将原始的 entrypoint修改为感染代码的起始,然后我们的感染代码执行一系列操作,最后jmpoldentrypoint ,将控制权交回原来的代码。整个过程不修改原始pe文件,可随时卸载我们的内核模块。这一技术的意义在于我们要动态地保护指定的应用程序 不被其他dll入侵(防止木马等)。我们知道 dll入侵是比较普遍的入侵方式,可以用钩子,也可以用远程线程。钩子的方法相信大家都比较熟悉,远程线程的方法除了可以用loadlibrary作为线程函数加载一个入侵dll ,还有一种改进的办法,就是宜接用纯自定
4、位代码注入目标进程。这类方法在没有杀毒软件的情况防范还是有一定的困难,况且现在很多病毒还能关闭杀毒软件,或者欺骗杀毒软件。如果我们在目标进程已经运行起来的情况下再来保护,可能已经来不及了,有些 dll的注入是非常快的。而我们现在要讨论的技术,是在整个进程还没有完全启动的情况下(尚没有一个线程被创建)来进行,我们的代码进入目标进程的时间相当早,有足够的时间来完成防护准备。如果你使用ollydbg来调试我们的被保护程序,你会发现,当 od中断在程序的入口点时,我们的代码已经完成了运行。这系列文革我会分为几个部分来写:使用汇编语言编写 内核态程序;获取内核基址、 ssdt基址;hookssdt 监视
5、进程创建;在进程的第一个线程执行前向目标进程 分配内存并注入代码;编写自定位的感染代码(代码简 单,因为你如果已经学到这里了,你自己就可以写复杂 的代码,也可以使用 loadlibrary载入dll来实现复杂 的功能)。为什么要用汇编语言来写内核态程序呢? 一是因为我已经习惯了;二是ssdt钩子函数的简便;三是由于要写级定位的代码,对高级语言来说还是相当困难(至少我 还没找到简单有效的方法,例如要计算注入的代码的长 度,除非你事先反汇编);四是你顺便可以学习用汇编 语言来编写程序。当你学完了这个系列的文革,你会发 现,在我们写的这个小程序中,大部分是内核态下的代 码,同时又有用尸态下的代码(注
6、入到目标进程中的感染代码),这是个非常有意思的小东西。要学习这系列的文革,你首先要准备以下工具:一、mirosfotvisualstudio2003(用这个只是编辑器,也可以用更高或更低版本的 visualstudio ,但莫些汇编、 连接的设置可能会有变化;如果你会用makefile而且你 是编程牛人宜接用记事本编写代码那就忽略)。二、masm32v10 开发包(其实 v9, v8是一样的)。三、kmdkit (汇编语言用的驱动程序开发包)。四、kmdmanager.exe(加载并测试我们编写的内核程序,在kmdkit中有)。五、ollydbg (可以测试或者观察我们的代码)六、vmware
7、之类的虚拟机(可选,测试用,免得你的 机器频繁蓝屏,当然,如果你对内核开发很有信心可忽 略)。你需要掌握的技术知识有以下几点:一、汇编语言基础知识(如果你会使用 masm32开发包, 已经用汇编语言写过小应用程序那就 ok ,否则你还是去 看下windows 环境下汇编语言程序设计吧)。二、用汇编语言编写内核程序的基础知识(会用kmdkit就ok,不过不会也没关系,我会尽力跟大家讲解明白)三、对内核程序的认识和理解(请不要再停留在 cxxxx 类的使用或莫个windowsapi的调用上,否则你根本就 不会知道我在讲什么)。四、会使用ollydbg (会使用而已,不是说会破解)。通过这一系列的文
8、革,你可以学习到以下的知识: 一、使用汇编语言开发内核程序的知识(包括使用 visualstudio 编写、汇编、连接汇编语言代码的知识, makefile我就不讲了,我自己也马不实在的)。二、对内核有所认识和了解(至少知道什么是内核,什 么是内核程序、内核基址等概念)。三、对ssdt有所了解(你现在也可以去 baidu上搜索 一下什么是ssdt,做好准备)。四、在内核上hookssdt (也可以宜接inlinehook 莫些 内核函数,但还是先一步一步来,ssdt稳当些)。五、通过hook内核的莫些函数监视进程的创建,在内 核态上向用尸态应用程序分配内存并拷贝数据(或代码) 进去。六、编写自定位代码(包括在用尸态上寻找 kernel32.dll基址等)本文所使用的环境是 windowsxpsp3因为xp比较熟悉了,而且买电脑的时候送的 xp是正版,而且kmdkit又没有windows7的版
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模具安装要点试题及答案呈现
- 骨产道异常相关试题与答案
- 血液净化中心知识试题及详细答案
- 2025年地震波叠前深度偏移成像技术新进展
- 2026年公证员业务知识模拟测试题及答案
- 2026年心理辅导员心理健康知识考核题库含答案
- 2026年西藏公务员考试(行政职业能力测验)全真模拟试题及答案
- 2026年保险机构合规管理员考试试卷试题及答案
- 《家校联动 筑梦未来-高三秋季开学家长会》
- 2026年四级人力资源管理师考试真题及答案
- 2026年司法所调解员业务综合考试题及答案
- 2026版抖音视频号直播带货全流程SOP
- 2026人教版五年级数学上册第一单元第1课《观察简单组合体(1)》课件
- 人工智能赋能高等教育课程教学改革探索与实践
- 2026年甘肃省中考道德与法治试卷(含答案及解析)
- 江苏省无锡市2025-2026学年四年级下学期6月数学期末调研试题(试卷+答案)
- T∕CHATA 060-2026 肺结核患者密切接触者结核感染筛查规范
- 2026年河南高考历史考试卷附答案
- 2026年医师定期考核中医试题(附答案)
- 20000吨溴化物系列及15000吨溴素及6000吨溴代烷类产品生产加工项目(一期)环境影响报告书
- 神经内科肌电图检查操作规范
评论
0/150
提交评论