Ollydbg 、 IDA Pro 、および Sysinternals Suite などの他のツールを使用して、リバースエンジニアリングの演習を開始しました。これらの演習の一部はマルウェアに関するものです。 The Zoo という素晴らしいgithubリポジトリからいくつかのマルウェアをダウンロードしました。
私は自分のWindowsベースのVirtualbox vmをサンドボックス環境として作成しました。問題は、一部の高度なマルウェアがサンドボックス環境で実行されていることを検出でき、動作が異なることです(サンドボックスの良い人です)。
Pafish のようなソフトウェアを試し、仮想環境を検出しました。それはいくつかの機能を追跡しました:
それらの一部(レジストリキー)を「微調整」しようとしましたが、再起動するたびに復元されます。とにかく隠せないものもあると思います。したがって、マルウェアがサンドボックス化されたvm環境を常に検出できると仮定しましょう。
マルウェアサンドボックスの検出を回避するために、他にもっと良いサンドボックス方法はありますか?
このガイドから始めてください- https://github.com/hfiref0x/VBoxHardenedLoader -VirtualBoxゲストを作成するという点では信じられないほど最新ですVM more -2017年に有効な手法を含む検出が困難です。これにより、自動マルウェア分析の取り組みと目標の達成が確実に容易になります。
ゲストの外部でのトレースとデバッグを検討するVM VirtualKDを使用して、3つの本に見られるように1)Windows Malware Analysis Essentials、2)Gray Hat Hacking 4th Edition、および3)Practical Reverse Engineering。 qb-syncを使用して Windbg とIDA Proの間でビューを同期できます。
Scylla、 HideToolz 、HideConなどのユーザーランドデバッグテクニックよりもVirtualKDを優先します。 VM検出を無効にするのは十分に難しいため、これらはあまり良くありません。アンチデバッグとそれに関連する悪い動作を無効にすることは、ユーザーランドであまりにも多くの作業を必要とします。
Pafishも semsツール のように、少し古いです。 https://github.com/LordNoteworthy/al-khaser -を使用して、ゲストVMなどのサンドボックスで自動マルウェア分析のストレステストを行うことをお勧めします。
これらのブログには、VM検出に関する追加情報があります。
特に始めたばかりの場合は、バイナリ分析とリバースエンジニアリングの質問を https://reverseengineering.stackexchange.com/ に送信してください。そこで共有されており、プロのリバースエンジニアやマルウェアアナリストが頻繁に利用しています。
おそらく関連する既存のQ&A:
何よりもまず: どのようにして潜在的に有害なバイナリを安全に分析できますか?
アンチ分析手法を使用するPEバイナリを動的に分析する場合は、 ScyllaHide 、 Immunity Debugger および チートエンジン が役に立つかもしれません。見る
詳細については。
記事 によると、プログラムがVMで実行されているかどうかを検出するために採用された方法に応じて、仮想マシン検出 でマルウェアを確認します=これらのメソッドが実行されないようにバイナリにパッチを適用するのは簡単です。
上記の記事で言及されたEd Skoudisによる2006年の論文 On the最先端です:仮想マシンの検出の阻止 もいくつかのアイデアを提供します。
VM検出手法は、それがいつ作成されたかによっても異なる場合があります。2014年のSymantecの記事 によると、マルウェアは依然として仮想マシンを検出しますか? 、
ほとんどのサンプルは、組み込みのVM検出機能を備えたランタイムパッカーを使用します。通常、これは、パッカーまたはクリプターがサンプル自体ではなく検出を実行することを意味します。マルウェアの作成者は、アプリケーションはそれがVM上で実行されていることを検出するため、近年これらの機能の使用を停止しています。
分析したいバイナリの一部がこれに該当する場合、これらには有用な情報が含まれている可能性があります。
従来の方法に加えて、バイナリの元のオブジェクトコードを実行せずに動的分析を実行するangrやvalgrindなどのバイナリインストルメンテーションフレームワークが存在します。
これでも役に立たない場合は、 https://reverseengineering.stackexchange.com/ で新しい質問をしてください。