🧂 前言
標題是我在剛接觸到這個技巧時的心聲
今天要分享的是在做記憶體分析時其實是有機會可以把 Evtx 抓出來看的,獲得更多的線索,因為 Windows 常常會記錄事件到Evtx中
🍘 仙貝工具
Volatility
下載連結:
Volatility 2 : https://github.com/volatilityfoundation/volatility
Volatility 3 : https://github.com/volatilityfoundation/volatility3
經典的記憶體分析工具,利用指令可以分析 memory dump 中的關鍵訊息,像是進程、網路連線、檔案……等等。
基本的操作這邊推薦可以直接上網查有人整理好的指令doc
而Volatility分為2與3版,差別就是一個是要使用 python2 執行,另一個是用 python3 執行,並且現在Volatility 2 已經沒有在維護了,但是一些 Plugin 的完整度在目前為止還是比 Volatility 3 還要高並且更豐富,所以有些人還是會比較會偏向使用 Volatility 2 ,這次會給兩個版本的Volatility工具指令給大家參考
Eric Zimmerman’s Tools
下載連結:https://ericzimmerman.github.io/#!index.md
這是由Eric Zimmerman鑑識專家開發出的其中一個工具,他在網站中也有多出很多其他非常好用的數位鑑識工具可以使用,而這次會使用 Evtxcmd 的功能是他可以將evtx 換成CSV檔案以及Timeline Explorer 工具,可以查看CSV檔,
Dump 出 Evtx 檔案
我們可以先檢查我們的memory 檔中有沒有確定有evtx檔
Volatility 2
1 | vol.py -f ./memory.dmp --profile=Win10x64_14393 -g 0xf8004a000b20 filescan | grep '.evtx' |
Volatility 3
1 | vol -f memory.dmp windows.filescan | grep '.evtx' |

我們可以利用 FileScan 的 pugin 幫助我們檢查是否有我們想要的檔案,圖片中可以得知到說確實有,接下來就可以將他們dump下來,Volatility 2 以及Volatility 3 的 Dumpfile 支援 regex ,可以使用它幫助我們找到所有我們需要的 evtx
Volatility 2
1 | vol.py -f ./memory.dmp --profile=Win10x64_14393 -g 0xf8004a000b20 dumpfiles --regex .evtx$ --ignore-case --dump-dir output |
Volatility 3
1 | vol -f memory.dmp windows.dumpfiles.DumpFiles --filter .evtx$ |
這個指令簡單來說就是從memory.dump 中 將結尾為.evtx的檔案全部抓出來,也可以指定看你想要看什麼evtx,再去更改regex即可。
假設我想要dump Security.evtx下來看
Volatility 2
1 | vol.py -f ./memory.dmp --profile=Win10x64_14393 -g 0xf8004a000b20 --regex Security.evtx$ --ignore-case --dump-dir output |
Volatility 3
1 | vol -f memory.dmp windows.dumpfiles.DumpFiles --filter Security.evtx$ |

圖片中發現成功Dump出來東西了,但是怎麼會有兩個檔案,而且這兩個檔案一個是 vacb ,一個是 dat,跟 evtx 的關係不是說沒有感覺是一點關係都沒有,那什麼是 vacb,什麼是 dat ?
- vacb : Caching Data
- dat : Less Fragile File
簡單來說這兩個都儲存了 evtx 的資料,只是 dat 的儲存方式比較穩定可靠
因此其實也可以直接把 vacb 或 dat 副檔名直接改成 evtx ,就可以直接用內建的 Event viewer 查看

但另外其實也可以用Evtxcmd 將它變成 CSV 檔查看
Evtxcmd- Evtx to CSV
根據 https://github.com/EricZimmerman/evtx?tab=readme-ov-file 官方給的使用說明,可以使用以下指令將我們的 evtx 轉換成 csv
1 | .\EvtxECmd.exe -f "..\..\file.0xca82b31c5990.0xca82b3848c70.SharedCacheMap.Security.evtx.vacb" --csv ./ |
接下來就可以獲得一個csv檔,並且裡面的內容是evtx的內容
1 | PS C:\Users\yunshiuan\Desktop\net9\EvtxeCmd > .\EvtxECmd.exe -f "..\..\file.0xca82b31c5990.0xca82b3848c70.SharedCacheMap.Security.evtx.vacb" --csv ./ |
之後就可以用Timeline Explorer 或其他可以開 csv 的軟體去做想要的Event ID查詢或者字串的搜尋。

🤔 有更方便的做法?
有!有一個工具叫做 [Rstudio](https://www.r-studio.com/Forensic-and-DataRecovery-Business.html),他有GUI的頁面可以分析 Memory 檔並且可以非常方便地將檔案 dump 出來

但是,如果你想要將他 dump 出來,免費版大小只能1024KB,基本的 Evtx 的大小都沒辦法復原

付費有許多方案,有一次付清的跟年繳的,這邊就就給大家參考

📚 參考資料
https://github.com/EricZimmerman/evtx?tab=readme-ov-file
https://medium.com/ouspg/digging-into-the-vortex-of-unknown-memory-dump-part-1-x-aaa6e0ee81d3