公開されたプロジェクトは、システムプログラマーだけでなく、低レベルのOS機能に関心のあるセキュリティ研究者にとっても真の発見です。 ハイパーバイザーはSimpleVisorと呼ばれ、最新の64ビットシステムのみをサポートし、Intel Haswellアーキテクチャマイクロプロセッサ上のWindows 8.1やIntel Sandy Bridgeアーキテクチャ上のWindows 10などのシステムとの互換性について正常にテストされています。
コードのすべての単一行、特定のWindows関連またはIntel関連の特異性、SimpleVisorが約500行のCコード、および10行のx64アセンブリコードを説明する包括的なコメントをカウントせずに、すべて実行する機能を含む64ビットWindowsのすべての最新バージョンで、実行時の動的なロード/アンロードをサポートします。
注釈からわかるように、SimpleVisorのソースコードはCコードの500行と64ビットアセンブラーの10行しか必要としませんでした。 プロジェクト自体はVisual Studio 2015を使用してビルドされ、この環境を使用してビルドすることもできます。
SimpleVisorテストは、次のプラットフォームで実行されました。
- Haswellマイクロプロセッサ(デスクトップ)上のWindows 8.1
- Sandy Bridgeマイクロプロセッサ上のWindows 10 Redstone 1(Samsung 930ラップトップ)
- Skylakeマイクロプロセッサ(Surface Pro 4 Tablet)上のWindows 10 Threshold 2
- Skylapeマイクロプロセッサ上のWindows 10 Threshold 2(Dell Inspiron 11-3153 SGXラップトップ)
図 SimpleVisorソース構造。
図 shvx64.asmファイルのasm64コードの一部。AMD64マイクロプロセッサーでの作業の複雑さの原因です。
SimpleVisorは、Windows 8.1およびWindows 10の64ビットバージョンで実行するように設計された64ビットドライバです。システムで正常に実行するには、たとえばいわゆるドライバを使用して、ドライバにデジタル署名する必要があります。 テスト証明書。 次に、Windowsでは、既知のbcdeditコマンドを使用して、このシグネチャで適切なドライバーダウンロードモードを有効にする必要があります。
bcdedit /テスト署名をオンに設定
次に、サービスコントロールマネージャーのドライバーサービスを作成します。これは、次のコマンドを使用して実行できます。
sc create simplevisor type = kernel binPath = "<PATH_TO_SIMPLEVISOR.SYS>"
SimpleVisorドライバーは、オンザフライでロードとアンロードの両方をサポートします。 これには、次のコマンドを使用できます。
ネットスタートシンプルバイザー
ネットストップシンプルバイザー