Программная защита / обфускация кода, не вызывающая ложных срабатываний антивируса

Мне нужна программа для защиты программного обеспечения и / или обфускации кода, например Oreans Themida, VSProtect, ASPRotect и аналогичные. Однако ложные срабатывания антивируса - это для меня препятствие. Я не могу доставить неудобства или отпугнуть наших законных пользователей. И, к сожалению, похоже, что все три упомянутых выше продукта страдают от этой проблемы.

В моем 32-разрядном родном (не .NET) приложении Windows, написанном на Delphi, сейчас используется специальный код управления лицензиями, и он работает хорошо, однако, поскольку не используется обфускация кода, взломы создаются в течение нескольких часов после каждого выпуск. Итак, я ищу продукт, который добавляет хоть какой-то уровень защиты от взломщиков и не создает ложных срабатываний антивирусов.

Мой главный приоритет - это неуклонность и стабильность, отсутствие ошибок и ложных срабатываний антивируса, внесенных в мое программное обеспечение. Уровень защиты от взлома вторичен.


person haimg    schedule 01.10.2011    source источник
comment
Обфускаторы зависят от платформы. Вы используете .NET?   -  person Kirk Woll    schedule 01.10.2011
comment
@yahia - это должно быть лучше, чем ничего. Я понимаю, что безопасность - это компромисс. Для меня главное - ненавязчивость, для меня - безопасность.   -  person haimg    schedule 01.10.2011
comment
FWIW, мой код был ложным срабатыванием AVG. Поговорив с ними, они добавили нашу подпись кода в свою заведомо исправную базу данных, и у нас больше никогда не было проблем.   -  person mj2008    schedule 03.10.2011


Ответы (8)


Вам придется свернуть свою собственную. Ложные срабатывания происходят из-за «сигнатур», соответствующих известным вредоносным программам. Например, если какое-то вредоносное ПО использует upx для сжатия, и сканер обнаруживает upx, скомпилированный в ваше приложение, вас могут неправильно идентифицировать.
Вы можете получить ложное срабатывание только потому, что сканер обнаружил, что вы используете Delphi (или любой другой компилятор, если на то пошло). Но чем более неясно, тем выше уверенность в том, что сканер думает: «Я нашел здесь что-то УНИКАЛЬНОЕ» и сверяется со своим каталогом известных вредоносных программ. ]

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

Если сканер достаточно ленив, вас могут пометить установщик, который вы используете, сторонние компоненты, которые вы используете, строки ресурсов, «случайный шанс», что-то связанное с сертификатом подписи кода или компилятор, который вы используете.

Кто-то создаст вредоносное ПО с помощью FireMonkey. Некоторые антивирусные программы (возможно, несколько) это заметят. Некоторое время это будет проблемой для приложений FireMonkey.

Вот интересное обсуждение: Случайно создали вирус?

person Chris Thornton    schedule 03.10.2011
comment
Delphi действительно популярен среди вирусописателей. Просто напишите свое приложение на delphi, и некоторые очень ХРАБЫЕ антивирусные инструменты распознают вас как вирус. Послушайте, это кусок кода System.pas, который был замечен в вирусе, также замечен в вашем приложении ... И готово. - person Warren P; 07.10.2011

Arxan guardIt предназначен для работы с приложениями Visual C ++, но предприимчивый разработчик Delphi может использовать его для защиты свою продукцию. Я знаю одно очень популярное коммерческое приложение, написанное на Delphi, которое его использует, но вы должны сами написать некоторые инструменты для преобразования файлов карты Delphi и другой отладочной информации в форматы Visual C ++.

Если вы хотите попробовать свои силы, имейте в виду, что задача состоит в том, чтобы быть умнее хакеров и создать больше уровней контрзащиты, которые зависят друг от друга трудным для определения образом, чтобы успешно противостоять взломщикам. Лично я считаю, что вы все равно не заставите этих людей давать вам деньги, поэтому тратить свое время на то, чтобы удерживать их от использования вашего программного обеспечения, - это просто отрезать себе нос в назло своему лицу. Но если это ваша тяжелая работа в Интернете в треснувшей форме, то во что бы то ни стало, продолжайте пытаться превзойти их.

Обратите внимание, что если вы овладеете передовыми методами, такими как самомодифицирующийся код, вы почти наверняка будете отмечены каким-либо программным обеспечением для обнаружения вредоносных программ, и вам нужно будет запросить включение в белый список. Если вы не готовы заходить так далеко до самомодифицирующегося кода, то даже пытаться может быть ноль смысла. Мне неизвестно ни о чем, что противостоит прямым методам декомпиляции в автономном режиме, которые не требуют самомодифицируемых методов своевременного восстановления и повреждения.

Простые старые методы дешифрования exe, которые выполняются один раз при запуске, также чрезвычайно легко обойти и полностью удалить, как только незашифрованный exe полностью загружен в память.

person Warren P    schedule 03.10.2011
comment
Спасибо за Ваш ответ. Я немного сомневаюсь в отношении продуктов, для которых нет демонстрационной или пробной версии для загрузки, и я не говорю о цене заранее на своем веб-сайте, а только прошу связаться с их отделом продаж. По моему опыту, это обычно означает, что это не моя лига Micro-ISV. Также минусом является отсутствие поддержки Delphi ... - person haimg; 05.10.2011

Думаю, вы могли бы взглянуть на один под названием The Enigma Protector

Разработчик хорошо осведомлен о проблемах с ложными срабатываниями и активно взаимодействует с AV-компаниями по этой проблеме. Вот что разработчик сказал по этому поводу в одном из сообщений на форуме: «Начиная с Enigma Protector 3.0, для защищенных файлов не будут появляться ложные срабатывания!» Ссылка на сообщение форума

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

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

У него есть собственный API, и для него можно писать плагины. Он также включает в себя виртуальную коробку для файлов и реестра, но теперь я могу продолжать бесконечно.

Крис

person Shambhala    schedule 04.10.2011
comment
Я загрузил демо-версию, запаковал свой собственный EXE-файл, проверил с помощью VirusTotal: virustotal.com/file-scan/ 12 Антивирусы выдают всевозможные предупреждения. Я бы сказал, что автор излишне оптимистичен по поводу отсутствия ложных срабатываний. - person haimg; 05.10.2011
comment
да, я забыл, что демо-версия не застрахована от этого, у меня полностью зарегистрированная версия 3.0 - person Shambhala; 05.10.2011
comment
Вы хотите сказать, что полностью зарегистрированная версия не имеет проблемы с ложной тревогой, с которой я столкнулся с демонстрацией? - person haimg; 05.10.2011
comment
Ниже приведены результаты сканирования VirusTotal для полностью зарегистрированной версии: nbsp; ссылка - person Shambhala; 05.10.2011
comment
Существует также новая система, предложенная IEEE, которая называется Taggant System, на которую подписался Enigma Protector. Первая реализация этого запланирована на ноябрь этого года, поэтому я прочитал. Он направлен на предотвращение ложных срабатываний путем добавления маркера в допустимые упаковщики. Подробнее об этом здесь и здесь - person Shambhala; 05.10.2011

Я думаю, тебе стоит посмотреть на это по-другому. Мы используем Oreans, и у нас были похожие проблемы, но мы обходили их, подписывая исполняемые файлы. Антивирусному программному обеспечению требуется немного больше времени, чтобы проверить ваше приложение, но большинство по-прежнему сочтет его свободным от вирусов, если оно имеет цифровую подпись.

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

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

person Graymatter    schedule 10.10.2011
comment
Да, я это проверил. Определенно уменьшение количества ложных срабатываний. Но 6 из 43 жалоб на антивирусы явно неприемлемы (получаю аналогичные результаты). - person haimg; 10.10.2011

Да, есть решения. (Отказ от ответственности: я работаю в компании, занимающейся защитой программного обеспечения Wibu-Systems), и я могу заверить вас, что CodeMeter не не запускает антивирусные системы и не требует прав администратора для установки. Я также могу сказать вам, что любое домашнее решение, вероятно, будет взломано довольно быстро - мы потратили годы (как и другие поставщики в этом пространстве, такие как Arxan, Safe-Net и Keylok), разрабатывая методы, которые сбивают с толку и сбивают с толку. -быть взломщиками.

Большинство взломщиков просто используют отладчик для установки точки останова в процедуре проверки лицензии (сообщение об ошибке или диалоговое окно, которое предоставляется пользователю), а затем исправляют код языка ассемблера при проверке аутентификации (ищите что-то вроде сравнения EAX с EBX и измените код, чтобы он всегда возвращал истину). Таким образом, им не нужно пытаться деобфускировать ваш код и т. Д. Вот почему большинство коммерчески доступных решений используют шифрование, а не какую-либо проверку подлинности / валидации - шифрование невозможно исправить. Но даже зашифрованный исполняемый файл может быть выгружен в память и перестроен, если вы не достаточно хорошо разбираетесь в том, как переупорядочивать формат файла PE и обрабатывать хранение ключей и обмен ключами.

Учитывая, что стоимость коммерческой системы со всеми ее сильными сторонами и преимуществами (управление лицензиями, гибкость, кроссплатформенная поддержка и т. Д.) Может быть довольно низкой, зачем использовать собственную? Большинство людей не пишут свои собственные установщики, поскольку вы можете использовать MSFT, InstallShield или NSIS - зачем писать собственное решение для лицензирования и защиты?

person John Browne    schedule 04.10.2011
comment
Спасибо. Я посмотрел на ваше решение. К сожалению, розничная цена моего программного обеспечения составляет 25 долларов, я не могу использовать USB-ключи. Это также слишком обременяет законных пользователей. - person haimg; 05.10.2011

Полагаю, вы не получите 100% гарантии, но у меня никогда не было проблем с Armadillo. Защитите свой exe и подпишите его действующим сертификатом.

person Tobias R    schedule 08.10.2011
comment
С Армадилло обычно все наоборот. Армадилло реагирует на осмотр, думая, что его разбирают, и выдает ошибку. Обычно ошибка распаковки, LP2 / LP5. Затем, через месяц, сигнатуры антивируса меняются, или Microsoft выпускает пакет обновлений, и все хорошо. - person Chris Thornton; 08.10.2011
comment
Извините, но я не понимаю вашего комментария. Я использую Armadillo последние четыре года и ни разу не получил антивирусных предупреждений. Единственный раз, когда Армадилло меня подвел, это когда мы выбрали логотип Win7, но вскоре эта проблема была исправлена ​​/ решена. - person Tobias R; 10.10.2011
comment
Поддерживает ли Armadillo напрямую исполняемые файлы Delphi? - person Warren P; 11.10.2011
comment
Защита находится в виртуальной Dll, доступ к которой можно получить с помощью набора функций экспорта и переменных среды. Он не ограничивается конкретным языком программирования, мы также используем его для защиты проекта C # и компонентов ActiveX. - person Tobias R; 11.10.2011

Как всегда, это непросто.

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

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

Итак, вам нужно найти этот хороший многообещающий продукт для звонков.

person joveha    schedule 03.10.2011

Попробуйте использовать шестнадцатеричный редактор, чтобы отредактировать заголовки, такие как «UPX» и т. Д. Бинарному файлу они не нужны, только инструмент, который их распаковывает.

person Marcus Adams    schedule 03.10.2011