探索 RAM 內容

探索 RAM 內容

我正在使用一個雷迪斯資料庫並希望探索應用程式正在使用的 RAM 的內容。

我覺得解釋我為什麼要這樣做比我提出的問題更有意義。

Redis 是一個儲存二進位資料的簡單鍵值儲存。我認為這將是探索諸如編碼之類的事情的好地方,對我來說,做一些事情會很有趣,例如瀏覽 RAM 尋找二進位資料集,做一些事情,例如尋找簡單的模式;也許探索編寫一種在 RAM 中搜尋的嬰兒查詢語言的想法。

我是在閱讀了這一章後得到了這個想法SICP關於查詢語言。

有什麼想法從哪裡開始嗎?最初,我想向系統詢問「請給我運行該應用程式的地址空間」。

答案1

cat /proc/[pid]/maps根據 proc 手冊頁。

看起來像你想要的。如果您需要 pid,請從 ps 或任何其他工具取得它。

這解決了查找正在使用的位址空間的問題。去年 defcon 的一位研究員在 Linux 上實作了 createremotethread。所以你可以這樣做......然後以這種方式讀取任意記憶體。

歸功於普蘇西指出這pmap -x [pid]更容易閱讀。

答案2

您可以使用 gdb 存取進程的記憶體。

另外,您應該查看“/proc”檔案系統 - 它包含每個進程的偽檔案;其中一些可能包含有趣的訊息

答案3

使用調試器,這就是它們的用途。

如果你想自己推出,一切都會過去ptrace

您可以在 中查看進程的記憶體映射(記憶體內容表)/proc/$pid/maps並從中讀取整個記憶體內容/proc/$pid/mem。您無法正常開啟後一個文件,請參閱Linux下如何讀取/proc/$pid/mem?

相關內容