本节帮助读者入门windows上如何对恶意软件或病毒做初步分析。分析分两种,一种叫静态分析,也就是通过直接读取病毒或恶意程序的可执行文件来分析它的运行原理,一种是动态分析,也就是在病毒或恶意程序正在运行的情况下,监视其一举一动,通过观察它在系统中的运行情况来分析它的目的和原理。
本节介绍基本的静态分析方法,该方法简单易行,但作用有限,要想跟病毒或恶意程序斗智斗勇最终还得依赖于动态分析。静态分析的第一种方法就是直线读取病毒或恶意程序的可执行文件,从中抽取关键信息。很多病毒或恶意程序的作者为了快速实现其非法目的,在代码设计时往往粗制滥造,不会关心软件工程方面的问题,例如他们会将服务器ip,URL等重要信息以字符串的方式写在代码里,因此直接读取其可执行文件就能获取这些信息,我们看一个例子,使用VS编译如下一段非常简单的代码,然后生成exe可执行文件:
#incolude<iostram>
const char* p = "This is a String";
int main() {
std::cout<<"Hello World!";
}
注意到程序里有两个字符串,它们会直接存储在编译好的可执行文件里,在恶意软件或病毒程序中,这些字符串往往对应服务器ip或某些关键信息,直接从可执行文件中抽取出这些信息后就能得到