新規記事投稿 フォロー記事投稿 記事のキャンセル
From: Akitaka HOSOMI <hosomi@ga2.so-net.ne.jp>
Subject: どこにでもある危険
Date: 1998/05/16 04:44:46

Win95 から DOS の管理する低位のメモリを勝手に触ろうと目論
んで、夜中に遊びながら、いろいろと試しています。

# ちなみに、I/O ポートは、割込みなどの面倒な処理が無ければ、
#  Win95 から、直接、読書き出来てしまいますね。
# 手続き無用で勝手に触れちゃ、ホントはダメなんだけど。


物理メモリへのアクセスは、通常、リソースを提供できる仮想デ
バイスドライバなどを利用して行いますが、もっと安直?に、と
いうことで、隠しセレクタ( リアルモードのセグメントに相当す
る )を、こちらで適当に探してみました。


セグメントセレクタの 0040h を使えば、AT 互換機で BIOS のワ
ークエリアが覗けるという話は、よく聞きます。実際に試したと
ころでは、覗ける範囲は、00000400h からの 300h バイトだけの
ようで、オタッキーなプログラマとしては、ちょっと、もの足り
ません。


掟破りのプログラムを作成し、一部のセレクタを勝手に使って、
試験したところでは、

現在使ってるマシンでは、0080h のセレクタを使うと、00000000h
〜 00122fffh まで覗けます。DOS のハイメモリ領域まで覗けるの
で、ワリと便利かなと思ったのですが、マシンにより、割付が異な
っており、別のマシンでは、0078h のセレクタに割付られているよ
うです( Win95 のバージョンは、双方とも、4.00.950 b )。

このセレクタは OS が非公開で提供している物なのか、他のドライ
バなどが偶然提供している物なのか、今のところ不明です。

# 追試希望者は、プログラムをソースごと進呈しますけど〜。
# これは、かなり、アブナイぞぉ〜。


取りたてて役に立つ話でもないですが、まぁその〜、所謂、一つの
情報として( なんのこっちゃい )。

# などと、遊んでる場合じゃなかったりもする。仕事が〜。