
私はカスタムカーネル(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
脆弱性があるようです。0xcf700000
0xfec00000
「使用可能な」メモリに対応する領域も/proc/iomem
「システムRAM」というラベルで表示されます。 (ファイルには他のメモリ領域に関する情報も含まれています。)これらの領域からのみ読み取る方が安全です。
$ grep "System RAM" /proc/iomem
00001000-0009e3ff : System RAM
00100000-cf68ffff : System RAM
100000000-12fffffff : System RAM