書中的例子 https://practicalmalwareanalysis.com/
https://github.com/mikesiko/PracticalMalwareAnalysis-Labs
fakenet模擬網(wǎng)絡(luò)的工具 https://sourceforge.net/projects/fakenet/
1 使用反病毒引擎掃描
- VirusTotal https://www.virustotal.com/gui/
- VirScan https://www.virscan.org/language/zh-cn/
2 哈希值
winMD5.exe
計(jì)算文件的md5值,在線搜索
3 查找字符串
Strings.exe 下載頁面 https://docs.microsoft.com/zh-cn/sysinternals/downloads/strings
下載后解壓飘蚯,將exe放在C:\windows\system32下即可
Strings可查看PE文件中字符串,有助于推斷出惡意代碼的用途
4 加殼和混淆
加殼后的惡意程序打印的字符串很少
注意:加殼的惡意代碼至少會包含LoadLibary 和 GetProcAddress兩個(gè)API函數(shù) 乾巧,它們用來加載和使用其它函數(shù)功能
4.1 文件加殼
4.2 PEiD檢測加殼
UPX加殼工具 官網(wǎng)https://upx.github.io/
脫殼
upx.exe -d pefile
5 PE文件格式
PE portable File Format(可移植文件) dll exe
6 鏈接庫和函數(shù)
PE文件的導(dǎo)入表 其它文件的函數(shù) 鏈接在主函數(shù)中
6.1 鏈接分類
- 靜態(tài)鏈接: 將庫中的代碼復(fù)制到可執(zhí)行代碼中
- 運(yùn)行時(shí)鏈接:在程序運(yùn)行中械馆,需要時(shí)鏈接相應(yīng)的庫
通常會使用LoadLibrary和GetProcAddress兩個(gè)函數(shù),可訪問系統(tǒng)中任意庫中的任意函數(shù) 惡意代碼常用 - 動(dòng)態(tài)連接: 在程序被裝載入內(nèi)存時(shí),鏈接相應(yīng)的庫低飒,windows下最常用
PE頭中的導(dǎo)入表中存儲有引用的庫和函數(shù)信息
6.2 動(dòng)態(tài)鏈接庫
Dependency Walker http://www.dependencywalker.com/
windows API的命令規(guī)范
A ansi版本的api
W unicode版本的api
Ex 后面擴(kuò)展的api
如MessageBoxW MessageBoxA CreateWindowEx
6.3 導(dǎo)入函數(shù)
PE頭中包含文件使用的特定函數(shù)相關(guān)信息
6.4 導(dǎo)出函數(shù)
用來提供給其它程序使用的函數(shù)信息
7 靜態(tài)分析技術(shù)實(shí)踐
8 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文件格式可參考這個(gè) https://www.cnblogs.com/2f28/p/9800992.html
8.2 使用resourcehacker工具查看資源節(jié)
8.3 其它的PE工具
PEBrowse Pro
PE Explorer