powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
7 сообщений из 7, страница 1 из 1
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39180466
D.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Есть простое консольное приложение, которое тупо следит за состоянием здоровья другого приложения, и если то зависло - посылает емейл, и пытается убить/перезапустить процесс.
Вот код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Mail;
using System.Net.Mime;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace SSHealthService
{
    class Program
    {
        const Int32 SW_MINIMIZE = 6;

        [DllImport("Kernel32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
        private static extern IntPtr GetConsoleWindow();

        [DllImport("User32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool ShowWindow([In] IntPtr hWnd, [In] Int32 nCmdShow);

        private static void MinimizeConsoleWindow()
        {
            IntPtr hWndConsole = GetConsoleWindow();
            ShowWindow(hWndConsole, SW_MINIMIZE);
        }

        public static bool IsSSexists(Process[] prs)
        {
            bool bSSFound = false;
            foreach (Process pr in prs)
            {
                if (pr.ProcessName == "SS")
                {
                    bSSFound = true;
                    break;
                }
            }            

            return bSSFound;
        }
        static void Main(string[] args)
        {
            MinimizeConsoleWindow();

            Process[] prs = Process.GetProcesses();
            string basePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
            basePath = System.IO.Path.GetDirectoryName(basePath);

            int hangCatches = 0;
            while (IsSSexists(prs))
            {
                foreach (Process pr in prs)
                {
                    if (pr.ProcessName == "SS" && !pr.Responding)
                    {
                        hangCatches++;

                        if (hangCatches < 3)
                            continue;

                        hangCatches = 0;

                        try
                        {
                            Console.WriteLine("{0}: Detected SS hang, emailing...", System.DateTime.Now);

                            SmtpClient client = new SmtpClient();
                            client.Port = 587;
                            client.Host = "smtp-mail.outlook.com";
                            client.EnableSsl = true;
                            client.Timeout = 15000;
                            client.DeliveryMethod = SmtpDeliveryMethod.Network;
                            client.UseDefaultCredentials = false;
                            client.Credentials = new System.Net.NetworkCredential("...@outlook.com", "...");

                            MailMessage mm = new MailMessage("no-reply@xxx.com", "xxx@yyy.com", "SS Do Not Respond", "Health Service has been likely restarted it fine, but still it's better to check it out just to be sure whether everything is fine.");
                            mm.BodyEncoding = UTF8Encoding.UTF8;
                            //mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

                            try
                            {
                                client.Send(mm);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Email sending FUCK UP: {0}", e.Message);
                            }
                        
                            // -------

                            Console.WriteLine("{0}: Trying to kill the process", System.DateTime.Now);
                            pr.Kill();
                            Console.WriteLine("{0}: Process killed", System.DateTime.Now);

                            Thread.Sleep(1000);
                            var process = new Process
                            {
                                StartInfo = new ProcessStartInfo
                                {
                                    FileName = System.IO.Path.Combine(basePath, @"SS.exe")
                                }
                            };
                            Console.WriteLine("{0}: Trying to restart the process", System.DateTime.Now);
                            if (process.Start())
                                Console.WriteLine("{0}: SS restarted fine", System.DateTime.Now);

                            Thread.Sleep(1000);
                        }
                        catch
                        {
                        }
                    }
                }

                prs = Process.GetProcesses();
                Thread.Sleep(1000);
            }
        }
    }
}



Но вот проблема, BitDefender (антивирус такой, самый популярный [в штатах] вроде как) блочит этот мой консольный ехешник, закинул его в вирустотал, тоже ничо хорошего - https://www.virustotal.com/en/file/d47f697af559549ad97ff54308f2fd063bcb647f8bafb3a8ae2e5d659f1d6619/analysis/1456417972/
Непойму, что у меня там трояновского в коде такого. При этом сам ехешник ничем не заражён (в том смысле _у меня_ комп ничем не заражен)
Помогите пожалуйста решить проблему.
При этом сам код работает прекрасно. И потому мне сложно понять, что нужно переделать в рабочем коде, чтобы переработанный вариант тоже работал и не определялся как false-positive антивирусником (хотя бы конкретно BitDefender'ом, на остальные пофик)
...
Рейтинг: 0 / 0
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39180501
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй разработчикам антивируса написать. Бывает что сигнатура совпала с каким-то трояном вот и заблокировали.
Только прежде чем писать доведи свою прогу до такого состояния, чтобы никакая правка ближайшее не потребовалась, т.е. если внесут в исключения, то после прогу лучше не менять.
...
Рейтинг: 0 / 0
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39180508
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Попробуйте убрать это
D.K.
Код: sql
1.
FUCK UP
...
Рейтинг: 0 / 0
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39180787
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D.K.Здравствуйте.
Есть простое консольное приложение, которое тупо следит за состоянием здоровья другого приложения, и если то зависло - посылает емейл, и пытается убить/перезапустить процесс.
Вот код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Mail;
using System.Net.Mime;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace SSHealthService
{
    class Program
    {
        const Int32 SW_MINIMIZE = 6;

        [DllImport("Kernel32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
        private static extern IntPtr GetConsoleWindow();

        [DllImport("User32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool ShowWindow([In] IntPtr hWnd, [In] Int32 nCmdShow);

        private static void MinimizeConsoleWindow()
        {
            IntPtr hWndConsole = GetConsoleWindow();
            ShowWindow(hWndConsole, SW_MINIMIZE);
        }

        public static bool IsSSexists(Process[] prs)
        {
            bool bSSFound = false;
            foreach (Process pr in prs)
            {
                if (pr.ProcessName == "SS")
                {
                    bSSFound = true;
                    break;
                }
            }            

            return bSSFound;
        }
        static void Main(string[] args)
        {
            MinimizeConsoleWindow();

            Process[] prs = Process.GetProcesses();
            string basePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
            basePath = System.IO.Path.GetDirectoryName(basePath);

            int hangCatches = 0;
            while (IsSSexists(prs))
            {
                foreach (Process pr in prs)
                {
                    if (pr.ProcessName == "SS" && !pr.Responding)
                    {
                        hangCatches++;

                        if (hangCatches < 3)
                            continue;

                        hangCatches = 0;

                        try
                        {
                            Console.WriteLine("{0}: Detected SS hang, emailing...", System.DateTime.Now);

                            SmtpClient client = new SmtpClient();
                            client.Port = 587;
                            client.Host = "smtp-mail.outlook.com";
                            client.EnableSsl = true;
                            client.Timeout = 15000;
                            client.DeliveryMethod = SmtpDeliveryMethod.Network;
                            client.UseDefaultCredentials = false;
                            client.Credentials = new System.Net.NetworkCredential("...@outlook.com", "...");

                            MailMessage mm = new MailMessage("no-reply@xxx.com", "xxx@yyy.com", "SS Do Not Respond", "Health Service has been likely restarted it fine, but still it's better to check it out just to be sure whether everything is fine.");
                            mm.BodyEncoding = UTF8Encoding.UTF8;
                            //mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

                            try
                            {
                                client.Send(mm);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Email sending FUCK UP: {0}", e.Message);
                            }
                        
                            // -------

                            Console.WriteLine("{0}: Trying to kill the process", System.DateTime.Now);
                            pr.Kill();
                            Console.WriteLine("{0}: Process killed", System.DateTime.Now);

                            Thread.Sleep(1000);
                            var process = new Process
                            {
                                StartInfo = new ProcessStartInfo
                                {
                                    FileName = System.IO.Path.Combine(basePath, @"SS.exe")
                                }
                            };
                            Console.WriteLine("{0}: Trying to restart the process", System.DateTime.Now);
                            if (process.Start())
                                Console.WriteLine("{0}: SS restarted fine", System.DateTime.Now);

                            Thread.Sleep(1000);
                        }
                        catch
                        {
                        }
                    }
                }

                prs = Process.GetProcesses();
                Thread.Sleep(1000);
            }
        }
    }
}




Но вот проблема, BitDefender (антивирус такой, самый популярный [в штатах] вроде как) блочит этот мой консольный ехешник, закинул его в вирустотал, тоже ничо хорошего - https://www.virustotal.com/en/file/d47f697af559549ad97ff54308f2fd063bcb647f8bafb3a8ae2e5d659f1d6619/analysis/1456417972/
Непойму, что у меня там трояновского в коде такого. При этом сам ехешник ничем не заражён (в том смысле _у меня_ комп ничем не заражен)
Помогите пожалуйста решить проблему.
При этом сам код работает прекрасно. И потому мне сложно понять, что нужно переделать в рабочем коде, чтобы переработанный вариант тоже работал и не определялся как false-positive антивирусником (хотя бы конкретно BitDefender'ом, на остальные пофик)
...
Рейтинг: 0 / 0
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39180788
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, сорри, случайно процитировал.
Хотел сказать, что для оформления кода на c# надо использовать тэг SRC C#, а не sql
...
Рейтинг: 0 / 0
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39180793
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Попробуйте убрать это
D.K.
Код: sql
1.
FUCK UP





xxx.com - тож не сахар :)
...
Рейтинг: 0 / 0
BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
    #39187216
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилCat2Попробуйте убрать это
пропущено...



xxx.com - тож не сахар :)

не сахар, естественно, сейчас проверил - там такое
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / BitDefender блочит скромное бедное консольное приложение, что ему не нравится в коде?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]