【51CTO独家特稿】MigBot是一款内核级代码补丁技术的演示代码,它向我们展示了修改运行时代码的强大技术,本文将带领读者一道,通过其源代码来领略MigBot所使用的代码补丁技术。
一、代码补丁技术
Rootkit为了达到隐形的目的,经常需要对现有的代码执行流程进行修改,其中最常见的手法是通过修改函数的调用表来拦截函数调用。但是,对于这种司空见惯的手法,反Rootkit软件早有防备,于是Rootkit的开发者便改辕易辙,不再在调用表上做功夫,而是直接向函数的代码自身下手——代码补丁技术便应运而生了。
代码补丁,如名称所示,就是直接修改程序的二进制代码。当然,我们既可以给硬盘上的二进制文件打补丁,也可以对内存中的二进制代码打补丁,而本文分析的MigBot便属于后者,它通过给代码补丁来改变程序的执行流程。
二、通过代码补丁拦截API
对于代码补丁技术,在改变程序控制流程时最常见的办法就是用一个跳转指令来覆盖目标函数开始部分的字节内容,而这个指令将跳转到植入的Rootkit代码的起始地址。这样,只要目标函数一旦执行,控制权就会马上落入Rootkit的手里。如下图所示:
![]() |
| 图1 利用代码补丁技术拦截API示意图 |
所以,即使不修改调用表,通过代码补丁技术也能达到拦截API的效果。并且,当有多个调用表指向同一个目标函数的时候,使用修改调用表的方法是比较麻烦的,因为必须修改所有相关的调用表才能保证有效的拦截目标函数,而使用代码补丁技术的话则根本不会有这种麻烦。
下开始,我们将要具体分析MigBot的源代码。因为操作内核函数的内存空间需要内核级的权限,也就是ring0,所以MigBot作为设备驱动程序实现,这样它就能在ring0级运行了。为此,我们首先看一下驱动程序的DriverEntry例程。
| 共4页: 1 [2] [3] [4] 下一页 | ||||||
|
|
||||
| · Windows Server 2008专.. · 华为员工自杀频频拷问.. · 勇闯IT培训黑色围城 · CISSP认证成长之路 · 解析35岁技术人的价值.. · 网络工程师职业规划与.. · LAMP技术精解 · AMD Phenom三核处理器.. |
· 充电计划之热门IT认证.. · 如何有效防御SQL注入攻.. · 2008年上半年全国软考.. · 选择适合自己的IT认证 · IPv6协议--拓展网络无.. · 了解统一威胁管理(UTM).. · 调查:十大发现 解秘技.. · 技术人求职简历完备手册 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Apache技术专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. · 专题:AIX操作系统管理.. |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 · 专题:AIX操作系统管理.. |
|||