おつかれさまです。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指定しているので固定値なんですが、
ノートンもそこまでは見てくれてないみたいです。
とりあえず原因が解かって良かったです。