本节我们结合前面的知识点,通过动手实践来分析一个”恶意“程序。这次我们使用的例子具有极强的动手实践性,它也非常能代表恶意程序入侵系统的很多流程步骤,跟着做下来你一定收获颇多。
首先我们需要获得要分析的程序对象,其下载地址为:
链接: https://pan.baidu.com/s/1ygGvONkmdeD7d9YJ9plajw 密码: w855
通过上面链接下载相应文件后上传到Linux系统上,我们就可以开始分析流程。首先你会发现它是一个没有后缀的二进制文件,所以我们无法通过后缀来判断文件类型或内容,其实不管后缀如何,我们都不能仅仅通过后缀来识别文件类型,因为病毒作者很容易通过修改后缀来隐藏真正的文件类型。
因此面对这种没有后缀的二进制文件,我们首先要做的是搞清楚它是什么文件。最常用的方法是读取文件开头一定数量的数据,然后检验这些数据是否满足特定文件的格式,例如ELF文件头64字节是ELF头,是一种固定格式的二进制数据,特别是如果我们读取前64字节后发现它包含ELF对应的magic number部分,那么就能有信心的肯定其是ELF类型的可执行文件。
因此我们需要先读取其开头一部分数据看看数据是否遵守一定的二进制规范。在Linux上的命令行工具file能满足我们的需求,于是我们使用如下命令读取文件开始的一部分数据:
···
file payload
···
执行后所得结果如为:payload: ASCII text,这表明文件的内容包含ascii字符,因此可以直接打印出来,于是我们使用head来输出其头部的一部分数据:
head payload!