14.1.5 恶意代码分析技术

2025-06-17 19:48:22 更新

(一)静态分析方法


技术

说明

1

反恶意代码软件检查

特征代码法、校验和法、行为监测法、软件模拟法

利用反恶意代码软件分析恶意代码信息

2

字符串分析

寻找文件中使用的ASCII或其他方法编码的连续字符串

①恶意代码名字;

②帮助和命令行选项;

③用户对话框;

④后门密码;

⑤相关网址;

⑥作者或攻击者E-mail;

⑦用到的库、函数调用及可执行文件;

⑧其他有用信息

3

脚本分析

通过文本编辑器打开JS、Perl或shell等脚本语言

4

静态反编译分析

采用反编译工具查看携带解释器的恶意代码源代码

5

静态反汇编分析

线性遍历算法

GNU程序objdump和链接优化工具从输入程序入口点开始反汇编,简单遍历程序整个代码区,反汇编每一条指令。但不能处理嵌入指令流中的数据问题,如跳转表

递归遍历算法

试图用反汇编出来的控制流指令指导反汇编过程,解决线性遍历问题。很多二进制传输和优化系统采用这种方法

缺点:很难正确判定间接控制转移的可能目标。被反汇编后就可用控制流分析来构造流程图。不正确的流程图会使静态分析过程得到错误结果

(二)动态分析方法


技术

说明

备注

1

文件监测

大部分恶意代码依赖读写(改、添、嵌、删、存储时间戳)文件系统;极少数纯依赖内存

文件监测程序:FileMon

文件完整性监测:Tripwire、AIDE等

2

进程监测

恶意代码需要生成新进程或盗用系统进程合法权限

进程监测工具:Process Explorer(强过Windows内嵌工具)

3

网络活动监测

恶意代码大部分依赖网络传染

网络嗅探器捕获恶意代码数据包

4

注册表监测

注册表:包含系统和大多数应用程序配置的层次数据库

恶意代码运行时,通常会去改变注册表配置

监测软件:Regmon(实时显示读写注册表项全部动作)

5

动态反汇编分析

在恶意代码执行过程中对其进行监测和分析

基本思想:将恶意代码运行控制权交给动态调试工具。监测过程从代码入口点处开始,控制权在程序代码与调试工具之间来回传递,直到程序执行完毕。能得到正确反汇编代码,但只对实际执行部分有效

同内存调试

调试工具与被分析恶意代码程序加载到相同地址空间

优点:实现代价相对较低,控制权转交到调试工具或从调试工具转回恶意代码程序的实现,相对较简单

缺点:需要改变被分析程序地址

仿真调试

(虚拟调试)

调试工具与被分析恶意代码程序处于不同地址空间,可绕过很多传统动态反跟踪类技术

优点:无需修改目标程序地址,但进程间控制权的转移代价较高

(三)常用脚本语言


脚本语言

文件特征

后缀

1

Bourne Shell

以!#/bin/sh开始

.sh

2

Perl

以!#/usr/bin/perl开始

.pl

.perl

3

Javascript

<script language="javascript">形式

.js

.html

.htm

4

VBScript

含单词VBScript或文件中散布字符vb

.vbs

.html

.htm

(四)反编译工具


工具

平台

概述

1

Reverse Engineering Compiler(REC) by Giampiero Caprino

SunOS

Linux

Windows

在多平台下将面向 x86、SPARC、68k、PowerPC和MIPS等多种体协结构处理器代码逆向编译成C代码

2

Dcc by Cristina Cifuentes

运行UNIX上

分析exe文件

将 Windows 面向x86 体协结构程序逆向编译成C代码

3

JReversePro

Java编写

JVM上运行

将 Java 字节代码逆向编译成 Java源代码

4

HomeBrew Decompiler

UNIX系统

逆向编译Java字节代码

(五)网络监测工具


工具

平台

说明

1

TCPView

Linux

Windows

查看端口和线程

2

Fport

Windows

查看本机开放端口,以及端口和进程对应关系

3

Nmap


Linux

Windows

开源扫描工具,用于系统管理员查看大型网络下主机,以及其上运行服务,支持多种协议扫描

4

Nessus

Linux

Windows

经典安全评估软件,功能强大且更新快,采用C/S模式,服务器端负责安全检查,客户端配置管理服务器端

(六)Windows平台调试工具


调试工具

概述

1

OllyDbg

免费调试器,图形界面,功能强大

2

IDA Pro

调试器和代码分析工具,简化版本免费使用

3

SoftICE

商业软件,提供优秀调试功能和GUI界面。支持源代码和二进制调试