病毒和杀毒软件的加壳原理
### 病毒和杀毒软件的加壳原理 #### 一、壳的简要介绍 **压缩壳**主要用于减少程序的体积,便于存储和传输,同时也能够阻止逆向工程的进行,使得黑客难以分析其内部结构。压缩壳通常通过高压缩算法来减少程序的大小。 **加密壳**则是利用各种反调试技术和加密技术来保护程序,防止程序被调试、逆向或破解。加密壳不仅能够保护程序免受非法复制,还能够隐藏程序的真实逻辑,从而提高程序的安全性。 #### 二、脱壳的必要性 随着计算机病毒技术的发展,越来越多的恶意程序开始采用加壳的方式来规避传统的反病毒技术。据统计,目前超过95%的病毒使用了加壳技术来隐藏其真实身份,其中约60%的病毒使用了常见的壳来进行保护。为了有效地识别和清除这些病毒,必须掌握脱壳技术。例如,流行的壳列表可参考http://dswlab.com/toppacker.html。 #### 三、常用自动脱壳方法 1. **静态脱壳** - 静态脱壳是指通过分析加壳算法,编写相应的逆向过程来实现脱壳。然而,这种方法在面对复杂的加密壳时往往显得力不从心。 2. **调试器脱壳** - 调试器脱壳利用调试工具让加壳程序自行解码,从而暴露其原始状态。但当外壳具有较强的反调试能力时,这种方法也常常无效。 3. **虚拟机脱壳** - 虚拟机脱壳技术是通过模拟CPU和其他系统特性,使加壳程序在一个虚拟环境中运行,从而实现脱壳的目的。虚拟机脱壳的效果取决于模拟系统特性的程度。 #### 四、基于虚拟机的自动脱壳技术 1. **简易x86 CPU仿真** - 在虚拟机中实现简易的x86 CPU仿真,包括普通寄存器、段寄存器、标志位寄存器、EIP寄存器和调试寄存器等。 - 实现反汇编器负责识别机器码,寻址系统负责解析内存寻址方式并计算虚拟地址,以及指令解释系统来完成相应指令的动作行为。 2. **API仿真** - API仿真主要分为两类:一类是具备实际功能的API,如`ReadFile`等;另一类是负责堆栈平衡的API,如`SetWindowLong`等,这类API只需在仿真函数中平衡堆栈。 - API的导入可以通过三种方式实现:在虚拟机启动时导入、在程序执行过程中使用仿真的`GetProcAddress`导入,或者根据具体的模块自行分析模块的导出表实现API导入。 - 当eip寄存器中存在APIID时,表示需要调用仿真API,这可以在执行完每条指令后判定。为了提高效率,可以在特定指令(如`call`、`jmp`、`ret`等)解析函数中加入判断逻辑。 3. **PEloader技术** - PEloader技术是虚拟机中用于加载PE文件的技术,包括对PE文件的合法性、有效性判断以及具体的加载过程。 - 对于PE文件的合法性、有效性判断,主要包括检测MZ标志、PE标志、节的数量、`NumberOfRvaAndSizes`、`FileAlignment`等。 - PEloader的具体过程包括加载PE头和加载节。PE头的加载通常是通过简单的`memcpy`操作来实现的,而节的加载则涉及更复杂的逻辑处理。 #### 五、虚拟机脱壳的限制 尽管虚拟机脱壳技术具有很高的灵活性和强大的脱壳能力,但它也存在一定的局限性。例如,对于高度定制化的壳或者采用了非常规技术的壳,可能需要开发专门的模拟逻辑才能实现有效脱壳。此外,虚拟机脱壳的性能也是一个不容忽视的问题,因为模拟系统特性可能会消耗大量的计算资源。 #### 六、其他应用 除了在反病毒领域中的应用外,虚拟机脱壳技术还可以应用于软件逆向工程、漏洞挖掘等领域。通过对加壳程序的深入研究,可以揭示程序的真实意图,从而更好地保护计算机系统不受侵害。 病毒加壳原理及其脱壳技术是现代信息安全领域不可或缺的一部分。了解和掌握这些技术不仅有助于提高反病毒软件的效能,还能促进整个行业的技术进步。
- yoshikiend2013-05-172012上测试通过,但是在WP8的SDK的开发平台上无法使用
- charleswangchaoyu2014-12-31讲的理论很深,需要有一定基础才能看懂。感谢分享。
- 故国不堪回首明月中2013-02-03看完还是不懂 - -,可能我技术还太次了
- 粉丝: 3
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的报表管理系统.zip
- (源码)基于树莓派和TensorFlow Lite的智能厨具环境监测系统.zip
- (源码)基于OpenCV和Arduino的面部追踪系统.zip
- (源码)基于C++和ZeroMQ的分布式系统中间件.zip
- (源码)基于SSM框架的学生信息管理系统.zip
- (源码)基于PyTorch框架的智能视频分析系统.zip
- (源码)基于STM32F1的Sybertooth电机驱动系统.zip
- (源码)基于PxMATRIX库的嵌入式系统显示与配置管理.zip
- (源码)基于虚幻引擎的舞蹈艺术节目包装系统.zip
- (源码)基于Dubbo和Redis的用户中台系统.zip