第1章 静态分析基础技术

书中的例子 https://practicalmalwareanalysis.com/

https://github.com/mikesiko/PracticalMalwareAnalysis-Labs

fakenet模拟网络的工具 https://sourceforge.net/projects/fakenet/

1 使用反病毒引擎扫描

2 哈希值

winMD5.exe
计算文件的md5值,在线搜索

3 查找字符串

Strings.exe 下载页面 https://docs.microsoft.com/zh-cn/sysinternals/downloads/strings
下载后解压,将exe放在C:\windows\system32下即可
Strings可查看PE文件中字符串,有助于推断出恶意代码的用途

4 加壳和混淆

加壳后的恶意程序打印的字符串很少
注意:加壳的恶意代码至少会包含LoadLibary 和 GetProcAddress两个API函数 ,它们用来加载和使用其它函数功能

4.1 文件加壳

加壳程序

4.2 PEiD检测加壳

UPX加壳工具 官网https://upx.github.io/
脱壳
upx.exe -d pefile

5 PE文件格式

PE portable File Format(可移植文件) dll exe

6 链接库和函数

PE文件的导入表 其它文件的函数 链接在主函数中

6.1 链接分类

  • 静态链接: 将库中的代码复制到可执行代码中
  • 运行时链接:在程序运行中,需要时链接相应的库
    通常会使用LoadLibrary和GetProcAddress两个函数,可访问系统中任意库中的任意函数 恶意代码常用
  • 动态连接: 在程序被装载入内存时,链接相应的库,windows下最常用
    PE头中的导入表中存储有引用的库和函数信息

6.2 动态链接库

Dependency Walker http://www.dependencywalker.com/

常见的DLL

windows API的命令规范
A ansi版本的api
W unicode版本的api
Ex 后面扩展的api
如MessageBoxW MessageBoxA CreateWindowEx

6.3 导入函数

PE头中包含文件使用的特定函数相关信息

6.4 导出函数

用来提供给其它程序使用的函数信息

7 静态分析技术实践

8 PE文件头

PE节

使用python 解析PE文件, https://blog.csdn.net/bagboy_taobao_com/article/details/14168597
#-*- coding:utf-8 -*-
import pefile,sys
#输出文件的PE头部信息
print(pefile.PE(sys.argv[1]))
PE文件格式

PE文件格式可参考这个 https://www.cnblogs.com/2f28/p/9800992.html

8.2 使用resourcehacker工具查看资源节

8.3 其它的PE工具

PEBrowse Pro
PE Explorer

8.4 PE文件头

image.png

Guess you like

Origin blog.csdn.net/a854596855/article/details/114920023