0x00 前言 本系列的文章是之前就写好的,断断续续的写了一部分。现在准备系统性的维护一下,也分享给各位对恶意代码感兴趣的坛友。
此外,感谢@梦幻的彼岸 大佬之前贡献的两个小节: 带伙伴们入手计算机病毒分析-第一天:https://bbs.pediy.com/thread-260444.htm 带伙伴们入手计算机病毒分析-第二天:https://bbs.pediy.com/thread-260642.htm
梦幻大佬的两篇文章已经将恶意代码(为了统一,之后的木马、病毒都在本文中都统称为恶意代码)的概念以及一些静态分析的技巧,包括PE结构这种已经讲得很清楚了。
我也就偷个懒,讲一些其他的内容。
在本文中,主要是讲一下恶意样本分析的过程中常用的一些软件~
0x01 虚拟机个人使用的虚拟机是VMware,常用的两个镜像是Win XP 和Win7 64。 虽然xp早就不是主流了,但是在分析样本的时候还是有一定的优势,这是因为Win7开始微软加入了ASLR也就是地址随机化的保护机制,使得在Win7下的程序每次加载,基地址都不同,从而导致调试器里面的地址和IDA中的不能很好的对应起来,所以既然目前大部分程序都还是可以在32位机器(xp)上跑,就选择相对来说好调试的一个环境了。
我使用的是吾爱破解论坛上的xp镜像,该镜像自带了大部分的工具: https://www.52pojie.cn/thread-661779-1-1.html 下载到本地之后,直接使用VMware打开解压出来的文件夹就可以使用。
想要干净的虚拟机镜像可以在MSDN上下载(最好下载英文版,因为有些样本对中文系统支持不是很好,后面可能会出现样本在中文系统上无法正常运行或者乱码的情况)。 https://msdn.itellyou.cn/
虚拟机下载完成之后,也可以直接下载吾爱破解工具包,这是一个别人打包好的工具箱,在逆向过程中会用到的大部分工具都可以在里面找到:https://www.52pojie.cn/thread-1004678-1-1.html
0x02 IDA个人使用的看雪的新版本IDA https://tool.pediy.com/index-detail-6.htm
(但是现在好像已经有高版本泄露版了 尽量选用不低于7.0版本的IDA,因为目前有很多插件都要求至少是IDA7.0)
IDA可以直接安装在真机(节约虚拟机内存)。毕竟IDA分析代码是纯静态的,不会运行代码,所以安装在真机即可。
关于IDA的用法和插件,会在后续的文章中进行介绍。
0x03 调试器调试器我在xp环境下使用的就是吾爱破解的工具包自带的那个 在Win7环境下使用的是x64dbg(有x32dbg支持32位程序调试),该工具是开源的,可以在github找到源码和release版本:https://github.com/x64dbg/x64dbg/releases
x64dbg免安装,下载之后直接可用。 根目录结构如下:
在release目录下可分别有32位和64位的可执行程序,进入到文件夹直接打开对应的exe文件就可以使用
论坛中也有很多优秀的关于x64dbg的使用教程: https://bbs.pediy.com/user-803227.htm
0x04 PE工具 PE查壳工具PEID 或 exeinfo 这些工具吾爱的xp虚拟机或者吾爱的破解工具包上都自带了,如果要单独下载到win7上的话: EXEINFO:https://bbs.pediy.com/thread-257082.htm
在大多数情况下,exeinfo和peid都被用来进行查壳。当然它们也可以用于查看PE文件的节区信息等。但如果想要查看详细的PE信息,一般情况下可以使用CFF Explorer ,也就是大家常说的"小辣椒"
和上面两个工具一样,CFF Explorer的使用也十分简单,只需要把待查看的PE文件拖动到CFF Explorer中即可:
下载链接: 原版下载: https://tool.pediy.com/index-detail-165.htm 坛友改进:https://bbs.pediy.com/thread-94129.htm
当然还有一些其他的比较优秀的工具,比如LoadPE 工具下载:https://bbs.pediy.com/thread-161746.htm 练习文章:https://bbs.pediy.com/thread-77120.htm
Stud_PE: v2.6.0.5 https://bbs.pediy.com/thread-125638.htm
编辑工具以前常用winhex,现在用010Editor 个人感觉010Editor比winhex更人性化。 我们在分析恶意样本的时候,首先需要确定样本的类型,根据不同类型的样本才选择不同的分析方法。 个人感觉最快的方法就是直接使用十六进制编辑工具查看一下文件头。 以010Editor为例,下面是32位的PE文件
64位的PE文件:
以doc格式的文档为例,对比一下03 07 13 三个版本的doc文档头部hex数据的区别。 office2003,97到03的office文件本质上来讲是OLE格式,也是二进制的文件,头部hex数据如下
office2007开始微软提出了一种新的文件格式为OpenXML(OOXML),所以07版本的头部hex数据如下:
可以看到07版本的office文件,本质上来讲可以理解为压缩包,hex头部可以看到压缩包的标志(PK)
office2013格式的文件,头部也和07相同,目前,OOXML就是主流的office格式。
此外,关于010,之前也有大佬在论坛发了010 Editor 模板开发教程 https://bbs.pediy.com/thread-257797.htm
0x05 网络分析工具虽然推荐是断网分析,但有时候恶意样本在运行的时候,会先鉴定是否可以连接互联网,如果不能连接互联网则停止运行,此时,要么选择找到判断互联网是否成功连接的地方,更改代码,使其正常运行,要么使用第三方工具,构建一个安全的虚拟网络。 fakenet就是这样一个工具:https://github.com/fireeye/flare-fakenet-ng fakenet可以在本地构建一个安全的虚拟网络,fakenet运行之后,本机的所有网络请求、流量将不会再发送到互联网,而是发送到fakenet中,并且fakenet还会根据请求模拟服务器返回对应的数据,从而达到欺骗的作用。
0x06 office个人安装了office2003 2007 2013 三个版本,安装之后,分别拍摄快照,个人常用的几个环境快照如下:
0x07 总结 总的来说,目前就想到这些。之后如果有其他的就在环境中完善即可。 之后如果遇到有些样本,需要用一些比较少见的工具,再进行详细的介绍。 记得安装好干净的分析环境后存快照~
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-8-6 10:27
被jux1a编辑
,原因: