3

私はこの C プログラムを作成し、自分の Windows システムで実行しました。システムがハングアップし、タスク マネージャーすら開かなくなりました。最後に、再起動する必要がありました。これは明らかに悪意のあるプログラムですが、私のアンチウイルスはこれを検出しません。なんで?

#include<unistd.h>
main() {
while(1)
    fork();
}
4

4 に答える 4

6

ウイルス対策プログラムは、悪意のある動作を認識しません。既に出回っている既知のウイルスのパターン(ファイル名、プロセス名、バイナリ シグネチャなど) を認識します。

これが、進化する問題に対する反応的な解決策であるため、しばしば破壊される可能性がある理由です。

于 2009-09-25T04:33:51.470 に答える
3

開発者は通常、速度が大幅に低下するため、AV ソフトウェアを使用しないか、少なくとも作業中のファイルシステム サブツリーで無効にします。

しかし、そうであっても、それは AV ソフトウェアが検出しようとする類のパターンではありません。AV ソフトウェアは、ユーザーが読み書きしているファイル、およびシステム状態の変更、特定の特定のウイルス、または以前に特定されたシグネチャを探します。

とにかく、それはどのように決定しますか?プログラムの観点からは、オーバーロードされた Web サーバーと fork 爆弾の間に紙一重の線があります。

最後に、この種の行動は一種の自己修正です。フォーク爆弾よりもダメージの大きいウイルスが実際に到着した場合、勝利を宣言して「それを実行しないでください」と言うかもしれません。

ところで、フォークボムを管理者として実行しましたか?

于 2009-09-25T04:42:41.687 に答える
2

あなたのプログラムはウイルスではありません.

于 2009-10-09T11:38:49.877 に答える
0

これは悪意のある動作ではなく、コード内の論理エラーのように見えます。いつの日か、BSOD の原因となるアプリケーション、ドライバー、ms アップデート、ms 製品を検出できるウイルス対策があればいいのにと思います =)

于 2009-09-25T04:43:42.090 に答える