問題の 1 つは、メモリが存在する物理アドレスではなく、仮想アドレスを取得していることです。次回起動するとき、マッピングはおそらく同じではありません。
これは Linux のカーネル モジュール内で確実に実行できますが、ユーザー空間で使用できる API はないと思います。
許可がある場合 (このマシンを再起動する場合は、このマシンの root になることができると思います)、/dev/mem を覗いて実際の物理レイアウトを確認できます。おそらく、値をサンプリングして再起動し、それらの値のうちいくつが保持されているかを確認する必要があります。
コールド ブート攻撃が実証されている同様のプロジェクトがあります。ソースコードが利用可能です。そこからインスピレーションを得ることができるかもしれません.
ただし、AFAIRは最初にOSをロードせずにメモリを読み取るため、OSのメモリ保護をいじる必要はありません。ブート後に OS によってメモリが上書きまたはクリアされるのを避けるために、これも試してみてください。
(サイトのビデオもチェックしてください。かなり印象的です;)