物理メモリの任意のアドレスを直接操作するには?

OKWave

2007-12-06 10:00

物理メモリの任意のアドレスを直接操作するには?

物理メモリの任意の物理アドレスのデータに直接書き込んで、データを破壊したいのですが、どうすれば可能でしょうか?
OS上からはそのような操作はできないようになっているのでしょうか?
アセンブラ?等の言語が必要なのでしょうか?それってOS上で実行できるのでしょうか?

とにかく漠然としてて申し訳ありませんが、何かとっかかりを教えていただければありがたいです。
直接操作したいのは物理アドレス上のデータで、仮想アドレス上のデータではないです。

良回答

Solarisでは、/dev/mem がまさにその目的に使えます。使い方は man memしてください。

回答

どの OS を想定しているのかはわからないんですが, そのようなことをユーザが簡単に行うことはできません. 理論的にいえば, 「そのようなドライバ」を書けば可能かも.
少なくとも, CPU が行う「論理アドレス→物理アドレス」の変換を制御する必要があるのでアセンブラの知識は必須でしょう. というか, 普通高級言語ではそんなところまで感知しません.
いちおう Intel の x86系で考えると, しかるべきセグメントディスクリプタを書いてから LDT (または GDT) を設定すれば可能です. もちろん LDT を設定するためには特権命令を使うことになりますが.
裏技としては IEEE1394 を使うってのもあるかも. ちょっとうろ覚えになってしまうんですが, IEEE1394 を使って外部から物理アドレスを直接指定してのデータ書き込みが可能だったような気もします.

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    レガシーデータ基盤からの脱却が AI 活用の鍵--先進企業に学ぶクラウド移行の成功事例

  2. ビジネスアプリケーション

    AI 人材育成を単なる研修で終わらせない--事業を動かす AI スキル構築の 5 つのステップ

  3. ビジネスアプリケーション

    汎用 AI をビジネス仕様に。業務データを活かす AI アプリ開発の新しい前提「データ基盤」

  4. 仮想化

    コンテナ化だけで十分なのか。商用パッケージ運用の負荷を左右するOpenShiftの価値

  5. 経営

    月15万円から始めるSOC。セキュリティ人材を雇えない企業の、取引を止めない経営判断

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]