web-dev-qa-db-ja.com

私のプログラムはavastアンチウイルスによってブロックされています

私はアマチュアプログラマーであり、大きな問題のために必死で怒っています。私のプログラムのほとんどはavastアンチウイルスによってブロックされていますが、そうでないものもあり、その理由はわかりません。調査しようとすればするほど、問題が何であるか理解できなくなります。

私のプログラムがブロックされないようにするための解決策を見つけるためにあなたの助けを求めています、または、デフォルトとして、それが事実かもしれない理由を説明する少なくともいくつかの強力な手がかり。それについてはすでに多くのトピックがWeb上にあります。ただし、それらのほとんどは表面的な回答のみを提供します:ウイルス対策がシグネチャと検出ヒューリスティックでどのように機能するかを説明するか、他の質問をせずにホワイトリストに問題のあるアプリケーションを追加するだけでよいと述べています。それは確かに正しいですが、調査を開始する具体的なアイデアなしに動作することを拒否する独自のプログラムがまだ残っているため、私の感覚では受け入れられる答えではありません。

まず、私のプログラムをブロックする唯一のアンチウイルスはavast 7.xです。他のアンチウイルスは、私のソフトウェアを実行するのに不便なことはありません。第二に、私は自分自身を認めていない。友人のマシンにインストールされます。私はWindows 7を持っています、彼はWindows XPを持っています。問題はavastのみであることを完全に確信しています。一時的に無効にした場合、またはプログラムがホワイトリストに追加された場合、すべてが正常に機能します。

3つの異なるプログラムが問題を抱えています。

  • シンプルで効率的でカスタマイズ可能なまま、Windowsのメモ帳を置き換えることを目的としたテキストエディター
  • 非常に使いやすい小さなアマチュアオーディオプレーヤー
  • 現在1000人以上のユーザーがいるオンラインゲームプラットフォームのクライアントプログラム

最初のものはオープンソースです。必要に応じて、実行可能ファイルとソースコードへのリンクを提供できます。他の2つはクローズドソースですが、無料で使用できます。現在のバージョンの実行可能ファイルへのリンクのみを提供できます。これらの3つのプログラムの唯一の明らかな共通点は、開発者としての私、それらをコンパイルしたWindows 7マシン、MinGW/GCCであるコンパイラファミリ、そしてすべてフレームワークのないwin32 GUIアプリケーションです(MFC、WPF、 QT、WXWidgetsなど、純粋なwin32/C GUIアプリケーションのみ)

ここに私の観察がありますが、これまでのところ:

  • テキストエディタのバージョン1.1、1.2.1および1.3はブロックされています。それらはC++ではなくCであり、UnicodeモードでGCC 3.4.5でコンパイルされ、ポータブルZipファイルで配布されます(ポータブルとは、単にインストーラーもインストールも不要という意味です)
  • 同じテキストエディタのバージョン1.4.1はブロックされていません。 GCC 4.7.2でコンパイルされており、C++ではなくCであり、ユニコードモードであり、移植可能なZipファイルとして
  • オーディオプレーヤーのすべてのバージョンがブロックされています。 0x機能が有効なC++で、GCC 4.7.2によってANSIモードでコンパイルされ、ポータブルZipファイルで配布されています
  • 私のゲームの現在のバージョン1.7.2はブロックされていません。 Cにあり、ANSIモードでGCC 3.4.5でコンパイルされており、inno-setup 5インストーラーとして配布されています。
  • 私のゲームの新しいバージョン2.0.0は現在プライベートベータですが、ブロックされています。 0x機能を有効にしたC++であり、GCC 4.7.2でUnicodeモードでコンパイルされています。私はプライベートベータテストチームと、プライベートドロップボックスフォルダー内のZipファイルとしてそれを共有します

この問題は、avast 7.xの自動サンドボックスが原因です。 avastが嫌いなプログラムを起動しようとすると、次のことが起こります。

  1. ユーザーが実行可能ファイルをダブルクリックするかEnterキーを押します
  2. プログラムは起動しますが、ほぼ瞬時にavastによって強制的にクラッシュします
  3. ポップアップが表示され、次のようなメッセージが表示されます。avastは評判が低いため、このプログラムをサンドボックスに入れました
  4. ポップアップの続行ボタンをクリックすると、プログラムの実行が再開され、正常に動作します
  5. 続行ボタンをクリックしないと、Windowsエクスプローラーがフリーズし、実行可能ファイルはタスクマネージャーに残り、76 KBのRAMを使用します。 Windowsエクスプローラーがフリーズし、プログラムが再起動され、正常に動作します

これは受け入れがたい。私のプログラム、特にゲームの初心者ユーザーは、ウイルス対策の仕組みがわかりません。ホワイトリストに追加する方法と、ブロックを解除する理由がわからない。アンチウイルスの設定を変更する方法がわかりません。ポップアップが表示された場合、それを理解できず、理由を知らずにプレイできないため、恐れたり失望したりします。また、ポップアップが表示されない場合は、半凍結状態のコンピューターで5分間待つことは期待できません。プレイするたびに。

そこから、私は次の推論をしました:

  • 私のマシン自体は感染しておらず、私が配布する実行可能ファイルにウイルスは注入されていません。そうしないと、すべての最近のプログラムがブロックされます。プレーヤーとゲームの新しいバージョンの2つがありますが、テキストエディターの最新バージョンではありません。ゲームの1.7.2は2012年3月にコンパイルされましたが、テキストエディターの1.4.1は2012年10月からです。
  • GCC 4.7.2の最新バージョンは、同じ理由で原因ではありません。 ANSI対Unicodeコンパイルでも同じです。
  • GCC 4.7.2でコンパイルされたすべてのC++アプリケーションで必須の、自動リンクDLLとして配布されるminGW C++ランタイムは、多くの有名なプログラムで使用されているため、おそらく原因ではありません。私のテキストエディタはブロックされており、Cにあるため、使用しないでください。
  • 私のオーディオプレーヤーとゲームには、共通のオーディオライブラリがあります。私のゲームのバージョン1.7.2は動作しますが、最新のプライベートベータ版は動作しないため、これは後の原因ではありません。そしてもちろん、そのオーディオライブラリは、ブロックされていない他の多くの既知またはあまり知られていないアプリケーションでも使用されます。
  • プレーヤーとゲームの両方がwinsockを使用してネットワークにアクセスします。同じ理由で、それも原因ではありません
  • それが本当にavastの評判だとしたら、ブロックされていない私のテキストエディターのバージョン1.4.1は約70回しかダウンロードされず、ブロックされているバージョン1.3は300回以上ダウンロードされているのはなぜですか? ITは完全に非論理的に見えます。 70人のユーザーは評判について何かを主張するのに十分ですか? 300人のユーザーがいますか?私は本当にそうは思わない...おそらく数十万人のユーザーの重要な質量が必要です。

それに加えて、ポータブルZipファイルとしてプログラムを配布しているという事実がavastがブロックする理由かもしれませんし、逆に、プログラムがプログラムファイルに適切にインストールされているという事実がそれを信頼する理由かもしれませんもっと。そこで、私は簡単な体験をしました。ゲームのベータ2.0.0用の新しいinno-setup 5インストーラーと、テキストエディターのバージョン1.3用のインストーラーをコンパイルし、インストーラー自体がブロックされていることを発見しました。

私は友人と別の経験をしました。そこでは、MessageBeepの使用に基づいて、プログラムがクラッシュする場所を正確に見つけようとしました(MessageBoxもブロックされます!)。私は問題に気づいていませんでした。ログインダイアログボックスでSetDlgItemTextが初めて呼び出されたときにゲームはブロックされますが、すべてのSetDlgItemTextを削除すると、さらに下にブロックされます。テキストエディタでは、メニューバーの入力中にブロックされます...

私の結論は、新しいバージョンのゲーム、古いバージョンのテキストエディター、およびオーディオプレーヤーにはavastが嫌いなものがあるということです。私のテキストエディタの最新バージョンにはないもの。どうなり得るか ?手がかりはありますか?私はそれを修正することを望むことができるように、それが何であるかを見つけるためにどのように進めることができるかについてのアイデアしかありませんか?このような問題を分析する方法しかありませんか、それとも穴の世界はavastにねじ込まれていますか?

私は独身者であり、会社ではないことに注意してください。これらのプログラムはすべて無料で使用でき、開発するためにIDEを支払っていません。彼らはそれらを使用するので、証明書はおそらくまったく手頃な価格ではないと思います。さらに、それが本当の解決策であるかどうか、GCCでコンパイルされたアプリケーションに署名する方法がわかりません。 MSVCのような "usineàgaz"。他のソリューション(非常にダーティなソリューションであっても)がある場合は、このオプションを強く忘れてください。

読んでくれてありがとう。

40
QuentinC

すべてのAVソフトウェアの信頼性を高める良い方法は、コードにデジタル署名することです。 Thawteには、年間100ユーロ未満で最も安価な証明書があります。

[email protected]_Doktorのコメントの約2年後に更新-

私は最近、コード署名がオプションではなかった新しい状況に遭遇しました-私はPHPでJoomlaのオープンソースを書きます。 Avastがファイルを(偽)陽性としてマークした最初の兆候を受け取った後、それらに連絡し、数時間以内にファイルをホワイトリストに登録しました。

人生を楽にするために、「危険な」機能を備えた別のファイルを作成しています。これにより、プログラムへの今後の変更で、ホワイトリストに登録するために再送信する必要がなくなります。

おそらく、短いphpファイルの読み取りは、コンパイルされたコードのリバースエンジニアリングよりも高速であるという事実によって、応答の速度が助けられました。それにもかかわらず、彼らは優しく、迅速で効果的でした。

13
Riccardo Zorn

AVプログラムは、既知の「悪い動作」のパターンのファイルを分析することによって機能します。

プログラムがポインターを逆参照している場合、200バイトを100バイトのバッファーに書き込むなどの場合、既知の攻撃の署名に似たコードを生成する可能性があります。 (ほとんどの攻撃はこの種のプログラミングエラーを悪用するため)

コードをデバッグし(Linuxの場合はvalgrindまたはefenceを試してください)、メモリが正しく処理されることを確認してください。

6
Gung Foo

この記事に興味があるかもしれません:

http://www.codeproject.com/Articles/71128/The-Case-of-Evil-WinMain

単純なCランタイムライブラリをリンクする小さなプログラムを扱うときに、ウイルス対策が文字通りどのように機能するかを示しています。

あなたができる唯一のことは、アンチウイルスメーカーに問題を知らせ、彼らからの公正な行動を期待することです。

3

Avastの設定に移動し、例外設定>アンチウイルスを追加できるエリアがあり、そのメニューを下にスクロールすると、Visual Studioのパスを参照できるEXCLUSIONSというタイトルのエリアがあります。 c:> john> documents> visualStudio2010> projects :::プロジェクトパスを選択すると、スキャン例外のリストに追加され、ファイルのテスト実行ができるはずです...他のメンバーからの提案により、同じメニューでディープスキャンも無効にしました

1
John Snow

avast「ファイルシステムシェルド」に移動し、「エキスパート設定」ボタンをクリックします。次に、左側のメニューから[除外]オプションを見つけてクリックします。ファイル除外リストにプロジェクトフォルダーを追加します。これは、危険なウイルスがプロジェクトフォルダーにクロールしない限り安全です。

0
prasad

アンチウイルスアカウント->設定->除外または同様のものに移動し、他の人が言及したファイルパスを入力する必要があります。私はavastでそれを行いました。 1回目は機能しなかったので、アンインストールしてインストールし、除外してから動作するようになりました。

0
Pablo

アバストには、サイバーキャプチャ/ディープスキャンと呼ばれる機能があります。

これがトラブルの原因です。

ヒューリスティックにも気にしません。

オーセンティケード署名がない場合、疑わしいと見なし、それをスキャンするためにavastに送信し、彼らが「大丈夫」と宣言するまで実行できません。彼らがそれを大丈夫だと宣言すると、それが彼らのバージョンと一致すれば、アバストの他のすべては安全にそれを実行できます。

0
Chuck Cochems

最近、アプリケーションの一部が実行されないという問題に遭遇しました。それらは(ウィンドウの下に)プロセスとして表示されますが、タスクマネージャー内のアプリケーションタブの下には表示されません。通常、プロセスのメモリサイズは約120Kであり、複数のプロセスが存在する場合がありました。

犯人はアバストディープスクリーンです。アバストから:「DeepScreenテクノロジーにより、アバストは未知のファイルが実行されたときにリアルタイムの決定を行うことができます」。

私の場合、Matlabは他のアプリケーションと同様にブロックされました。

アプリケーションをブロックしているというアバストの兆候はなく、「アバストの削除!」上記のコメントは非常に適切です。

0
vsstage

上記のコメントは、「ポインターを逆参照している場合」に言及しています。 CまたはC++を使用している場合、それがプログラムの動作です。

また、carpetsmokerがあなた自身のAvast設定を修正することは役に立たないと言っているように、それはあなたのソフトウェアをダウンロードしたいがAvastにspされているすべての人々です。

0
Nick Greenwood