|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Алгоритм защиты окна авторизации
Делаю авторизацию пользователей. Окошко для ввода логина и пароля. Данные пользователя хранятся в БД. Воопрос как лучше реализовать защиту от взлома программы. Программа используется на предприятии, особо защищать не придётся, так как сеть локальная без выхода в интернет, но уж сам вопрос интересный. И вот тут мои размышления:
1. Допустим пароли как таковые я хранить в открытом виде не буду, а будет в базу данных записываться их хэш. 2. При реализации условий логина (нажатие кнопки и обработка сравнения паролей) возможен взлом кода программы с подменой битов (как взламывают экзешники любимых программ). Весь вопрос в том, как усложнить взлом с использованием подмены бытов самого модуля логина, чтобы логин был неудачен даже при получении true, что якобы пароли совпадают...?????? Все модули, в том числе модуль логина, дата модуль и прочие - это bpl пакеты... Помогите с данным вопросом, первый раз с этим сталкиваюсь... Спасибо! |
#2
|
|||
|
|||
Почитал тут статейку
http://www.codenet.ru/progr/delphi/stat/delphi.php и подумал: хоть и не рекомендует автор делать функции проверки пароля, но если эту функцию запихнуть в datamodule.bpl и там же сравнивать CRC этого модуля с изначальным, то взломщику не удастся подменить изменить сам модуль... Только вот как получить CRC модуля, не зная его CRC, которое должно быть зашито в сам модуль ))))))))) |
#3
|
|||
|
|||
Например, скомпилить модуль, посчитать CRC, а проверку делать в основной программе, которая компилится после и она уже может знать нужный CRC. Хотя в этом случае нет возможности защитить саму программу... тоже проблема...
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
~TB~ (19.10.2012)
|
#4
|
||||
|
||||
Цитата:
Для повторного подсчета достаточно отобразить exe-файл в память с отбрасыванием изменений, прочитать контрольную сумму из заголовка PE, сохранить в переменной. Вписать 0 в это поле (который будет отброшен после закрытия файла), посчитать контрольную сумму заново и сравнить. Но прежде чем заниматься фигней, представить ситуацию, когда злые хакеры ломают программу прямо в локальной сети предприятия. |
#5
|
||||
|
||||
Защитить её VMProtect'ом. Антивирусные компании даже не пытаются понять смысл того, что им защищено, потому что человек со здоровой головой понять это не сможет.
Я пробовал его реверсить. Там виртуалка с шифрованными опкодами, шифрованные адреса обработчиков опкодов, шифрованные данные и ни единой функции. Весь код так сказать прямым текстом, только после каждых 1-10 команд стоит jmp или call (который юзается как jmp) куда-нибудь ещё, и код превращается в беспорядочное месиво. Стек там используется как большая помойка, почти все регистры - тоже. Код виртуалки загаживается огромнейшим количеством совершенно тупых и бесполезных команд, среди которых реальный смысл даже маленького кусочка восстановить очень тяжело. И хоть все алгоритмы шифрования сами по себе там элементарные (xor, add/sub, rol/ror и различные их комбинации), разобрать это вручную невозможно. Слышал где-то на хакерских форумах обитают скрипты для снятия VMP старых версий, однако для новых что-то не слышал и не видел. Если не хочется платить за VMP, можно написать свой упрощенный аналог. Цитата:
З.Ы. +1 к Цитата:
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 17.10.2012 в 03:46. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
~TB~ (19.10.2012)
|
#6
|
||||
|
||||
Возложить авторизацию на сервер, чтоб он только ответ выдавал, валидны логины/пароли или нет.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
~TB~ (19.10.2012)
|
#7
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#8
|
||||
|
||||
Цитата:
Это самый правильный способ! Я так подозреваю логины и пароли ты хранишь самостоятельно в таблице на серваке, если это так то в базу ты попадаешь под общим паролем и логином (для того чтоб считать данные из таблицы), тогда метод взлома такой БД заключается в том чтоб в хекс редакторе посмотреть пароль/логин, цепануться к базе считать пароли логины пользователей, даже если общий пароль/логин шифрованы то умному хакеру не составит труда их достать Код сырец |
#9
|
||||
|
||||
SSL + Хеши
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
~TB~ (19.10.2012)
|
#10
|
|||
|
|||
Если честно
Во первых я невижу смысла алгоритма потому что!
1. Если вашу программу захотят сломать, ее все равно сломают. 2. Защиту организовывают сторонние программы. За деньги! И если программа имеет высокий спрос...ЕЕ все равно сломают! 3. Вам не надо париться, логин и пароль стандартными методами защитят вашу прогу от доступа случайных людей не имеющих знаний взлома. 4. Если вы хотите защитить программу от взлома людей обладающими базовыми знаниями взлома, постарайтесь не писать логины и пароли в реестр, в файл, и в exe коде не вязать все 1 переменной. ЧТОБЫ ПОНЯТЬ КАК ЗАЩИТИТЬ СВОЮ ПРОГРАММУ ПОСТАРАЙТЕСЬ ЕЕ САМИ ВЗОЛМАТЬ! Лучшая защита пограммы от взлома, это нестандартный методы проверки! |
#11
|
||||
|
||||
ТС писал:
Цитата:
00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110 |
#12
|
|||
|
|||
Цитата:
Я высказал позицию человека ценящего время, что овичинка выделки не стоит, и лучше свободное время посвятить более важным и полезным делам. Мой ответ попытка направить человека в нормальное русло, поскольку вопросы по защите, несколько изжили себя. Последний раз редактировалось Heneken, 19.10.2012 в 14:40. |