RAMコンテンツのナビゲーション

RAMコンテンツのナビゲーション

レディスデータベースを使用しており、アプリケーションで使用されているRAMの内容を参照しようとしています。

私が質問するよりも、なぜこれを行うのかを説明する方が意味があると思います。

Redisは、バイナリデータを格納する単純なKey-Valueストアです。私はここがコーディングのようなものを探索するのに良い場所だと思いました。単純なパターンを見つけるのと同じことをするのも楽しいでしょう。 RAMから検索するためのベビークエリ言語。

この章を読んでから、このような気がしました。SICPクエリ言語について。

どこから始めるべきアイデアはありますか?最初、私はシステムに「このアプリケーションを実行するアドレス空間を教えてください」と尋ねたかったのです。

答え1

cat /proc/[pid]/mapsprocのマニュアルページによると。

あなたが望むようです。 pidが必要な場合は、psまたは他のツールからインポートしてください。

これは、使用中のアドレス空間を見つける問題を解決します。昨年、defconの研究者はLinuxでcreateremotethreadを実装しました。したがって、これを行うことができます...その後、この方法で任意のメモリを読み取ることができます。

~に帰属プシュ市pmap -x [pid]これが読みやすくなることを指摘してください。

答え2

gdbを使用してプロセスのメモリにアクセスできます。

また、「/proc」ファイルシステムを調べる必要があります。これには各プロセスの疑似ファイルが含まれており、その一部には興味深い情報が含まれている場合があります。

答え3

デバッガを使用してください。それがまさにデバッガの目的です。

自分で始めたいなら全てが消えるptrace

プロセスのメモリマップ(メモリ内容テーブル)を表示し、/proc/$pid/mapsここから完全なメモリ内容を読み取ることができます/proc/$pid/mem。後者のファイルは正常に開くことができません。Linuxで/proc/$pid/memを読む方法は?

関連情報