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カ所も出てきたり(^^;。
これはひどい。
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をホストで起動するパッチ
Comments