Почему антивирус Касперского не позволяет моей программе захватывать выходные данные дочернего процесса? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть программа на C #, которая запускает дочерний процесс и записывает его вывод в строку.Это работает на большинстве компьютеров Windows (Windows 7 и новее), но при наличии антивируса Касперского Process.StandardOutput.ReadToEnd() возвращает null.Там нет кода ошибки или исключения.Дочерний процесс является доверенным консольным приложением.Процесс запускается 5 или 6 секунд.

Код для запуска дочернего процесса выглядит следующим образом:

ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = "icao.exe";
psi.Arguments = im_path + "image.jpg";

Process p = new Process();
p.StartInfo = psi;

p.Start();

string output = p.StandardOutput.ReadToEnd();
string error = p.StandardError.ReadToEnd();

MessageBox.Show(error);

p.WaitForExit();
int exitCode = p.ExitCode; 

MessageBox.Show(exitCode+"");

Почему output в конечном итоге становится null, когда Kaspersky установленнет?

1 Ответ

0 голосов
/ 23 октября 2018

Я предполагаю, что эвристики Касперского видят, что ваша программа хочет запустить другой исполняемый файл.Поскольку ничего не говорит Kaspersky о том, что это нормально, он помечает вашу программу как возможное вредоносное ПО, потому что он хочет взаимодействовать с другими программами, разработанными другими компаниями.Если вы можете, я бы попробовал белый список вашей программы с помощью Kaspersky и посмотреть, решит ли это вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...