ウィルス検知

おつかれさまです。tomです。

ここ最近 Vistual Studio 2012 を使用して、C#にてGUIのプログラムを作成していたのですが、
ある時から、ノートンが
「プログラムがコンピュータ上で疑わしい動作をしていました。このプログラムは削除されました。」
とウィルス検知とされてしまうようになってしまいました。
信頼できるプログラムとして登録すれば問題ないのですが、
特に特別な処理はしていないのに、と思い原因を調査しました。

二重起動防止のため、Mutexクラスを作成している時に、発生していることが解かりました。

static class Program
{
///
/// アプリケーションのメイン エントリ ポイントです。
/// 

[STAThread]
static void Main()
{
// Mutexクラス作成
//using (System.Threading.Mutex hMutex

// A: 問題なし
// = new System.Threading.Mutex(false, Application.ProductName))
// B: こちらだとウィルス検知される
// = new System.Threading.Mutex(false, g_mtx_name))
// C: 問題なし
// = new System.Threading.Mutex(false, ”ProgramName”))
{
…

///
アプリ名
public const string g_mtx_name = "ProgramName";

上記のソース上だと、「B」だけがウィルス検知されます。

どうやら、Mutexクラスの作成時の名称を 外部からの変数を使用すると、
「疑わしい動き」
と扱われてしまうようです。
変数ですが、const指定しているので固定値なんですが、
ノートンもそこまでは見てくれてないみたいです。

とりあえず原因が解かって良かったです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です