Я создал приложение автообновления, которое распределяется 100 с пользователей.
Утилита автоматического обновления отмечается 55% антивирусов на virustotal (ссылка).
Мое приложение было создано в Delphi 7. Большинство флагов говорит, что это - Универсальный троянец/вредоносное программное обеспечение, очевидно, программное обеспечение не является на самом деле вредоносным программным обеспечением (я - единственный с доступом исходного кода и доступом к серверу, который размещает его), но это заставляет много пользователей быть
У кого-либо есть какая-либо идея, как я могу остановить то, чтобы это было неправильно отмеченным?
Если, как вы заявили, приложения с пустыми формами получают оценку как вирус, вы вполне можете быть заражены вирусом Delphi. Подробнее об этой ... штуке:
Кроме того, вы используете Delphi 7, который является целью этого вируса (насколько мне известно, не все версии Delphi).
Я думаю, у вас есть два варианта:
a) Отправьте свою программу Auto-Update в качестве ложного положения для всех этих компаний (и сделать это для любых новых версий, которые обнаружены). Убедитесь, что для них легче, обеспечивая правильность ваших метаданных и подписания.
B) Разделить функциональность, поэтому у вас нет одной программы Delphi, которая загружает файлы из Интернета, перезаписывает файлы и файлы исправлений.
Delphi 2007: New Приложение VCL
Скомпилируйте, ничего не меняя, и некоторые антивирусные пакеты сообщат полученный EXE как потенциальный вирус / троян. Измените имя основной формы или добавьте вторую форму в проект и т. Д., И предупреждения антивируса исчезнут. Отмените изменения, и они вернутся (так что это не порт D2007 «Delphi Upgrade Incentive Virus»).
Я предполагаю, что кто-то когда-то где-то написал вирус / троян / вредоносную программу с помощью Delphi и связанные с этим сигнатуры / эвристика, а теперь, к сожалению, иногда сталкиваются с другими приложениями Delphi.
AV программное обеспечение также проверяет Таблицу Импорта на наличие распространенного API, используемого в вирусах, хотя я не вижу никакого API, который мог бы вызвать AV программное обеспечение в отчете о сканировании.
Коммутаторы оптимизированы на многих языках для определенных контекстов. Часто по возможности они создают таблицу прыжков или даже хеш-таблицу. На самом деле, когда возможно использовать коммутатор, он, скорее всего, будет работать лучше, чем (логически) тот же код, использующий if/else.
-121--3204855-Это помогает читаемости - на первый взгляд, я знаю, что решение, для которого должен выполняться блок кода, основано на различных значениях одной и той же переменной.
-121--3204845-Я бы попытался переформатировать программу, изменить имена, изменить порядок процедур и методов, некоторые структуры программы, удалить, заменить и добавить код.
Отправьте каждое изменение в VirusTotal.
В конечном итоге вы можете обнаружить причину проблемы.
См. Мой пост на У кого-либо проблемы с проблем с безопасностью Интернета Delphi 2010 и Norton . В последнее время я тоже получал ошибки сонара с помощью Compileted программы Delphi 7 (и по программам, составленными другими компиляторами).
Я сообщил об этом Norton, выглядеть также на горячих вопросов на Norton Board .
Конечно, это только Norton, вы не указываете, какие проверки вирусов вы столкнулись.
Мы получили ту же проблему здесь ... Антрирус обнаруживает некоторое поведение нашего программного обеспечения тоже. Компания Ant-Virus не говорит точно, что они смотрят (конечно, проблема безопасности). Вот, например, я получил эту проблему, когда начал использовать трубопроводы.
Что мы сделали? Мы называем охранные компании, они проанализировали наш .exe, а теперь у нас есть «белый флаг».
... Нет, это не так быстрый процесс.
#include <iostream>
#include <valarray>
using namespace std;
typedef valarray<valarray<int> > va2d;
int main()
{
int data[][3] = { {1, 2, 3}, {4, 5, 6} };
va2d mat(valarray<int>(3), 2);
for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
mat[ i ][ j ] = data[ i ][ j ];
}
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 3; ++j)
cout << mat[ i ][ j ] << endl;
}
Подробнее о valarray
:
векторный
контейнер со специальными функциями члена для разрезания и вытирания. доступ к вектору
может быть быстрее valarray < T >
: Eg: 3 Кроме того, многие члены и функции valarray могут быть успешно создан экземпляр и будет проявлять четко определенное поведение, если и только если Т удовлетворяет дополнительным требования, указанные для каждого такого член или связанная функция.
4 [ Пример: Допустимо создание экземпляра valarray, но оператор > () не будет успешно создан экземпляр для операндов valarray, так как комплекс не имеет заказа операторов. - конечный пример]
Edit # 2: Стандартные гуранты, которые вектор
, как и массивы, всегда используют непрерывную память. Кроме того, имеется:
26,5,2 valarray шаблона класса
1 valarray шаблона класса является одномерный интеллектуальный массив, с элементы, пронумерованные последовательно из ноль. Это представление математическое понятие упорядоченного набора ценностей. Иллюзия высшего размерность может быть получена знакомая идиома вычисляемых индексов, вместе с могущественными возможности подмножества, предоставляемые обобщенные операторы нижнего индекса.
и далее:
-121--3311393-26,5,2,3 доступ к элементу valarray
4 Аналогично, выражение & a [i]! = & b [j] оценивает как true для любых двух массивы a и b и для любого size_t i и size_t j так, что i меньше, чем длина a и j меньше, чем длина b. Это свойство указывает отсутствие наложения и может использоваться преимущество за счет оптимизации компиляторов.
Python позволяет «поймать» неуточненные именованные аргументы в дикт, что довольно удобно
>>> def f(**kw):
... print kw
...
>>> f(size=3, sides=6, name="hexagon")
{'sides': 6, 'name': 'hexagon', 'size': 3}
-121--4746357- Если ваша программа «модифицирует» исполняемый файл, он будет подхвачен множеством AV-программ. Я даже видел патч-программу Борланда, которая распространялась с Delphi 7, помеченной как общий вирус при установке с компакт-диска.
Я не уверен, что вы можете многое сделать с этим, если только вы не можете отключить эту «функцию» в программе AV или иметь права добавить исключение для нее. Лично я думаю, что это просто ленивый «ловчий», созданный AV программными обеспечениями.