0

F000:0000~FFFF:0000をリアルモード(DOS)で書き込みたい。
ただし、この領域は書き込み保護されています。

CPUとノースブリッジのデータシートを探してみました。
しかし、シャドウラムの書き込み方法が見つかりません。

私のシステム構成:
M/B: ASUS P5B(965P チップセット)
CPU: Intel Pentium 4 シリーズ

BIOS: アミ


4

1 に答える 1

0

F000:0000 ~ FFFF:0000 は、80286 以降のすべてのプロセッサで HMA を指すメモリ範囲です。詳細については、こちらを参照してください。

HIMEM.SYS なしで使用するには、次の操作を行う必要があります。

8042 キーボード コントローラーを直接制御できます。コマンド D1 を使用します。Write Output Port: ポート 60h に書き込まれた次のバイトは、8042 出力ポートに配置されます。

.286
                 mov     al,0d1h         ;send command to 8042
                 out     64h,al
 reloop:         in      al,64h          ;check that port 60h is available
                 or      al,02h
                 jnz     reloop
                 mov     al,11100011b    ;keep keyboard working and gate a20
                 out     60h,al
                 push    -1              ;set es=ffffh
                 pop     es
                 push    00h
                 pop     ds              ;set ds=0000h
                 mov     di,10h          ;check if it worked, compare
                 xor     si,si           ;ffff:0010h to 0000:0000 for 16 bytes
                 mov     cx,di           ;set cx to 10h
                 cld
                 rep     cmpsb           ;compare it
                 je      failed
                [...]                    ;worked, copy virus to ffff:xxxx
 failed:         jmp     short failed    ;do whatever
于 2013-07-10T18:38:08.350 に答える