恶意代码分析——动、静态分析基础技术

时间:2023-02-06 20:05:00

一、静态分析基础技术

1、可通过用软件计算恶意程序MD5值,然后检索该MD5值来获取信息并作为标签使用  【md5deep  winmd5】

2、通过检索恶意代码字符串获得相应的功能调用解释、功能行为及模块调用。当可检索字符串非常少时,有可能被加壳处理,(注意"LoadLibrary"和"GetProcAddress"两个字符串,它们是用来加载或调用其他函数功能的),此时需要用外壳检测工具进行检测、脱壳处理  【字符串检索:Strings  外壳检测:PEiD】

3、PE文件头中包含代码信息,恶意代应用程序类型,所需库函数与空间要求,非常有用。可通过工具检索其动态链接库(函数),然后再MSDN文档库中查找其功能。【动态链接(库)函数检索:Dependency Walker、  PEview、  PEBrowse Professional、PE Explorer】

4、查看可疑代码的的资源节来获得一部分可见的特征,如图标、菜单界面、代码版本等【Resource Hacker(可将嵌入文件提取出来)】


二、动态分析基础技术

1、配置“沙箱”环境,模拟真实执行结果【Norman沙箱、GFI沙箱、Joe沙箱、ThreatExpert、BitBlaze、Comodo恶意代码分析】(以GFI为例)
??***沙箱的缺点***
沙箱只能自动简单的运行可执行程序,对待需要提供命令行参数或需要特定条件的后门程序,将无法被启动和分析,可能无法得出测试结果,还有可能与操作系统,文件调用等因素有关联,导致不能完整的甚至准确的得到分析结果。

******************************

2、Dll类型文件的启动运行
windows命令行环境下用rundll32.exe程序调用,格式如下:
"rundll32.exe DllName,Export arguments"
*DllName:Dll文件名*
*Export:一个Dll文件导出函数表中的函数名或序号,通过工具查看【PEview、PE Exporer】

3、对运行起来的恶意代码,可以用一些系统监视类软件捕获其系统调用,从捕获的信息中就可以得到其对注册表,文件读写等一系列操作,便于进一步分析,【process monitor、process explorer、regshot】

4、必要的时候,需要从本机模拟出一个虚拟的网络应答来响应恶意代码的网络访问,监控其网络动态,从而了解网络相关特性【Apate Dns(检测恶意代码的域名访问)、netcat(网络监听)、wireshark嗅探器、INetSim(模拟网络服务,linux环境)】

基础分析技术主要是一些基础工具的应用,从最基本的字符串及基本行为分析入手,做最基础的行为分析概述,然后对行为梗概运用高级分析技术予以分析及验证,高级分析技术包括动态和静态分析两个方面,会在以后的总结中予以提出。