OSXで同等のデバイス/ dev / mem(または/ dev / kmem、/ dev / pmap)にアクセスするにはどうすればよいですか?
私の知る限り、ある時点で削除されました。
このノードを何らかの方法で手動で作成したり、物理メモリをダンプする他の方法を作成したりできますか?
見る:
OSXで同等のデバイス/ dev / mem(または/ dev / kmem、/ dev / pmap)にアクセスするにはどうすればよいですか?
私の知る限り、ある時点で削除されました。
このノードを何らかの方法で手動で作成したり、物理メモリをダンプする他の方法を作成したりできますか?
見る:
回答:
よると、マックOS Xのx86のバージョンにアクセスするカーネルメモリ、/dev/mem
および/dev/kmem
AppleがIntelプロセッサ用のOS Xをリリースしたときに削除されました。
(優れた)記事では、メモリデバイスを再度有効にする方法、つまりkmem=1
カーネルブート引数を使用する方法についても説明しています。
以下にnealがコメントしたように、macOS 10.15 Catalina(およびおそらくmacOS 10.12 Sierra以降)では、NVRAMの設定はMacがリカバリモードで起動されたときにのみ変更できることに注意してください。リカバリモードを開始するには、Macの電源を入れ⌘、ロゴが表示されるまですぐに-Rを押し、メニューバーの[ユーティリティ]メニューから[ターミナル]を起動し、次を実行します。
sudo nvram boot-args="kmem=1"
そして再起動します。次の2つのデバイスが表示されます。
$ ls -l /dev/*mem
crw-r----- 1 root kmem 3, 1 2014-02-28 22:09 /dev/kmem
crw-r----- 1 root kmem 3, 0 2014-02-28 22:09 /dev/mem
(OS X Mavericks 10.9.2などのmacOSの以前のバージョンでは、オペレーティングシステム内のメモリデバイスを再度有効にすることができます。したがって、単にターミナルを起動し、上記のコマンドを入力して再起動します。)
お使いのMacが起動しないか、あなたはすべての問題を持っている場合は、押してNVRAMをリセットし⌘optionPRますが、二度目の起動音が聞こえるまでダウンキーを保持、などで「リセットNVRAM / PRAM」で説明NVRAMとPRAMについてKB HT1379。
引数をリセットする場合は、結果sudo nvram -d boot-args
を出力nvram -p | grep boot-args
しないことを入力して確認します。
macOS Sierraで動作するようになったと思います!comexのプロジェクトをダウンロードしました
。Kmemプロジェクト
kextをコンパイルし、権限を修正してからロードしました!ターミナルIを使用することに入った/dev
とls
の両方が示されたmem
とkmem
...
編集:プロジェクトをダウンロードする場合、最新のものを使用するようにXcodeでコンパイラを変更する必要があります(たとえば...他のバージョンが動作するかどうかわかりません...)すでに行った結果にすばやくアクセスするためにmacOS Sierraでコンパイルするcomexのプロジェクトのフォーク!シエラフォークのKmem
繰り返しますが、これはコメックスの仕事であり、私のものではありません。コンパイラの設定を変更してアップロードしただけです。:)
/dev
..の下に表示されませんでした。おそらく、Appleがこのオプションを閉じたかどうか、そして10.12でこのメモリにアクセスする別の方法があるかどうか知っていますか?