none
SetPixelFormat 関数で、フレッツ・ウイルスクリアが不正変更(NtUserSetWindowsHookEx)とプログラムを停止削除してしまいます。

    質問

  • VS2013、Windows10
    プログラムは C++で作られた OpenGLを利用した ActiveX で、C#のExe から呼んでいます。

    ocxプログラム内の
    int Cxxx::OnCreate(LPCREATESTRUCT lpCreateStruct) の中の
    BOOL success = SetPixelFormat(clientDC.m_hDC, pixelFormat, &pfd) で発生します。

    対処の仕方をお願いします。
    2018年1月11日 1:46

すべての返信

  • 作成されたプログラムを実行すると、ウィルスセキュリティソフトにより不正なプログラムと誤判定されプログラムが停止&削除されてしまうということでしょうか?

    そのプログラムには署名はついていますでしょうか?コードサイニング証明書にて署名を付けることによりセキュリティソフトの誤判定を回避できることもあるようです。

    あとは、基本的には、ウイルス対策ソフトウェアベンダーにプログラムが誤判定されているという旨を伝え、対応をお願いすることになるかと思います。

    2018年1月11日 2:46
  • C#のスタートフォームの実行では問題ありません。
    C#のその他のフォームの実行も問題ありません。
    また、MFCのDLLを作り利用していますが、問題ありません。

    ActiveXのocx を呼び出したタイミングで、
    ウィルスセキュリティソフトにより不正なプログラムと
    誤判定されプログラムが停止&削除されてしまいます。

    >そのプログラムには署名はついていますでしょうか?
    ついていません。

    > コードサイニング証明書にて署名を付けることによりセキュリティソフトの
    > 誤判定を回避できることもあるようです。
    コードサイニング証明書は C#フォームプロジェクトのプロパティにある”署名”のことですか?
    C++ の ActiveX の方のプロジェクトのプロパティには”署名”は見当たりませんが、こちらは不要ですか?
    2018年1月11日 5:27
  • コードサイニング証明書は C#フォームプロジェクトのプロパティにある”署名”のことですか?
    C++ の ActiveX の方のプロジェクトのプロパティには”署名”は見当たりませんが、こちらは不要ですか?

    私が指していた署名は、開発用の自己署名証明書の署名ではなく、認証局により有償で発行された正式な証明書の署名ですが、持っていない場合は、もしかすると自己署名証明書の署名でもプログラムの実行環境(ローカルのみ)において、セキュリティソフトの誤判定を回避できる可能性があるかもしれません(あくまで可能性です)。署名が付いているかどうかの確認方法は、エクスプローラーで exe、ocx、dll などのファイルを右クリックしてプロパティを開き、「デジタル署名」タブの中の署名一覧で署名の詳細を開いて、「このデジタル署名は問題ありません。」と表示されていれば OK です。セキュリティソフトのチェック方法にもよるかと思いますが、C++ のプログラムにも署名を付けておくのがよいでしょう。署名の付け方について、ここで詳しく説明することが困難ですが、以下のサイトに手順が詳しく載っておりました。参考になりますでしょうか。

    https://www.avnet.co.jp/maker/McAfee/technical/updaters03.aspx

    2018年1月11日 7:36