説明が「プログラムを起動できないので、VM内で実行しないでください」または「セキュリティプログラムがVMから実行する場合は有効な環境」。
ここで私が疑問に思っているのは、プログラムがVM内にあるかどうかをプログラムがどのように検出できるか?設定されているフラグがどこかにあるか、それとも特定のドライバーか?
VM内にいるかどうかをどのように検出できますか?
過去にこれを行った簡単な方法は、コマンドプロンプトから [〜#〜] wmic [〜#〜] コマンドを使用して、コンピューター、make、model、のWMI名前空間オブジェクトをクエリすることです。とシリアル番号。
インストールプロセスの一部としてWMICの結果を使用するようにいくつかのロジックをプログラムし、それが既知の何かを検出した場合、それがVMであることを示すロジックの一部としてこれをチェックするか、または次のようにプログラムすることができます。 VMまたはその両方ではない)と言っている他の値を見つけます。
ハードウェアシリアル番号の取得:
WMIC BIOS GET SERIALNUMBER
ハードウェアモデルの取得:
WMIC COMPUTERSYSTEM GET MODEL
ハードウェアメーカーを入手:
WMIC COMPUTERSYSTEM GET MANUFACTURER
非VM WMICの結果:
VM WMICの結果:
トピックは数回ハイライトされました。 OSに依存するいくつかのヒントは次のとおりです。