トップページ > 記事閲覧
バージョン3.20以降でウィルス誤検出
名前:sereparu 日時: 2020/08/16 18:01

いつもお世話になっております。 VisualStudio2019 でバージョン3.20以降のDXライブラリを使用したプロジェクトで ビルドのプラットフォームを「x86」でReleaseビルドして実行した場合に限り 作成されたexeファイルがセキュリティソフトにウィルスと認識されて削除されてしまいます。 (ウィルス名:Real Protect-PEE!CC1E52898035) プラットフォームを「x64」でReleaseビルして実行した場合は、ウィルスと認識されませんでした。 また、Debugビルドの場合は、プラットフォームが「x86」でも「x64」でもウィルスと認識されませんでした。 プロジェクトの設定はDXライブラリの使い方の解説にある通りに作成して ソースコードも上記解説に載っているサンプルの「DrawPixel.cpp」だけを追加した状態です。 また、バージョンが3.19f以前のDXライブラリを使用した場合は 「x86」でReleaseビルドして実行してもウィルスと認識されませんでした。 過去ログで、DXライブラリがスパムウェアやランサムウェアとして誤検出されることについて 「DXライブラリがプログラム内部にバイナリデータを持っていることが大きな原因」とありましたが それと同じ原因でしょうか? (ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=4607) セキュリティソフトの誤認識の問題だと思うので、対処は難しいかもしれませんが Releaseビルド時は「x64」でビルドする、またはバージョン3.19f以前のDXライブラリを使う、など以外で こちらで対応できることはあるでしょうか? ・開発環境 VisualStudio2019 Community DXライブラリバージョン:3.21f OS:Windows10(64bit) Home セキュリティソフト:McAfee リブセーフ(ver16.0)
メンテ

Page: 1 |

Re: バージョン3.20以降でウィルス誤検出 ( No.1 )
名前:ギウ 日時:2020/08/17 07:40

(心の声:セキュリティ系ソフト自体が一番厄介なウイルスですよね…)
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.2 )
名前:管理人 日時:2020/08/17 23:03

> 過去ログで、DXライブラリがスパムウェアやランサムウェアとして誤検出されることについて > 「DXライブラリがプログラム内部にバイナリデータを持っていることが大きな原因」とありましたが > それと同じ原因でしょうか? 原因は少し異なるかもしれません、以前までは圧縮したバイナリデータをそのまま プログラム内部に持っていたので様々なセキュリティソフトでウイルスの誤検出が 発生しましたが、バイナリデータをメールの添付ファイルと同じ Base64 という テキストで表現できる形に変更したところ、ほぼ誤検出が無くなりました なので今回はバイナリデータではないどこかのコードがウイルス扱いされた可能性が高いです > セキュリティソフトの誤認識の問題だと思うので、対処は難しいかもしれませんが > Releaseビルド時は「x64」でビルドする、またはバージョン3.19f以前のDXライブラリを使う、など以外で > こちらで対応できることはあるでしょうか? 確実に対処できるかはわかりませんが、一応試せるものはあります… VisualStudio 2019 で使用するDXライブラリは VisualStudio 2015 でコンパイルしたものなので、 こちら↓の『DXライブラリのソースをまるごとコンパイルするプロジェクト』を参考に https://dxlib.xsrv.jp/temp/DxLibSourceTest_WithUseCLib.zip sereparuさんが開発中のプロジェクトでDXライブラリのソースをまるごとコンパイルして使用するようにすれば、 コンパイルラが VisualStudio 2015 のものから VisualStudio 2019 のものに変わり、 作成される実行ファイルの中身も機械語レベルでは変化するので、McAfreeにもウイルスとして 誤検出されなくなるかもしれません ( ただ、今度は別のセキュリティソフトで誤検出されるという可能性はありますが… )
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.3 )
名前:sereparu 日時:2020/08/18 01:35

管理人さん いつも迅速なご回答、誠にありがとうございます。 「DxLibSourceTest_WithUseCLib」のプロジェクトに開発中のソースをコピーして DXライブラリごとコンパイルしてみたところ、「x86」のReleaseビルド時でも ウィルスと認識されないことを確認しました。 なので、管理人さんのご指摘の通り、現在公開されているDXライブラリが VisualStudio 2015 でコンパイルされていることが原因なのではないかと思います。 とりあえずこの方法で対応していこうと思いますが これまで「3Dモデル機能&ソフトウエアレンダリング機能無しパッケージ」版の DXライブラリを使用していたので、「DxLibSourceTest_WithUseCLib」のソースを使用すると exeファイルのサイズが大きくなってしまいます。 なので、大変お手数ですが、次回のバージョン以降(もしくは現バージョン)で VisualStudio 2019 でコンパイルされたDXライブラリを公開していただくことは可能でしょうか?
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.4 )
名前:sereparu 日時:2020/08/18 02:07

すみません。 ウィルスと認識される原因ですが、別の原因があることが分かりました。 これまで開発中のプロジェクトのフォルダはDドライブに保存していたのですが プロジェクトをCドライブに移動したところ、「x86」でReleaseビルドしても ウィルスと認識されなくなりました。 なので、プロジェクトをどこに作成するかの問題のようです。 VisualStudio 2019 はCドライブにインストールして プロジェクトをDドライブに作成していたのが問題だったかもしれません。 とりあえず、プロジェクトをCドライブに作成するようにして対応したいと思います。 こちらの開発環境の問題でお騒がせしてしまい申し訳ありません。 ただ、先ほど検証に使用した「DxLibSourceTest_WithUseCLib」のプロジェクトは Cドライブ、Dドライブどちらで作成しても、ウィルスと認識されなかったので VisualStudio 2015、2019 のどちらでコンパイルされたか、ということも一応関係はあると思います。
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.5 )
名前:管理人 日時:2020/08/19 00:28

> これまで開発中のプロジェクトのフォルダはDドライブに保存していたのですが > プロジェクトをCドライブに移動したところ、「x86」でReleaseビルドしても > ウィルスと認識されなくなりました。 なんと… (・・;; > ただ、先ほど検証に使用した「DxLibSourceTest_WithUseCLib」のプロジェクトは > Cドライブ、Dドライブどちらで作成しても、ウィルスと認識されなかったので > VisualStudio 2015、2019 のどちらでコンパイルされたか、ということも一応関係はあると思います。 ご情報ありがとうございます 恐らく来年にはまた VisualStudio の新しいバージョンが出ると思いますので、VisualStudio 2015 で コンパイルした libファイルが次期バージョンの VisualStudio で使用できなかったら 次期バージョンでコンパイルした libファイルを追加したいと思います ( 『プロジェクトに追加すべきファイル_VC用』の容量が既に 617MB なので、なるべく同梱する  libファイルを増やしたくなかったりします (・・;; )
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.6 )
名前:sereparu(解決) 日時:2020/08/19 01:12

> 恐らく来年にはまた VisualStudio の新しいバージョンが出ると思いますので、VisualStudio 2015 で > コンパイルした libファイルが次期バージョンの VisualStudio で使用できなかったら > 次期バージョンでコンパイルした libファイルを追加したいと思います > ( 『プロジェクトに追加すべきファイル_VC用』の容量が既に 617MB なので、なるべく同梱する >  libファイルを増やしたくなかったりします (・・;; ) 承知しました。ありがとうございます。 libファイルの容量が増えてしまうのも問題ですね。 そもそも VisualStudio のコンパイルのバージョンが原因かどうかも不明なので なるべく現バージョンのDXライブラリを使っていこうと思います。 一応の解決策は見つかったので解決といたします。 ありがとうございました。
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.7 )
名前:sereparu 日時:2021/04/02 01:21

管理人さん すみません。 本件について、ずいぶん前に解決済みと報告しましたが 実際は解決していないことに最近気付きました。 「プロジェクトをCドライブに移動したらウィルスと誤認識されなくなった」と書きましたが これは勘違いでした。 誤った情報を書いてしまい申し訳ありません。 軽量化パッケージを使用した場合は、プログラムを実行した瞬間に ウィルス判定されますが、通常版のパッケージや DXライブラリのソースをまるごとコンパイルするプロジェクトで作成した場合は プログラムを一定時間実行すると、時間差でウィルス判定されるようです。 プログラム実行直後にウィルス判定されなかったので 解決したと勘違いしていました。 最近のスレッドで「Debug」「x86」のビルドでウィルス判定される件について 「x86版ではインラインアセンブラでコードを組んでいる箇所があった」ことが 原因のものがありましたが、Release ビルドでも同様の原因は考えられるでしょうか? ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5103 既に書きましたが、3.19f 以前ではウィルス判定されないので 3.19f から 3.20 に変わるタイミングで、上記のような原因に当たる修正が 加わった可能性がないでしょうか? ライブラリの更新履歴を見ると、3.20 で大きく変わった変更は 「DXアーカイブファイルの仕様を変更」がありますが その辺りが関係しているかもしれません。 お手すきの際で構いませんので、上記の仕様変更に関して 何処か問題がなかったか、ご確認いただけますでしょうか?
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.8 )
名前:管理人 日時:2021/04/02 02:17

> 最近のスレッドで「Debug」「x86」のビルドでウィルス判定される件について > 「x86版ではインラインアセンブラでコードを組んでいる箇所があった」ことが > 原因のものがありましたが、Release ビルドでも同様の原因は考えられるでしょうか? はい、Release か Debug かに関係なく x86 でしたら同様にインラインアセンブラが 原因になる可能性はあると思います まだインラインアセンブラを無効化した正式バージョンは公開していないのですが、 こちらの暫定最新版でもウイルス判定されてしまいますでしょうか? https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) > ライブラリの更新履歴を見ると、3.20 で大きく変わった変更は > 「DXアーカイブファイルの仕様を変更」がありますが > その辺りが関係しているかもしれません。 > > お手すきの際で構いませんので、上記の仕様変更に関して > 何処か問題がなかったか、ご確認いただけますでしょうか? 旧バージョンのDXAファイルがパスワードを掛けていても解析次第でパスワードを 知らなくても中身を見れてしまうというものだったので、それが出来ないように 仕様を変更しました それについては問題を解決するために変更を行ったので、特に問題となるようなコードは追加していません ただ、その変更で追加されたコードが誤判定の対象となっているのかもしれません ( HashCRC32 などのハッシュを計算するコードが『怪しいことをしているコード』と判定された、など )
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.9 )
名前:sereparu 日時:2021/04/02 14:52

管理人さん ご回答ありがとうございます。 暫定最新版でもウィルス判定されるので、インラインアセンブラが原因ではないようです。 やはりDXAファイルの仕様変更が原因かもしれません。 ただ、「x64」で Release ビルドした場合は、ウィルス判定されないので 「x86」のみの問題のようです。 バージョン 3.20 以降は旧バージョンの「DxaEncode.exe」で 作成したDXAファイルは使用できませんが、原因を追究するために 暫定的に、現在の最新版のソースでDXAファイルの仕様のみを 3.19f 以前に 戻せるよう仕様変更していただくことは可能でしょうか? (例えば、DXAファイルの仕様を 3.19f以前、3.20以後のどちらを使用するか 選択できるような関数を作る、など) 個人的に、DXAファイルを解析されて中身を見られることには抵抗はありません。 むしろ、ウィルスと判定されやすいことの方がリスクだと思っています。 一応、「x64」では問題ないので、優先度は低めです。 よろしくお願いいたします。
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.10 )
名前:管理人 日時:2021/04/03 02:09

> バージョン 3.20 以降は旧バージョンの「DxaEncode.exe」で > 作成したDXAファイルは使用できませんが、原因を追究するために > 暫定的に、現在の最新版のソースでDXAファイルの仕様のみを 3.19f 以前に > 戻せるよう仕様変更していただくことは可能でしょうか? > (例えば、DXAファイルの仕様を 3.19f以前、3.20以後のどちらを使用するか > 選択できるような関数を作る、など) 3.19以前のバージョンのDXアーカイブの暗号化はアメリカの輸出管理規制という法律に 抵触するというご指摘が以前あったので、関数で切り替える、という対応はできません ( 詳細はこちらをご覧ください ) < Android版:DXアーカイブの暗号化機能について > https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=4534 < DxLibのDxArchiveの暗号化する機能とExport Administration Regulations 輸出管理規則 > https://qiita.com/yumetodo/items/89af53d3cf8bc236de2f なので #define で旧仕様を使用する定義を有効にして、自前でDXライブラリのコードを コンパイルすれば旧仕様のDXアーカイブファイルのみ読み込めるようにできる、というような 対応でしたら可能です
メンテ
Re: バージョン3.20以降でウィルス誤検出 ( No.11 )
名前:sereparu 日時:2021/04/03 11:06

管理人さん ご回答ありがとうございます。 輸出管理規制の件、承知しました。 3.19以前の仕様は使わない方が良さそうですね。 「x64」でビルドするか、もしくは他の方法がないか検討してみます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存