5

単純な多態性エンジンをプログラムする必要があります。Linux(32ビット)を使用しており、アセンブリとcでコーディングできます。どうやって始めたらいいのかわからない。

そのようなエンジンを構築するためのスキーマを教えてください。私の考えは、次のようなプログラムを作成することです。

  1. ファイルのコードセクションを読む
  2. バッファで暗号化し、
  3. 復号化ルーチンを追加するために最初にスペースを作ります(それは可能ですか?)
  4. プログラムのコードセクション内に新しいバッファを書き込みます。

そうですか?それはそのようなエンジンの動作を反映していますか?

4

1 に答える 1

3

基本的なスキーマは、これまでに説明したものとはまったく異なります。通常、暗号化されるのはウイルス本体のみであり、コードセクション全体は暗号化されません。コードセクションを拡張するか、本体に新しいウイルスを作成する単純なウイルスについて考えてみます。ここで、それをポリモーフィックにするには、暗号化を追加し、復号化コードを非定数にする必要があります。例:

1)nopをランダムに挿入します(nop、、、add reg, 0などpush reg; pop reg

jmp next2)( 、、clc; jc nextなど)でプログラムフローを変更します

3)同じ算術効果を持つ命令を使用します(add eax, 3-> add eax, 9; sub eax, 6

多態性とは、エンコーディングの数が固定されている可能性があることを意味します。したがって、エンコーディングを作成する最も簡単な方法は、復号化コードを複数のブロックに分割し、それぞれに同じ長さのエンコーディングを提供することです。

編集:はい、それはウイルス本体の一部です。これを使用するには、これらすべての「ブリック」をウイルス本体に配置し、別のファイルが感染したときに、その記述子のランダムバージョンを作成します。

于 2010-11-14T13:39:02.597 に答える