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