何らかのプロセスによって読み取られた後、ファイルのどの部分が物理RAMに残っているかを知る方法はありますか

StackOverflow https://stackoverflow.com/questions/807124

質問

ファイルを読み取るプログラムを使用し、プログラムが終了したとしましょう。さて、 ファイルの一部がまだ物理RAMに残っている可能性が高いです(私は膨大な量のRAMがあると仮定します)。

ファイルのどの部分が物理RAMにあるかを知る方法はありますか?それを行うことができるツールやwinapi関数呼び出しはありますか?

役に立ちましたか?

解決

覚えておくべきいくつかのポイント:

  1. 物理RAMに直接アクセスすることはありません。 OSはRAMの抽象化を提供します。物理RAM、またはハードディスク上のページメモリである可能性があります。決して知ることはできません。
  2. RAMの一部(物理的またはその他)に一部のビットが隠されている場合でも、OSはそのメモリブロックを(すでに使用されていない限り)空きとして認識します。どういうわけかOSをハッキングせずにアクセスできるとは思いません。

コメントに関する私のポイントを明確にしましょう:

ファイルを開いて、RAMに読み込み、ファイルを処理し、ファイルを閉じて、プログラムが終了したと仮定しましょう。まず、使用したRAMの一部が使用されなくなり、OSによって無料であると見なされることに全員が同意すると思います。何らかのRAMを必要とする別のプログラムがそのメモリブロックを受け取る可能性があることを意味します。したがって、まず、そのメモリブロックにはもう何も存在しません。空っぽです。 OSの自由裁量で使用できます。

現在、ランダムなデータの一部がぶら下がっていても(物理的かそうでないかを知る方法がないことを思い出してください)、それらに直接アクセスすることはできません。

これが明確になることを願っています。

他のヒント

Windowsについて話している場合、コンテンツはWindowsファイルキャッシュにあります。

現在、Windowsファイルキャッシュを読み取るツール/ APIはありません。

ただし、物理ファイルのすべての内容は、CreateFile( '\\。\ PhysicalMemory')などの特別な名前または\ Device \ PhysicalMemoryという名前で読み取ることができます。 (注:XP / 2000でのみ動作します)

>現在、Windowsファイルキャッシュを読み取るツール/ APIはありません。

もちろん、api(Win32 st)もあります!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top