本サービスには一部、Googleの支援により翻訳されたコンテンツが含まれます。Googleは、明示または黙示を問わず、市場性、特定目的への適合性、ならびに非侵害の黙示的保証を含む、翻訳の精度、信頼性、正確性に関連するあらゆる点において保証しません。

Kaspersky Labの本Webサイトは、便宜上、Google Translateを搭載した翻訳ソフトウェアを利用して翻訳されています。正確な翻訳となるよう合理的な努力を払ってはおりますが、自動翻訳の正確性は完全ではなく、翻訳者(人間)による翻訳に代わるものとして意図されているものでもありません。翻訳はKaspersky Labの本Webサイトをご利用の皆様の利便性を図るためのものであり、「翻訳結果をそのまま」ご提供するものです。英語からその他言語への翻訳における精度、信頼性、正確性に関しては、明示または黙示を問わず、いかなる保証もなされません。翻訳ソフトウェアのため、コンテンツの一部(画像、動画、フラッシュ等)は正しく翻訳されない場合があります。

Virus.DOS.DarkParanoid

クラス Virus
プラットフォーム DOS
説明

技術的な詳細

これは記憶に寄生する寄生虫多型ウイルスである。 INT 1、21hをフックし、EXEの最後とCOMファイルの先頭に自身を書き込みます。

このウイルスは、複雑な方法でオンザフライ暗号化を行います。ウイルスコードが実行されると、唯一の命令が暗号化されていない状態で提示されます。他のすべてのウイルスコードは暗号化されます。このウイルスは、INT 1トレースモードでトリックを使用することでそれを行います。ウイルスコードが制御を受け取ると、INT 1がフックされ、ウイルス命令の実行後に(いくつかの特別なオペコードを除いて – 「Intel 80×86 User Guide」を参照)、INT 1が呼び出されます。ウイルスはこの呼び出しをフックし、現在の命令の下のコードを解読し、上記のコードを暗号化します。


prev命令 – 暗号化
現在の命令 – クリーン
次の命令 – 暗号化
"現在の命令"を実行した後、ウィルスはINT 1フックで制御し、 "現在の命令"を暗号化し、 "次の命令"を解読します。その結果、いつでもすべてのウイルスコードが暗号化されるか、または1つの命令だけがクリーンで提示されます。さらに、ウイルスは、前/次の命令のコードを正確に暗号化/復号化するのではなく、現在の命令のアドレスからのいくつかのオフセットでいくつかのバイト/ワードを暗号化/復号化する。その結果、ウィルスの命令フローは、スポットの真ん中に「きれいな」命令、残りのスポットで部分的に暗号化されたコード、およびスポットの外で完全に暗号化されたコードで移動する「スポット」のように見えます。

このように暗号化できないコードは、INT 1ハンドラ(エン/デクリプタ)、感染ファイルの開始コード、およびウイルスTSRコピーのINT 21hハンドラです。ファイルの開始コードとINT 21hハンドラフックINT 1は、制御を受け取るとトレースモードに切り替え、メインルーチンに制御を渡します。 – ファイルのインストールルーチンとウイルスTSRコピーのメインINT 21hハンドラのコード。

INT 1フックルーチンとINT 1ハンドラ自体は暗号化されておらず、それらは単なる多態性です – ウイルスは非常に強力な多態性エンジンを使用して、INT 1フアーカーのコードを感染ファイルのエントリポイントで生成します。 1および21hハンドラ。

感染ファイル内のウイルスコード:


エントリ:+ ————- +
| INT 1フッカー| – 多型
| – – – – – – – |
| INT 1ハンドラ| – 多型
| – – – – – – – |
|主なウイルス| – INT 1によって暗号化される
|コード:TSR |
|インストール担当者、|
|その他|
+ ————- +
メモリ内のウイルスコード:

INT 21h + ————- +
エントリー:| INT 1 hooker | – 多型
| – – – – – – – |
| INT 1ハンドラ| – 多型
| – – – – – – – |
|主なウイルス| – INT 1によって暗号化される
|コード:INT 21h |
|ハンドラ、|
|その他|
+ ————- +
その結果、ウイルスコード(感染ファイルの開始アドレス、INT 1ハンドラおよびINT 21hハンドラの開始コード)へのすべての「エントリ」は多型であり、主なウイルスコードは暗号化されています。これは、ウイルス対策研究者が検出を精緻化するそのような種類のウイルスに対する手続き。

多態性エンジン

通常の多態性エンジンと "DarkParanoid"のエンジンの違いは、このウイルスには多型コードに復号化ループがないことです。これはINT 1をフックしてメインコードのトレースを開始するだけです。このコードを生成する際に、ウイルスはランダムにレジスタ、コマンド、データアクセスモードなどを選択します。

オンザフライ暗号化/復号化ルーチンを含むINT 1ハンドラと同様です。このファイルは別々のファイルでも異なっています.ADD、SUB、XOR、NEG、NOT、ROR、ROLのほか、バイトとワードアクセスなど、10種類以上の暗号化機能がセットからランダムに選択されています。また、ランダムなレジスタが使用され、INT 1ハンドラのオフセットがいくつかの制限内でランダムに選択されます。

インストールとINT 21hハンドラ

「DarkParanoid」ウイルスはメモリ常駐型であるため、感染ファイルが実行されるとウイルスはシステムメモリに自身をインストールします。これを実行するためにINT 1をフックしてオンザフライ暗号化/復号化ルーチンを起動し、必要な量の空きメモリ(約7.5K)があれば、従来のDOSメモリまたはUpper Memory Blockにシステムメモリのブロックを割り当てます。その後、そのコードがそこにコピーされ、INT 21hがフックされ、制御がホストプログラムに返されます。

メモリ常駐型のインストール中に、ウイルスはその多形性エンジンを実行して、ファイルを感染させる際にそれらを使用する解読ルーチンを生成します。ウイルスはこのエンジンをもう使用しません。その結果、インストールされたウイルスは、次の再起動と再インストールまで同じポリモーフィックコードをファイルにドロップします。これはユーザーとウイルス研究者をだますかもしれません。ウイルスは、これが単なる暗号化されたウイルスであることを確かめようとしますが、多形ではないことを確かめます。

INT 21hウイルスハンドラは、FileOpen / Createコール(AH / AX = 3Ch、5Bh 6C00h)、FileCloseコール(AH = 3Eh)、Get Allocation Strategy(AX = 5800h)を傍受します。

最後の機能(Get Allocation Strategy)は、「Are You Here?」として使用されます。コール。この呼び出しは、常駐メモリのインストール中にウイルスによって実行されます。このコールの前に、ウイルスは現在の年番号と現在の月と日の番号(AH = 2Ah、CX = CX + DX、AX = 5800hのINT 21hコールで現在の日付を取得します)をCXレジスタに入れます。

メモリ常駐ウイルスコピーはそれを傍受し、現在の日付と年を取得し、その追加をCXレジスタと比較します。それらが等しい場合、ウイルスTSRコピーはアクティブなウイルスコピーに制御を戻しませんが、それを単独でホストプログラムに渡します。それは非常に有効なアンチデバッグトリックだと思われます – もしウイルスがすでにメモリ常駐しているなら、GetAllocationStrategyのような通常のコールはデバッガに返されません。

ファイルが開かれると、ウイルスはその名前の拡張子を "COM"と "EXE"と比較し、これらの拡張子の場合、ファイルが閉じられるときにファイルのハンドルを保存して感染させます。その結果、実行ファイルは、ウイルス対策プログラムによってウイルススキャンされたか、バックアップに保存されたか、またはコピーされたときなど、感染したときにのみ感染します。

ファイルを感染させる前に、ウイルスはファイル名をチェックし、いくつかのウイルス対策プログラムやユーティリティに感染することはありません。AV、SC、CL、GU、NO、FV、TO、TB(AVP 、AVG、SCAN、CLEAN、GUARD、TBAVなど)

このウイルスは、EXEファイルの最後にコードを書き込み、EXEファイルのヘッダーに必要なフィールドを変更します。 COMフ​​ァイルの場合、ウイルスはそのコードをファイルの先頭に書き出し、元のファイルをファイルの最後まで保存します。

ウイルスに感染すると、ファイルのサイズが可変数で増加します。システムメモリにランダムに選択されたアドレスからランダムに選択された番号(最大1001バイト)だけでなく、実際のウイルスコード(暗号化された)5297バイトを書き込みます。このウイルスは、EXEファイルの長さを感染前の段落(16バイト)に合わせ、60Kを超える長さのCOMファイルには感染しません。 COMとEXEファイルを分離するために、ウイルスはファイルヘッダ(MZ / ZM EXEスタンプ)をチェックします。

感染したファイルと感染していないファイルを分離するために、ウイルスはファイルの時刻と日付のスタンプを使って標準トリックを使います。ファイルを感染させた後、ウイルスはタイムスタンプを2秒に設定し、感染前にこの値をチェックします。

トリガルーチン

トリガールーチンはランダムカウンタに応じてウイルスによって実行されます – 各ファイルにウイルスを感染させ、ウイルスの確率1/4000を表示すると "DaRK PARaNOiD"というテキストが画面中央に表示され、その後PCスピーカーでノイズが発生し、VGAカード機能。

ウイルスには、その多形エンジンのコードの中にテキストも含まれています。


永遠の暗号のエンジン


オリジナルへのリンク