2

私は未知のウイルスを検出するプロジェクトに取り組んでいるので、実行可能ファイルのアセンブリ コードをエミュレートする小さなエミュレータを構築して、仮想レジスタにエミュレートして何が起こるかを観察することでウイルスかどうかを検出できるようにします。そのため、 cのすべてのアセンブリ命令のコードを取得する際に助けが必要です。

4

3 に答える 3

1

x86 エミュレーターを作成する場合は、次の完全なオペコード リストを参照してください: x86 Instruction Set Reference。しかし、ウイルスを検出する良い方法ではないようです。

于 2010-01-06T14:35:38.450 に答える
1

x86 ISA および一般的なハードウェアの LGPL エミュレータであるBochsを探しています。

于 2010-01-06T14:50:15.427 に答える
0

悪意を示すレジスタ値はありません。それは諦めたほうがいい。悪意のある動作を検出しようとするほとんどのサンドボックスが行うことは、システム/ライブラリの呼び出しを傍受することです。

コンテキスト %eax=1 %ebx=4000 %ecx=3F で ftable+1 を呼び出すと、核ミサイルを発射することを意味する可能性があり、それは print hello world を意味する可能性があります。システムと実行可能ファイルの間に独自の関数を配置すると、何が起こっているかを知ることができます (悪意のあるものとして識別するのはそれほど簡単ではありません)。

それは確かにエミュレータを必要としないので、正確なエミュレータを書くことは非常に難しいことを再考したほうがよいでしょう。

于 2010-01-07T13:08:24.073 に答える