Virtual Box のバグ 追加 (VBoxC.dll Referenced 0 null pointer !)

あれから、VBoxC.DLLの逆アセンブル 眺めてたんですが。

      xor eax,eax
      jmp L1
ごにょごにょ
L1:
      mov edx,Data1
      mov [eax],edx
 
みたいな、コードが多すぎ!
要するに、エラー処理があったときに0を代入して処理を中断するはずが、中途半端な場所にジャンプしてるのでエラーが発生してる模様。
 
例えば、これなんか典型。
ジャンプ先でヌルポインターへ必然的に値を代入しています。
ここは本来EDXとECXの値を読んでから、2D7のPUSH EDXに飛ばす処理が正解。まぁ、パイプラインの処理のせいでこんな入り組んだ処理になってるんですけど、明らかにおかしいというわけ。 

これがそのまま実行されると

VirtualBox.exe の 0x017862c9 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000000 に書き込み中にアクセス違反が発生しました。

のようになってしまいます。 

で、バイナリレベルで検索かけたら、そんなコードが15カ所も出てきたり(^^;。

これはひどい。

VirtualBox 2.0.2 Kernel Driver For Windows2000 (転載禁止/Reproduction prohibited)

Filename: vb202f2ka.zip
Download: 800kbytes
Version: 2.0.2(Fix 1)
Updated: 2008/09/29
Platform: Windows 2000
Language: Multilingual
Describe: VirtualBox Kernel Driver for Windows2000, VBoxC.dll and VBoxSVC.exe are fixed.

関連記事: 
Virtual Box 1.6.xをWindows2000をHostで使う
Virtualbox 2.0.0をWindows2000をホストで起動!
Virtualbox 2.0.2をWindows2000をホストで起動するパッチ

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です