/dev/memにアクセスすると、Ubuntuはフリーズします。

/dev/memにアクセスすると、Ubuntuはフリーズします。

私はカスタムカーネル(4.2.0-36-generic)と一緒に最新のUbuntu Linuxを使用していますCONFIG_STRICT_DEVNEM

ただし、以下を使用する場合:

  • dd if=/dev/mem画面に印刷し、
  • dd if=/dev/mem of=/home/user/Documents/file.dumpファイルとして保存する
  • dd if=/dev/mem | hexdump -C | grep 'term'私が欲しいものを自分で見つけてください。

このプロセス中にシステムがハングして再起動します。

確認してみると、df -hディスクに空き容量が十分です。また、8Gb RAMで2.1Gbを2.5Gbに書き込んだ後、プロセスは常に4で始まるアドレスに達する前に停止します(違いがある場合)。また、凍結前の確認は/var/log/syslog関連情報なしで表示されます。/var/log/kern.log

また、パラメータを使用するとbs=1G count=2最初の2 GBのメモリを正常にコピーしましたが、bs=1G count=2 skip=2次の2 GBを再インポートしようとするとシステムがハングします。

メモリ全体をダンプするためのソリューション、またはメモリから直接用語を検索する別の方法を提案してください。

ベストアンサー1

PCI / ACPIまたは一部のハードウェアで使用されている一部のメモリ領域を実行している可能性があると思います。アクセスを望まないメモリマッピングデバイスがある可能性があります。どのアドレスが問題を引き起こしているのか正確にはわかりませんが、一部の特殊領域は通常4GBの制限に属します。

4 GB RAM を搭載したシステムでは、カーネルは起動時に以下を印刷します。

BIOS-e820: 0000000000000000 - 000000000009e400 (usable)
BIOS-e820: 000000000009e400 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cf690000 (usable)
BIOS-e820: 00000000cf690000 - 00000000cf6e0000 (reserved)
BIOS-e820: 00000000cf6e0000 - 00000000cf6e3000 (ACPI NVS)
BIOS-e820: 00000000cf6e3000 - 00000000cf6f0000 (ACPI data)
BIOS-e820: 00000000cf6f0000 - 00000000cf700000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000130000000 (usable)

利用可能なメモリの一部が4 GBの制限を超え、その間に0x100000000脆弱性があるようです。0xcf7000000xfec00000

「使用可能な」メモリに対応する領域も/proc/iomem「システムRAM」というラベルで表示されます。 (ファイルには他のメモリ領域に関する情報も含まれています。)これらの領域からのみ読み取る方が安全です。

$ grep "System RAM" /proc/iomem 
00001000-0009e3ff : System RAM
00100000-cf68ffff : System RAM
100000000-12fffffff : System RAM

おすすめ記事