web-dev-qa-db-ja.com

仮想マシンで実行されているプログラムから隠すにはどうすればよいですか?

一部のソフトウェアには、仮想マシンで実行されているかどうかを確認するためのテストが含まれています。

「申し訳ありませんが、このアプリケーションは仮想マシンで実行できません」などのアラートメッセージが表示されるのは非常に不快です。そしてあなたのソフトウェアを止めさせてください!

このようなテストを無効にする法的な理由はたくさんあります。さらに、そのような制限は(ほとんどの場合)ユーザー使用許諾契約書に記載されていません。

では...仮想マシンがプログラムを実行しているという事実を隠すにはどうすればよいですか?このスキャンを実行するプログラムが、実行中のVM)を正常に検出することを望まない。

Hyper-Vで仮想プライベートサーバー(VPS)を使用しています...私はこのVPSにインストールされているオペレーティングシステム(Windows 2003)の管理者であり、Hyper-Vの管理者ではありません。

13
Femto Trader

要するに、私はあなたがただできないと思います。これは、マルウェアがVMで実行されているかどうかを検出して、VMを使用してマルウェアをチェックするコードを実行するシステムによって検出されないようにすることについての議論です。

いくつかのクイックリファレンスは次のとおりです。 VRT:マルウェアは仮想世界と現実世界の違いをどのように認識しますか? および VM対応マルウェアの死んだプレゼント

1
scherand

私の知る限り、使用している仮想化の種類によって異なります。

確かにいくつかのことを軽減できると言い始めましょう(たとえば、MACアドレスの変更、ゲストの追加のアンインストール)。

とはいえ、完全仮想化を実行している場合、ハイパーバイザーはゲストのハードウェアをエミュレートします。エミュレートされたCPUには独自の(ソフトウェア)クロックがあり、遅かれ早かれ、表示されるべきではないときに異なる速度を表示します。

これは、どのような方法でも修復できないものの1つであり、プログラム(主にマルウェア)は、VMで実行されていることを認識します。

クローズド環境で実際のハードウェアを使用することで構成される準仮想化を使用して、それを直接取得できます。

0
ingroxd