Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2009, 07:41   #1
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
Вопрос Создание защиты средствами DELPHI

Добрый день!

В общем... Имеется почти готовый набор софта.
Защита будет реализована донглом+привязка к компу.
С этим все просто, и в принципе готово.
Теперь осталось дело за малым - написать/сделать защиту самого EXE.

Собрал простенький пакер, поиздевался над заголовками РЕ, его убивает так, что потом поднять первозданный вид почти нереально.
Но можно легко снять дамп/найти и убить модули защиты.

Итак, собственно вопросы :
1.Можно ли сделать анти-дебаг защиту только средствами дельфи?
2.Можно ли сделать защиту контрольной суммы, без возможности ее изменения. Ну как бы если мы поменяли в ЕХЕ хоть байт - он умер, и не ожил бы даже посли подправки CRC.


Знаю, это все может хороший протектор, но использовать их - дело последнее и ненадежное. Есть люди, которые даже темиду могут расковырять за пять минут.

Спасибо за внимание.
JustKurt вне форума Ответить с цитированием
Старый 29.07.2009, 10:32   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Да тоже заинтересовался таким вопросом....

Видел защиту подобную реализованную, так:

Во первых защита срабатывает по таймеру в рандомное время... 1-5 минут.
Во вторых она следит за своими ячейками памяти..которая себе выделила...и если что не так вырубает машину нафиг. (как это реализовано не совсем понял)
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 29.07.2009, 10:34   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Есть люди, которые даже темиду могут расковырять за пять минут.
Вот именно, так что на вопрос
Цитата:
Можно ли
Можно ответить утвердительно, но толку от этого будет не очень много если за взлом возьмется профессионал. Но это можно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2009, 13:11   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну одной ступенью защиты может быть использование UPX, заодно программка похудеет слегка.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 29.07.2009, 18:32   #5
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

Utkin, дело в том, что UPX - пакер. В запакованном файле можно делать что угодно, так же и распаковать.
Я уже реализовал возможности запаковки, ЕХЕ жмется раза в три-четыре, в среднем. (1.30м - ужимается в 350кб =) )
Убийство РЕ заголовка, структуры.

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

BARNEY, реализовать проверку... Можно отследить, Что и куда. Хотя тоже, можно поназасылать кучу левых потоков, иммитировать мего-аццкий мехонизм защиты и прочее. Это поставит небольшие стенки на пути.
Следить за ячейками.. Хм, не знаю, что выйдет с этого...

В общем продолжаем думать =)
JustKurt вне форума Ответить с цитированием
Старый 29.07.2009, 20:05   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Сделай отдельный класс(ы) с потомками и методами типа Protector.EnterProc, Protector.ExitProc, которые будут в начале и конце каждой процедуры в программе, чего-то с ними (процедурами) делать и при корректной работе, скажем, выполнять в стеке какой-нибудь код, при некорректной гадить туда, уничтожая локальные переменные. Побольше виртуальных методов (они кажись вызываются по динамическим адресам) чтоб заставить крякера в обязательном порядке трассировать программу, при этом трассировку максимально усложнить (сброс флага TF и всё такое на wasm.ru), использовать много раз одни и те же переменные и указатели в ответственных местах, тогда дамп будет неработоспособен, уничтожить импорт и восстанавливать его при загрузке, тоже на васме где-то было. На антиотладке особо заморачиваться не стоит, это быстро обнаруживается и из-под ядерного отладчика многое просто не сработает.

Часть вышесказанного реализована в этом крякми, попробуйте кто-нибудь вскрыть, в идеале найти пароль

Касаемо вопросов, 1 - нет, 2 - да, ассемблерными вставками, особенно если проверка в нескольких местах с перекрывающимися участками и контрольная сумма используется как важная константа в программе, а не рубильник if/else
пыщь

Последний раз редактировалось JTG; 29.07.2009 в 20:12.
JTG вне форума Ответить с цитированием
Старый 29.07.2009, 20:56   #7
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

JTG, Спасибо!
Попробую сделать )))
Крякми пошел изучать)
JustKurt вне форума Ответить с цитированием
Старый 30.07.2009, 01:19   #8
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Значит так, друг любезный.
Все тобой перечисленное отпугнет только начинающего хацкера. А ежели, как пишешь,
Цитата:
за исследование софта сразу возьмется один очень хороший реверсер
то твоя программа и дня не продержится.

Защитой программ, как и криптографией, нельзя заниматься между делом, ибо навороченные решения не всегда оказываются эффективными..
Black Fregat вне форума Ответить с цитированием
Старый 30.07.2009, 05:40   #9
JustKurt
ANT team
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

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

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

Блин, отреверсить телефоны оказывается проще для меня, чем защитить софт вменяемо =/
JustKurt вне форума Ответить с цитированием
Старый 30.07.2009, 07:34   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну можно критически важные переменные попробовать хранить в двух видах обычный и инверсированный (или, еще как-нибудь измененный, чтоб сразу не нашли). В ходе работы периодически сравнивать, если различаются, значит Вас пытаются вскрыть. Так, просто мысля такая пришла, сам не пробовал и будет ли от этого какой-нибудь толк не знаю.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание модели хищник-жертва средствами Excel. Pavel_Ine Microsoft Office Excel 5 05.05.2014 18:26
Программа для защиты информации в локальной сети на Delphi 6.0/7.0. Asakura Помощь студентам 0 20.06.2009 19:59
Управление внешними устройствами средствами Delphi RockForr Общие вопросы Delphi 7 03.05.2009 22:04
Создание папки средствами ASP dubin PHP 0 05.04.2009 20:03