反病毒引擎扫描
分析前,最好拿多个反病毒软件扫描下这个文件,帮助分析
哈希值
唯一标识,常用算法MD5算法,SHA-1算法
查找字符串
主要是文件访问的URL等,这些字符串通常是以ASCII或Unicode格式存储;分别每个字符使用1个字节和两个字节
加壳
也可以不脱壳直接操作,大多数还是先脱壳在分析;
PEID早以停止维护,但还是能用它看头文件;用exeinfoPE
PE文件格式
以上都是不考虑格式进行扫描的工具;
连接库与函数
分静态链接、运行时链接与动态链接;静态链接UNIX与Linux中常用,win不常用
使用Dependency Walker探索动态链接函数
命名约定
- 每当微软更新一个函数,且新函数与原函数不兼容时,微软会继续支持原来旧函数;这时新函数会与旧函数有相同的名字,并在后面加上Ex,更新两次的函数会加两个Ex后缀。
例如,CreateWindowEx - 以字符串作为参数的许多函数在他们的名字后面会包含一个A或W;例如CreateDirectoryW
沙箱
沙箱只报告基本功能,不告诉你它做了什么。
简单而粗糙,应该作为恶意代码分析的第一步,当有大量恶意代码需要分析时,沙箱是一个不错的选择。
沙箱只能简单地运行可执行程序,不能带有命令行选项,当然后门程序也不能,因为它需要一些控制命令才会启动特定行为,还有有些恶意代码被设置为等待一天才去执行,我们可能错过,因而大多数沙箱对sleep函数进行了挂钩,并设置为只进行很短的时间休眠,但我们还是要提防。还有沙箱模拟的环境可能也有问题,毕竟很多恶意代码都是针对某些操作系统的。
运行恶意代码
win中有一个rundll32.exe程序,它提供了一个运行DLL的平台。
语法格式
rundll32.exe DLLname, Export arguements
进程监视器(process monitor)
主要功能是监视进程,例如它创建了一个文件、修改了注册表等等。
要注意的是如果要监视的是开机自启的,我们需要使用进程监视器的启动选项,将其安装为一个自启动驱动。
进程浏览器(process explorer)
记忆:粉色-服务 蓝色-进程 绿色-新进程 红色-被终止进程
- 验证功能
验证的是磁盘上的镜像文件,而不是内存中的,但对于进程替换技术失效! - 比较字符串
用来识别进程替换 - 使用依赖遍历器
- 分析恶意文档
其它常用工具
Regshot
用来比较两个注册表的快照,来查看注册表的修改
ApateDNS
在本机上监视UDP的53端口,对用户指定的IP地址给出虚假的DNS响应(和DNS污染好像)
Netcat
TCP/IP协议栈瑞士军刀,可以用来支持端口扫描、隧道、代理、端口转发等的对内对外连接上;监听模式下充当服务器,连接模式下作为客户端
Wireshark
通吃几乎所有数据包
INetSim
提供模拟服务,基于linux,它努力伪装为一台真正的服务器,如果被扫描到,他会返回IIS网络服务器的标志(和蜜罐技术好像)