1.內存轉儲,內存轉儲(Memory Dump)是將計算機的物理內存(RAM)內容復制到一個文件中的過程,這個文件通常被稱為“內存轉儲文件”或“核心轉儲文件”(Core Dump),內存轉儲的主要目的是為了調試和分析程序崩潰,系統故障或其他異常情況,通過分析轉儲文件,開發人員和系統管理員可疑了解在發生問題時系統的狀態,包括進程的運行狀態、變量的值、調用棧等信息
場景:安全分析,故障排除,調試軟件錯誤,性能優化
類型:
? ? ? ? 完全內存轉儲:包含整個物理內存的內容,包括操作系統的內核,所有正在運行的進程及其數據,這種類型的轉儲文件非常大,但是提供了最 完整的系統狀態信息,適用于了解系統的狀態情況
? ? ? ? 小型內存轉儲:僅包含導致崩潰的線程上下文信息,調用棧、模塊列表等關鍵信息、相比完全內存轉儲,小型內存轉儲文件較小,但仍然足夠用于大多數調試目的
? ? ? ? 內核內存轉儲:包含操作系統內核和所有加載的驅動程序狀態,但不包含用戶模式下的應用程序數據,這種類型的轉儲文件比完全內存轉儲小,但仍能提供足夠的信息來分析系統級別的問題
? ? ? ? 活動內存轉儲:專門針對某個特定進程,記錄該進程在某一時刻的所有內存內容,包括其代碼、數據段、堆棧等,這對于調試單個應用程序的問題非常有用
windows系統下如何轉儲內存
*****任務管理器*****
*簡介:
? ? ? ? 任務管理器是Windows系統自帶的工具,用于提供有關計算機性能的信息,并且顯示計算機上所運行的程序和進程詳細信息
*使用方式:
? ? ? ? CTRL+SHIFT+ESC
?*環境限制:
? ? ? ? 只適用于windows系統,是windows系統自帶的工具
轉儲方式:
? ? ? ? 選定可疑進程----右鍵----創建轉儲文件即可
保存的路徑為C:\Users\用戶\AppData\Local\Temp\進程名.DMP
*****ProcessEsplorer******
*簡介:
????????windows系統與應用監控的工具,結合了文件監視和注冊表監視兩個工具的功能,此工具還支持64位的windows系統,可以理解為增強版的任務管理器,轉儲方法和任務管理器類似
下載地址:Process Explorer - Sysinternals | Microsoft Learn
環境限制:只可以在windows系統下使用
轉儲進程的方式:
? ? ? ? ? ? ? ?以管理員身份打開proexp.exe
?
選中可疑進程,右鍵-Create Dump--Create Full Dump
然后選擇保存的位置即可
****Procdump****
? ?簡介:
????????ProcDump 是一種命令行實用程序,其主要目的是監控 CPU 峰值的應用程序,并在峰值期間生成崩潰轉儲,管理員或開發人員可以用它來確定峰值的原因。ProcDump 還包括掛窗監控(使用 Windows 和任務管理器使用的窗口掛起的相同定義)、未處理的異常監控,并可以根據系統性能計數器的值生成轉儲。它也可以作為一個一般過程轉儲實用程序,你可以嵌入到其他腳本。?使用需提前知道目標進程的PID號(該工具存在Linux版本,Linux系統下使用方式見后文。)
◆ 下載地址
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
◆ 環境限制
系統環境限制:Windows/Linux
PID可在命令行中輸入tasklist查詢所有進程,也可在任務管理器中查看
形式1:圖形化
命令行執行procdump.exe應用程序,第一次運行需要同意用戶協議
使用該工具需要同意用戶協議后才可以正常使用
目標轉儲進程名為:shell.exe,PID號為:2380的進程內存,內存轉儲文件默認存儲位置與procdump.exe處于同一目錄
所用到的參數:-ma dump指定進程的所有內存信息
.\procdump.exe -ma 2380?
形式2:命令行
本次實驗環境為msf回彈shell,命令行下同意用戶協議需要加參數-accepteula(同樣第一次使用同意)
下圖為同意用戶終端協議
同意用戶協議后可正常使用,使用方式同圖形化使用方式:procdump.exe -ma 2380
內存鏡像
#DumpIt#--windows內存鏡像導出
簡介:
利用Dumplt可以將一個系統的完整內存鏡像dump下來,dumplt制作的內存鏡像(raw文件)與系統內存接近。
◆ 下載地址
https://www.downloadcrew.com/article/23854-dumpit
環境限制
僅可在Windows系統下運行
◆ 使用Dumplt制作系統內存鏡像
雙擊Dumplt.exe運行,輸入y并回車。開始制作系統內存鏡像。
回顯seccess為制作成功,默認存儲路徑與Dumplt.exe文件處于同一路徑,獲取到整個系統內存文件后,可導入volatility工具進行內存取證分析
linux系統下如何轉儲內存
進程內存轉儲
#ProcDump-for-Linux#
◆?簡介
ProcDump linux版功能與windows版基本相同,使用方式有所變化
◆ 下載地址
https://github.com/Sysinternals/ProcDump-for-Linux
◆?環境限制
僅Linux系統下使用,開發者給出了rpm包和deb包
開發者給出的可運行環境:
·?Red Hat Enterprise Linux / CentOS 7
·?Fedora 29
·?Ubuntu 16.04 LTS
所支持的Linux發行版下安裝方式
https://github.com/Sysinternals/ProcDump-for-Linux/blob/master/INSTALL.md
◆ ProcDump-for-Linux使用方式
1. rpm -Uvh
rpm -Uvh
https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
2. yum install procdump
輸入procdump檢查是否安裝成功
查看上面procdump給出的參數詳情來看,指定PID號需要加參數-p
或者使用-w指定進程名來進行dump
內存鏡像
#Linux Memory Grabbe#
◆? 簡介
Linux Memory Grabber一個用于轉儲Linux內存并創建Volatility(TM)配置文件的腳本。
◆ 下載地址
https://github.com/halpomeranz/lmg/
◆?環境限制
僅在Linux系統下使用
◆?安裝步驟
該工具可以安裝到U盤中,安裝方式:
https://github.com/halpomeranz/lmg/blob/master/INSTALL
◆ 前期準備
Lmg: ?https://github.com/halpomeranz/lmg/ 腳本主程序
avml:https://github.com/microsoft/avml(可直接下載二進制文件) Linux的便攜式內存采集工具
LiME:??https://github.com/504ensicsLabs/LiME
下載來的所有文件必須處于同一文件夾
◆ 安裝過程
新建目錄Linux_Memory_Grabber
將需要用到的文件復制到新鍵的目錄中
Cp lmg/lmg?Linux_Memory_Grabber/
修改avml二進制文件名
mv avml avml-$(uname -m)
mv avml-convert avml-convert-$(uname -m)
添加執行權限
chmod +x avml-convert-x86_64 avml-x86_64
進入到LiME/src目錄
Cd?LiME/src
Patch < ../../../lmg/lime-Makefile.patch
#?Centos7下patch 命令使用yum -y install patch安裝即可
到這里即安裝完成,可以使用二進制文件lmg來轉儲Linux系統內存,該項目地址中還可以配置Volatility進行聯動。
#使用lmg轉儲linux內存鏡像#
./lmg -y
轉儲成功,保存路徑在當前目錄下capture文件下
.lime為后綴的文件為系統內存轉儲文件,可用與導入Volatility進行內存分析。
部分內容源自互聯網公開資料整理