第1章-静态分析

时间:2021-11-15 10:04:40

1.1 反病毒引擎扫描

VirusTotal:http://www.virustotal.com

VirSCAN:http://www.virscan.org

1.2 哈希值:恶意代码的指纹

MD5计算软件:md5deep、WinMD5

1.3 查找字符串

编码:ASCLL(单字节)、Unicode(双字节)

1.4 加壳与混淆恶意代码

Tips:加壳程序至少包含LoadLibrary和GetProcAddress函数,他们用来加载和使用其他函数

1.4.1 文件加壳:加壳过程源程序被压缩

1.4.2 使用PEiD检测加壳:PEiD、脱壳程序

1.5 PE文件格式

PE文件格式(一种数据结构):是Windows可执行文件、对象代码和DLL所使用的标准文件格式。

1.6 链接库与函数

1.6.1 链接类型

静态链接:复制代码库至意代码程序,难以区分代码库与自身代码。
运行时链接:当恶意代码需要使用其函数才链接到库。
动态链接:当启动恶意代码时就链接到库

1.6.2 使用Dependency Walker工具探索动态链接函数

Dependency Walker工具:http://www.depencywalker.com

第1章-静态分析

Tips:常见的DLL程序:

1.Kernel32.dll:包含核心系统功能,如访问和操作内存、文件和硬件等

2.Advapi32.dll:这个DLL提供了对核心Windows组件的访问,比如服务器管理器和注册表

3.User32.dll:包含所有用户界面组件、如按钮和滚动条以及控制和响应用户操作的组件

4.Gdi32.dll:包含了图形显示和操作的函数

5.Ntdll.dl:Windows内核的接口。可执行文件通常不导入这个函数,由Kernel32.dll间接导入

6.Wsock32.dll和Ws2_32.dll:联网DLL

7.Wininet.dll:包含了更高网络层次的网络函数,实现了FTP\HTTP\NTP等协议

8.函数的命名约定:Ex后缀代表扩展/接受参数A(ASCLL)或W(宽字节)结尾函数

1.6.3 导入函数

MSDN库:https://msdn.microsoft.com/library

1.6.4 导出函数

第1章-静态分析

1.7 静态分析技术实战-案例

1.7.1 Potentialkeylogger.exe:一个未加壳的可执行文件

SetWindowsHookEx函数:间谍软件常用函数

RegisterHotKey函数:注册热键

Advapi32.dll:注册表使用

1.7.2 PackedProgram.exe:恶意程序加壳

1.8 PE文件头与分节

.text:.text截包含了CPU执行指令,唯一可执行节和代码节。

.rdata:.rdata节通常包含导入与导出函数信息,与Dependency Walker 和PEview工具所获得的信息是相同的。

.data:.data节包含了程序的全局数据,可以从程序的任何地方访问到。

.rsrc:.rsrc节包含由可执行文件所使用的资源,而这些资源不是可执行的。

1.8.1 使用PEview来分析PE文件

第1章-静态分析

第1章-静态分析

Tips:通过两者的比较可以有效的判断加壳情况

1.8.2 使用Resource Hacker 工具查看资源节

第1章-静态分析

1.8.3 使用其他PE文件工具

1.PEBrowse Professional

2.PE Explorer

1.8.4 PE文件头概述

1.导入函数:恶意代码使用了那些库中的函数

2.导出函数:恶意代码期望被其他程序或库调用的函数

3.时间戳:程序在什么时候被编译的

4.分节:文件分节的名称,以及他们在磁盘与内存中的大小

5.子系统:指程序是一个命令行还是图形界面

6.资源:字符串、图标、菜单项和文件中包含的其他信息

1.9 小结:简单的掌握工具的使用方式和情景

1.10 实验:另附文章