Подтвердить что ты не робот

Мои программы блокируются антивирусом avast

Я программист-любитель, и я получаю отчаяние и безумство из-за большой проблемы: большинство моих программ блокируются антивирусом avast, а некоторые нет, и я не понимаю, почему. Чем больше я пытаюсь исследовать, тем меньше я понимаю, в чем проблема.

Я прошу вашу помощь найти решение, чтобы мои программы больше не блокировались или, по умолчанию, по крайней мере некоторые сильные подсказки, которые могли бы объяснить, почему это может быть так. В Интернете уже много тем. Однако большинство из них дают только поверхностные ответы: они просто объясняют, как антивирус работает с сигнатурами и эвристикой обнаружения, или заявляют, что вам просто нужно добавить оскорбительное приложение в белый список, не задавая никаких других вопросов. Хотя это, безусловно, правильно, это не приемлемые ответы в моем понимании, потому что я по-прежнему остаюсь с собственными программами, которые отказываются работать без какой-либо конкретной идеи, чтобы начать расследование.

Прежде всего, единственным антивирусом, который блокирует мои программы, является avast 7.x. Никакой другой антивирус не видит неудобства для запуска моего программного обеспечения. Во-вторых, у меня нет самого аваста; он устанавливается на другом компьютере. У меня есть окна 7, у него есть Windows XP. Я полностью уверен, что проблема только в avast: когда она временно отключена или если программа добавлена ​​в ее белый список, все работает хорошо, как ожидалось.

В программе есть три проблемы:

  • Текстовый редактор с целью заменить блокнот Windows, сохраняя простой, эффективный и настраиваемый
  • Маленький любительский аудиоплеер очень прост в использовании.
  • Клиентская платформа онлайн-игровой платформы, в настоящее время насчитывающая более 1000 пользователей

Первый из них с открытым исходным кодом, я могу при необходимости указать ссылку на исполняемый файл и исходный код. Два других являются закрытыми исходными кодами, но доступны для использования, я могу дать ссылку на исполняемый файл только текущей версии. единственные очевидные общие вещи между этими тремя программами - это я как разработчик, мой компьютер с Windows 7, который их скомпилировал, семейство компиляторов, которое является MinGW/GCC, и все они являются графическими приложениями win32 без каких-либо фреймворков (без MFC, без WPF, нет QT, WXWidgets или что-то еще, просто чистые приложения Win32/C GUI)

Вот мои наблюдения и хотя до сих пор:

  • Блокируются версии 1.1, 1.2.1 и 1.3 моего текстового редактора. Они находятся в C не С++, были скомпилированы с GCC 3.4.5 в режиме unicode и распространяются в переносных zip файлах (переносимыми, я просто не имею в виду ни один установщик и не требуется установка).
  • Версия 1.4.1 того же текстового редактора не блокируется. Он был скомпилирован с GCC 4.7.2, все еще в C, а не С++, все еще в режиме Unicode и все еще как переносимый zip файл.
  • Все версии моего аудиоплеера заблокированы; они находятся на С++ с включенными функциями 0x, были скомпилированы GCC 4.7.2 в режиме ANSI, распространены в переносном zip файле.
  • Текущая версия моей игры 1.7.2 не заблокирована. он находится в C, был скомпилирован с GCC 3.4.5 в режиме ANSI и распространяется как инсталлятор инсталляции 5.
  • Новая версия моей игры 2.0.0, которая в настоящее время является частной бета-версией, заблокирована. Он находится на С++ с включенными функциями 0x, скомпилирован с GCC 4.7.2 в режиме Unicode. Я поделился им с моей частной группой по тестированию бета-тестирования как zip файлы в частной папке Dropbox

Проблема вызвана avast 7.x auto-sandbox. Следующее происходит, когда вы пытаетесь запустить программу, не понравившуюся avast:

  • Пользователь дважды щелкнул или нажал кнопку ввода в исполняемом файле
  • Программа запускается, но почти мгновенно и принудительно разбивается avast
  • Появляется всплывающее окно и говорит что-то вроде: avast помещает эту программу в свою песочницу, потому что его репутация низкая
  • Если один щелчок по кнопке продолжения всплывающего окна, выполнение программы перезапускается и нормально работает
  • Если вы не нажмете кнопку "Продолжить", Windows Explorer замерзает, исполняемый файл остается в диспетчере задач и неизменно использует 76 КБ ОЗУ, будучи невозможным убить; наконец, примерно через 5 минут, окно explorer размораживается, программа перезапускается и работает нормально

Это неприемлемо. новички пользователей моей программы, особенно игры, не знают, как работает антивирус; не знаю, как поместить его в белый список и почему он разблокирует его; не знаю, как изменить настройки своего антивируса; если они видят всплывающее окно, не поймут его и в конечном итоге будут бояться или разочароваться, потому что они не могут играть, не зная почему; и если они не видят всплывающее окно, я не могу ожидать, что они ожидают 5 минут с помощью компьютера с половиной замораживания. каждый раз, когда они хотят играть.

Оттуда я сделал следующие выводы:

  • Моя машина сама не заражена и ни один вирус не загружается в исполняемые файлы, которые я распространяю; в противном случае все последние программы будут заблокированы; У меня есть два, которые (мой плеер и новая версия моей игры), а один нет (последняя версия моего текстового редактора). 1.7.2 игры составлен в марте 2012 года, а 1.4.1 текстового редактора - с октября 2012 года.
  • Самая новая версия GCC 4.7.2 не является причиной, по тем же соображениям; то же самое для компиляции ANSI vs unicode.
  • Среда выполнения minGW С++, распространяемая как связанная с авто связью DLL, обязательная во всех приложениях на С++, скомпилированных с GCC 4.7.2, вероятно, не является причиной, потому что многие известные программы используют ее; и мой текстовый редактор заблокирован и находится на C, и поэтому не использует его.
  • Мой аудиоплеер и моя игра имеют общую библиотеку аудио; это позже не является причиной, потому что версия 1.7.2 моей игры работает, а новейшая частная бета-версия - нет. И, конечно же, эта аудио-библиотека также используется во многих других известных или менее известных приложениях, которые не блокируются.
  • Как игрок, так и игра получают доступ к сети с помощью winsock; поэтому по тем же соображениям это не причина, а
  • Если это действительно была репутация avast, почему версия 1.4.1 моего текстового редактора, которая не заблокирована, была загружена только в 70 раз, а версия 1.3, которая заблокирована, была загружена более 300 раз? Это выглядит совершенно нелогично. Достаточно ли 70 пользователей, чтобы претендовать на репутацию? Это больше у 300 пользователей? Я действительно так не думаю... возможно, нужна критическая масса десятков тысяч пользователей.

Кроме того, я также считаю, что тот факт, что я распространяю свои программы в виде переносимых zip файлов, может быть причиной блокировки avast, и, наоборот, тот факт, что программа хорошо установлена ​​в файлы программы, может быть причиной доверять ему больше. Поэтому я сделал простой опыт: я собрал новый инсталлятор inno-setup 5 для бета-версии 2.0.0 моей игры, а также один для версии 1.3 моего текстового редактора и обнаружил, что сами установщики были заблокированы!

Я сделал еще один опыт с моим другом, где я попытался найти именно то место, где сбой программ, основанный на использовании MessageBeep (MessageBox также заблокирован!). Я ничего не заметил. Игра блокируется, когда SetDlgItemText вызывается в первый раз в диалоговом окне входа в систему, но если я удалю весь SetDlgItemText, он будет заблокирован дальше. В текстовом редакторе он блокируется при заполнении строки меню...

Мой вывод: есть что-то, что avast не нравится в новой версии моей игры, в старых версиях моего текстового редактора и в моем аудиоплеере. Что-то, что отсутствует в новейшей версии моего текстового редактора. Что бы это могло быть? У вас есть какая-то подсказка? У вас есть только идея о том, как я могу найти, что это такое, чтобы я мог надеяться исправить это? Есть ли только способ проанализировать такую ​​проблему, или мир дыр, ввернутый avast?

Обратите внимание, что я один человек, а не компания, все эти программы могут свободно использовать, я не платил никакой IDE для их разработки, и я не плачу пользователям, когда они их используют, поэтому я предположим, что сертификат, вероятно, вообще не доступен. Более того, я не знаю, является ли это истинным решением, как подписать приложение, скомпилированное с помощью GCC, и я действительно не хочу переключаться на "usine a gaz", как MSVC. Я бы предпочел бы сильно забыть этот вариант, если есть другое решение, даже очень грязное.

Спасибо, что прочитали.

4b9b3361

Ответ 1

Хорошим способом повысить уверенность всего программного обеспечения AV является цифровая подпись вашего кода. Thawte имеет самые дешевые общепризнанные сертификаты, начинающиеся ниже 100 €/год.

- обновить после комментария @Herr_Doktor почти два года спустя -

Недавно я столкнулся с новой ситуацией, когда подписание кода не было возможным - я пишу open source для Joomla в php. После того, как я получил первые показания, что Avast пометил мой файл как (ложный) положительный результат, я связался с ними, и они перенаправили мой файл в течение нескольких часов.

Чтобы облегчить мою жизнь, я создаю отдельный файл с предположительно "опасной" функцией, поэтому будущие изменения в программе не потребуют повторной отправки ее для белого списка.

Вероятно, скорости в их ответе помог тот факт, что чтение короткого php файла происходит быстрее, чем обратный инженерный скомпилированный код; тем не менее они были добрыми, быстрыми и эффективными.

Ответ 2

AV-программы работают, анализируя файлы для шаблонов известного "плохого поведения".

Если ваша программа является указателем разыменования, записывая 200 байт в буфер 100 байт или аналогичный, скорее всего, вы создадите код, похожий на подпись известной атаки. (так как большинство атак используют эти ошибки программирования)

Вы должны отлаживать свой код (если в linux попробуйте valgrind или efence) и убедитесь, что память обработана правильно.

Ответ 3

Вас может заинтересовать эта статья:

http://www.codeproject.com/Articles/71128/The-Case-of-Evil-WinMain

Это иллюстрирует, как антивирус может буквально сходить с ума при работе с небольшими программами, связывающими простую библиотеку времени выполнения C.

Единственное, что вы можете сделать, это сигнализировать о проблемах для разработчиков антивирусов и надеяться на справедливое поведение от них.

Ответ 4

Хорошо, придумайте это, перейдите к вашим настройкам avast, и есть область, где вы можете добавить настройки исключений > антивирус, а затем прокрутите вниз по этому меню, и есть область под названием "ИСКЛЮЧЕНИЯ", где вы можете перейти на свой визуальный студийный путь, то есть. C: > джон > документы > visualStudio2010 > проекты: выберите свой путь к проекту, и он добавит его в список исключений сканирования, и вы сможете протестировать свои файлы... хорошо работали для меня. Я также отключил глубокое сканирование в том же меню из-за предложения другого участника

Ответ 5

Большинство антивирусных программ предоставляют варианты включения исключения.

Перейдите к настройке антивируса и добавьте папку с файлами c или c++ в исключение.

enter image description here

Ответ 6

перейдите в avast 'file system sheild' и нажмите кнопку "Expert settings". затем найдите и нажмите кнопку "Исключения" в меню слева. Добавьте свой проект foldr в список исключений файлов. Это безопасно, если опасные вирусы не сканируются в вашу папку проекта без ур-знака: P

Ответ 7

Недавно я столкнулся с проблемой, когда некоторые из моих приложений не запускались. Они будут отображаться как процессы (под окнами), но никогда не под вкладкой приложения в диспетчере задач. Процессы обычно имели размер памяти около 120 тыс., А иногда бывало несколько процессов.

Преступником является Avast DeepScreen. От Avast: "Технология DeepScreen позволяет Avast принимать решения в режиме реального времени, когда неизвестный файл выполняется".

В моем случае Matlab был заблокирован, как и некоторые другие приложения.

Из Avast не было никаких указаний на то, что он блокировал приложение, создавая "Remove Avast!". комментарий выше вполне уместен.

Ответ 8

Вам нужно перейти к своим антивирусам → настройкам → исключениям или что-то подобное и ввести путь к файлу, как упоминалось другими. Я сделал это с помощью avast. В первый раз вокруг него не работало, поэтому я удаляю и устанавливаю, а затем перешел к исключениям, и теперь он работает.

Ответ 9

Приведенный выше комментарий относится к "если вы указали ссылки на ссылки". Если вы используете C или С++, что ваша программа будет делать - то, как они работают.

И так как carpetsmoker говорит, что не нужно исправлять собственные настройки Avast, это все люди, которые хотят загрузить ваше программное обеспечение, но напуганы Avast.

Ответ 10

Avast имеет функцию под названием кибер-захват/глубокое сканирование.

Это то, что вызывает ваши проблемы.

Это даже не беспокоит эвристики.

Если нет подписи authenticode, она сочтет ее подозрительной и отправит ее в avast для сканирования, и пока они не объявят ее "хорошо, вы не сможете ее запустить. Как только они заявили, что все в порядке, все остальные с avast могут безопасно запустить его, если это соответствует их версии.