OSXで/ dev / memにアクセスする方法は?


12

OSXで同等のデバイス/ dev / mem(または/ dev / kmem、/ dev / pmap)にアクセスするにはどうすればよいですか?

私の知る限り、ある時点で削除されました。

このノードを何らかの方法で手動で作成したり、物理メモリをダンプする他の方法を作成したりできますか?

見る:

回答:


12

よると、マックOS Xのx86のバージョンにアクセスするカーネルメモリ/dev/memおよび/dev/kmemAppleが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しないことを入力して確認します。


1
macOS Sierraでこの方法を試しましたが、デバイスが/dev..の下に表示されませんでした。おそらく、Appleがこのオプションを閉じたかどうか、そして10.12でこのメモリにアクセスする別の方法があるかどうか知っていますか?
Zohar81

1
ある時点で、nvramの設定は、Macがリカバリモードで起動されたときにのみ変更できます。したがって、Macの電源を入れ、ロゴが表示されるまですぐにCmd-Rを押したままにして、RecoveryインストールUIからターミナルにドロップしてコマンドを実行すると、機能するはずです。これは昨日、OS X Catalinaで機能しました。
ニール

4

macOS Sierraで動作するようになったと思います!comexのプロジェクトをダウンロードしました 。Kmemプロジェクト kextをコンパイルし、権限を修正してからロードしました!ターミナルIを使用することに入った/devlsの両方が示されたmemkmem...

編集:プロジェクトをダウンロードする場合、最新のものを使用するようにXcodeでコンパイラを変更する必要があります(たとえば...他のバージョンが動作するかどうかわかりません...)すでに行った結果にすばやくアクセスするためにmacOS Sierraでコンパイルするcomexのプロジェクトのフォーク!シエラフォークのKmem

繰り返しますが、これはコメックスの仕事であり、私のものではありません。コンパイラの設定を変更してアップロードしただけです。:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.