Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Lelik-pahan
1439 / 801 / 179
Регистрация: 25.11.2009
Сообщений: 1,629
Завершенные тесты: 1
1

Защита от отладки

13.07.2017, 13:31. Просмотров 751. Ответов 9
Метки нет (Все метки)

Всем доброго времени суток!

В качестве базовый защиты от "ковыряния" программы сделал проверку функцией IsDebuggerPresent().
Подскажите, пожалуйста, не может ли эта функция вернуть true, когда программу проверяет антивирус?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2017, 13:31
Ответы с готовыми решениями:

Защита программы от НСД. Защита путем шифрования части программы на флеш-диске или флешке
Написать программу на любом известном Вам языке программирования. Программа должна выполнять...

Защита от неправильного ввода "Защита от дурака"
Ввести элементы массива размерностью N>100; Предусмотреть защиту на каждый ввод элемента массива...

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

правила отладки
хотелось бы поделиться с начинающими и не только негласными "правилами" такого сложного процесса,...

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

9
ziqp
125 / 61 / 16
Регистрация: 03.09.2015
Сообщений: 818
13.07.2017, 16:30 2
Вероятность присутствует только в песочнице, хотя обычно используются другие методы. Также IsDebuggerPresent() легко обойти.
При обычном сканировании антивирус открывает твою программу с помощью hex редактора и смотрит, нет ли пары совпадений с его базой сигнатур
1
Lelik-pahan
1439 / 801 / 179
Регистрация: 25.11.2009
Сообщений: 1,629
Завершенные тесты: 1
13.07.2017, 16:56  [ТС] 3
Цитата Сообщение от ziqp Посмотреть сообщение
Также IsDebuggerPresent() легко обойти
я знаю.
Цитата Сообщение от ziqp Посмотреть сообщение
При обычном сканировании антивирус открывает твою программу с помощью hex редактора и смотрит
Помимо простой проверки файлов на диске антивирус же может (должен) мониторить программы в процессе их выполнения.
0
Dinkin
661 / 458 / 118
Регистрация: 31.05.2013
Сообщений: 2,436
Записей в блоге: 3
13.07.2017, 23:19 4
Lelik-pahan,Было бы замечательно,если бы Вы сделали тест программы на разных антивирусах, и нам сказали о результатах =) Так как сам давненько ее использовал, но были проблемы не с антивирусом, а с геймерским софтом (всякие там защитники от ботоводства)..они без спроса лезли в процесс приложения.

Цитата Сообщение от ziqp Посмотреть сообщение
IsDebuggerPresent() легко обойти
Что бы усложнить ее обход,ее надо переименовать (что бы ее название не светилось в файле), я для этого использовал старые версии VMProtect (может что сейчас есть бесплатное и нормальное, не знаю).
1
13.07.2017, 23:19
ziqp
125 / 61 / 16
Регистрация: 03.09.2015
Сообщений: 818
14.07.2017, 02:42 5
Любая команда расшифровывается в памяти и исполняет одно и то же, что и незапакованный протекторами файл, лезет в тот же winapi и их последовательность может уже о чем-то говорить антивирусам. У них скорее всего отладчик на уровне нулевого кольца. Поэтому запретить такому отладчику лезть в ваш процесс нереально. Только если сами напишите драйвер на уровне системы и через свое системное api запретите доступ другим программам. Например, как вариант, подменять процессорные команды от вашего приложения при просмотре другими. Это что-то типа создание другой архитектуры, своего системного ядра, далее создание эмулятора под windows... подобие виртуальзации. Но это только если у вас есть свободное время эдак полгода на изучение основного ядра
1
Lelik-pahan
1439 / 801 / 179
Регистрация: 25.11.2009
Сообщений: 1,629
Завершенные тесты: 1
14.07.2017, 09:58  [ТС] 6
Цитата Сообщение от Dinkin Посмотреть сообщение
Что бы усложнить ее обход,ее надо переименовать
Кажется видел реализацию этой команды на ассемблере. Правда, это тоже не очень усложнит её обход, ибо найти ассемблерную последовательность не сложнее, чем вызов WinApi функции.
В любом случае это вопрос отдельной темы.
Цитата Сообщение от ziqp Посмотреть сообщение
Поэтому запретить такому отладчику лезть в ваш процесс нереально
Я не собираюсь закрываться от антивирусов. Мне только важно, чтобы не было ложных срабатываний моей защиты.

Цитата Сообщение от Dinkin Посмотреть сообщение
,Было бы замечательно,если бы Вы сделали тест программы на разных антивирусах, и нам сказали о результатах
Не вижу в этом смысла. В том, что с лидирующими (если так можно сказать) антивирусами проблем не будет, уверен на 99 %, а проверить на всех существующих всё равно не выйдет. Даже в рамках одного бренда бывает множество модификаций и вариантов настроек.
Но если будут жалобы от пользователей, я отпишусь, с какими антивирусами возникли проблемы.

Могу только точно сказать, что с KES 10 всё ок.
1
ziqp
125 / 61 / 16
Регистрация: 03.09.2015
Сообщений: 818
14.07.2017, 13:00 7
Я не собираюсь закрываться от антивирусов. Мне только важно, чтобы не было ложных срабатываний моей защиты.
Вот это уже гораздо проще. Запихайте одинаковую достаточно длинную последовательность байтов в каждый файл, который вы собираетесь защищать, пишите антивирусам о ложном срабатывании, отсылайте файл. Если есть сайт и определенное кол-во скачиваний, через некоторое время ваш файл перестанут видеть как вирус.

Ну а если нужен криптор, так делайте криптор.

Еще, вы о virustotal слышали?
0
Lelik-pahan
1439 / 801 / 179
Регистрация: 25.11.2009
Сообщений: 1,629
Завершенные тесты: 1
14.07.2017, 13:14  [ТС] 8
Цитата Сообщение от ziqp Посмотреть сообщение
пишите антивирусам о ложном срабатывании
я говорю о возможном ложном срабатывании МОЕЙ защиты. У меня нет проблемы с тем, что какие-то антивирусы ругаются на мою программу.
Цитата Сообщение от ziqp Посмотреть сообщение
Ну а если нужен криптор, так делайте криптор.
Я не говорил ни слова про криптор. И эта тема не про то, как нужно реализовать защиту.

Единственный интересующий меня вопрос: может ли функция IsDebuggerPresent() вернуть true, когда программу проверяет антивирус?
Ответ я получил.

И, конечно же, с virustotal я знаком.
0
Убежденный
Ушел с форума
Эксперт С++
16147 / 7294 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
14.07.2017, 13:51 9
IsDebuggerPresent() - это всего лишь проверка одного байтика внутри структуры PEB.
Функцию очень легко похукать, а байтик - подменить.

Цитата Сообщение от Lelik-pahan Посмотреть сообщение
Подскажите, пожалуйста, не может ли эта функция вернуть true, когда программу проверяет антивирус?
А с какой целью им это делать?
Анти-отладка используется во многих программах и они просто перестали бы работать...
2
Lelik-pahan
1439 / 801 / 179
Регистрация: 25.11.2009
Сообщений: 1,629
Завершенные тесты: 1
14.07.2017, 14:18  [ТС] 10
Цитата Сообщение от Убежденный Посмотреть сообщение
IsDebuggerPresent() - это всего лишь проверка одного байтика внутри структуры PEB.
Функцию очень легко похукать, а байтик - подменить.
Мне это известно. Программа не требует регистрации и это не защита от кряка. Я использую эту функцию как базовую защиту от изменения значений в памяти. Да и то вряд ли пригодится.
Цитата Сообщение от Убежденный Посмотреть сообщение
А с какой целью им это делать?
Анти-отладка используется во многих программах и они просто перестали бы работать...
Это логично, но я же не знаю как реализовна анти-отладка в других программах. Лучше задать вопрос знающим людям, чем полагаться на собственные логические вывода не подкреплённые опытом и знаниями.
0
14.07.2017, 14:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2017, 14:18

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

Уровни отладки
Всем доброго дня ! Подскажите пожалуйста почему при выполнении строки #if DEBUGLEVEL < HIGH я...

Настройка отладки
Всем привет. У меня такая проблема - при попытке запуска отладки пошаговой (F7) , запускаются все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru