GitHubはコンパクトハイパーバイザーのソースコードを公開しました

Windowsの内部デバイスとARMアーキテクチャの有名な第一人者であるAlex Ionescuは、GitHubリソースでハイパーバイザー(仮想化ツール)のベース部分のソーステキストを公開しました。 ハイパーバイザーには、コンパクトサイズ、最新のマイクロプロセッサアーキテクチャのサポート、ソースでのアセンブラの最小限の使用、使用に関するコメントなど、多くの優れた機能が含まれています。 開発中、最大限のコンパクト性に重点が置かれました。







公開されたプロジェクトは、システムプログラマーだけでなく、低レベルの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テストは、次のプラットフォームで実行されました。







図 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ドライバーは、オンザフライでロードとアンロードの両方をサポートします。 これには、次のコマンドを使用できます。



ネットスタートシンプルバイザー

ネットストップシンプルバイザー



All Articles