RAMメモリの内容を表示する方法は?[閉まっている]


14

RAMメモリの内容を表示する方法はありますか?最初のバイトから最後のバイトまで。OSとその上で実行されているすべてのプロセスがRAMのどこにあるかを確認したいと思います。これは可能ですか?


1
保護されたメモリ環境のユーザープロセスでは、ユーザーの仮想メモリスペースのコピーにのみアクセスできます。カーネルメモリスペース、他のユーザーの仮想メモリスペース、未使用の物理メモリはすべて、覗き見から保護されています。一方、仮想メモリマッピングを知らない限り、物理SDRAMのランダムな時間スナップショットはあまり意味がありません。
おがくず

ランダムアクセスメモリメモリ?それでは、ページ割り当てテーブル?
ta.speot.is

正確に何を達成しようとしていますか? meta.stackexchange.com/questions/66377/what-is-the-xy-problem
bwDraco

メモリをどのように割り当てるかを示すツールを使用すると、実際に1と0を確認するよりもはるかに幸せになるでしょう。
ダニエルRヒックス

1
好奇心からちょうど
12

回答:


8

SoftICE for Windowsのような「生の」メモリアクセスを可能にするカーネルデバッガを使用できますLinuxカーネルのデバッガーとして動作するようにGDBを構成することもできます。仮想マシンがオプションである場合、一部の仮想化ソフトウェアは、マシンの状態(RAMを含む)をディスクに保存することをサポートしており、これをさらに分析できます。ただし、ほとんどの「最新の」オペレーティングシステムはアドレス空間レイアウトランダム化(ASLR)を使用していることに注意してください。システムの真の物理メモリマップは、さまざまなセキュリティの問題や悪用(スタック / ヒープバッファのオーバーフロー)を軽減するために意図的に断片化されています。

ただし、最新のオペレーティングシステムで実行されている特定のプログラムでは、適切なデバッグシンボルとデバッガーがあれば、特定のプロセス/スレッドの論理メモリマップを取得できます。全体的なビューが必要な場合、ソフトウェア/ハードウェアが仮想メモリを使用していると、状況は劇的に複雑になります。あなたは文字通り何したい場合は、再度しかし、単に RAM上で、最初の段落を参照してください。


9

Windowsでは、オブジェクトマネージャーの\Device\PhysicalMemoryオブジェクトを介して物理メモリのコンテンツにアクセスできます。これには、システムへのカーネルレベルのアクセスが必要です。つまり、このオブジェクトにアクセスするには、おそらくカーネルモードドライバーであるプログラムをインストールする必要があります。

Linuxでは、物理メモリの内容を直接読み取ることによって、バイナリデータとしてアクセスすることができる/dev/memようにroot/ dev / memとはをご覧くださいmem(4)詳細についてはmanページをご覧ください。

オペレーティングシステムとプロセスが物理メモリのどこにあるのかを判断する必要がある理由はわかりませんが...


3
Windowsでは、RAMMapおよびPhysMemユーティリティが行うように、実際に開くことができます\Device\PhysicalMemory(と同等/dev/kmem)。
user1686

1
もう違います。Server 2003およびそれ以降のすべてのバージョンでは\DevicePhysicalMemory、ユーザーモードからオブジェクトを開くことはできません。RAMmapおよび他のほとんどのsysinternalsツールには、作業の一部を実行するカーネルモードドライバーが含まれています。
ジェイミーハンラハン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.