8

デフォルトのDev-C++プロジェクトを作成しましたが、通常のプロジェクトではなく、プロジェクトreturn 0;return EXIT_SUCCESS;コンパイルして実行すると、ウイルス対策ソフトウェアによって実行可能ファイルがウイルスであることが警告されました。

Visual C ++、Eclipse、Codeblocksで同じコードを試しましたが、すべて正常にコンパイルされました…なので、ここでは少し混乱しています。

return EXIT_SUCCESS;—他の同様のマクロが完全に正常に機能するのに、なぜAVGはその行を含むDev-C ++から生成された実行可能ファイルをウイルスとして検出するのですか?

4

4 に答える 4

16

AVGが私のC++プログラムにウイルスのラベルを付けるのはなぜですか?

たとえば、AVGがウイルスとして検出するC++プログラムは次のとおりです。

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
    cout << "done";
    return 0;
}

実行可能ファイルを実行すると、次のテキストを含むAVGポップアップウィンドウが表示されます。

AVG Resident Shield Alert
Threat detected!
File name: c:\Documents and Settings\eleschinski\Desktop\workspace\CppApplication_2\dist\Debug\MinGW-Windows\cppapplication_2.exe
Threat name:  Trojan horse Agent3.CJAI (More Info)
Move to Vault (Reccommended)
Go to file
Ignore the threat

AVGの機能のスクリーンショット:

ここに画像の説明を入力してください

まとめ、ここで何が起こっているのですか?

AVGアンチウイルスは、ヒューリスティックやその他の不正確なアルゴリズムを使用して、不要な悪意のあるアジェンダを持っているプログラムを特定する、コンピューター上で実行されるプログラムです。AVGは実行可能ファイルの内容を入力として受け取り、プログラムが安全でないと判断しました。

ウイルス対策の作成者は、悪意の列挙戦略を使用して世界中のマルウェアを特定していますが、これはマルウェアの検出の問題に対する間違ったアプローチであるため、再び攻撃にさらされています。悪意の列挙に関する問題の1つは、誤検知です。これは、現在発生している問題です。

問題をよりよく理解するための手順:

ステップ1. 最初に、AVGがどのファイルについて不平を言っているかを非常に確認したいと思います。これを行うには、[AVG]->[ツール]メニュー->[ファイルのスキャン]に移動します。脅威ウィンドウで定義されている問題のある実行可能ファイルまたはファイルを選択します。AVGはファイルを即座にスキャンし、ボールトに追加することをお勧めします。この時点で、AVGはこのファイルだけがマルウェアであると考えていることがわかります。

ステップ2. このマルウェア/ウイルスファイルについてセカンドオピニオンを取得します。さらに良いことに、50の独立したセカンドオピニオンを取得します。Webサイトhttps://www.virustotal.comにアクセスすると、ファイルを無料でアップロードできます。ファイルは約50の異なるウイルス対策プログラムによって分析されます。それらの大多数がウイルスであると考えている場合、AVGは正常に機能しています。ただし、少数のアンチウイルスだけがファイルに悪のラベルを付けている場合は、AVGの誤検知が発生している可能性があります。

ステップ 3.C++プログラムが安全であることをAVGに納得させる簡単な方法は、C++ステートメントをsystem("pause");C++プログラムの先頭に追加し、再コンパイルして再実行することです。私の場合、AVGはそれについて警告し、[無視]をクリックすると、とにかく実行できるようになります。また、メイン関数の最後で「return0」の代わりに「return1」を使用してみてください。それはあなたがそれを実行できるようにします。それが奇妙に思えるなら、そうです。ウイルス作成者は、ウイルス対策ソフトウェアに多くの誤検知を検出させることにより、ウイルス対策作成者よりも賢くなります。

ステップ4. プログラムをホワイトリストに登録できるかどうかを確認します。AVGの「ウイルスボールト」に移動します。AVG->履歴メニュー->ウイルスボールト。問題のあるC++プログラムを表すラインアイテムを見つけて、ウイルスボールトから解放するか、ホワイトリストに登録して、再試行してください。

ソリューション:

オプション1:ウイルス作成者がウイルス対策ソフトウェアとの戦いに勝利していることを認めます。すべてを調査してすべての悪点を見つけるよりも、何かを隠す方が簡単です。AVGは、正規のウイルスと作成したばかりのc++プログラムの違いを区別できません。新しいウイルス対策ソフトウェアを入手するか、ウイルス対策ソフトウェアを必要としないオペレーティングシステム(Linux)を入手するか、ウイルス対策ソフトウェアをすべて一緒に使用せずに、オフラインのオフサイトバックアップを多数保持します。

オプション2: 拡張子が.EXEのファイルの分析を停止するようにAVGに指示します。警告これにより、実際のウイルス/マルウェアからコンピュータを保護するAVGの機能が低下します。AVGコンソール->[ツール]->[詳細設定]->[アンチウイルス]->[常駐シールド]->[エキスパート設定]に移動します。「常に次の拡張子のファイルをスキャンする」というラベルの付いたテキストボックスが表示されます。そのテキストボックスからを削除しEXE;ます。プログラムを保存して再実行してみてください。AVGはsomething.exe実行可能ファイルについて文句を言うことはもうありません。

オプション3: ウイルスのラベルが付けられなくなるまで、C++プログラムをいじります。#include他のライブラリを除いて、いくつかのライブラリを追加します。取るに足らない変更は、ファイルが悪性であると判断するAVGにすべての違いをもたらす可能性があります。

AVGの誰かがこのバグを追跡することに興味がある場合は、上記の誤検知実行可能ファイルを次に示します。

于 2013-07-02T17:22:40.517 に答える
5

AVGは(おそらく)古いバージョンのgcc(Dev-C ++はもう開発中ではないので)と空のプログラムの組み合わせをどういうわけか好まないように見えるので、おそらくこれは全体を軽くするでしょう。

于 2011-11-02T22:24:16.157 に答える
1

グーグルで「EXIT_SUCCESSを定義」すると、「0」になっていることがわかります。

IDA Pro Disassembler + Hex Rays Decompilerを使用して実行可能ファイルを逆コンパイルし、そこで実際に何が起こっているかを確認してください:)

于 2011-11-02T22:06:20.313 に答える
0

私も同様の問題に直面しました。

理由:わからない

回避方法:以下をお読みください

迅速な解決策:外界のウイルス対策に影響を与えることなく

あなたはあなたのコードがどのドライブにあるか知っています...

実行可能ファイルがどのドライブで生成されるかを知っています[構成できるため]

ウイルス対策の例外リストに入れてください。

ここに画像の説明を入力してください

出来上がり..これ以上ポップアップはありません

于 2021-03-19T07:33:07.290 に答える