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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2013, 20:15   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 267
По умолчанию Защита данных от хака

Добрый день. Есть необходимость защитить данные типа строка(HTML-код) от удаления или подмены

Например такой способ:
1. шифруем строку(до программы), делаем ее хеш и размещаем гдето в программе в виде констант1 и 2
2. функция, которой нужны данные заключенные в константе1 (HTML-код), вызывает специальную функцию, которая:
- получает константу1 и делает ее хеш
- получает константу2(ранее сделанный хеш) и сравнивает хеши
если хеш1 = хеш2 тогда
спец.функция расшифровывает константу1(ключ встроен в функцию) и передает параметр в вызвавшую функцию и записывает значение TRUE в ГлобПерем
иначе (хеши различны)
спец.функция возвращает FALSE в ГлобПерем

все основные процедуры программы в начале кода имеют обращение к этой ГлобПерем и если она FALSE идут в Exit(не выполняют свой код), что приведет к сбою в работе программы

Вопрос: в достаточной ли мере подобный подход затруднит работу взломщиков? и вообще
Pcrepair вне форума Ответить с цитированием
Старый 07.06.2013, 21:01   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Сломать можно всё, кроме того что ломать незачем.
Это хорошо защитит от тех, кто hex-редактором орудует. От дизассеблирования очень слабо (почти никак), достаточно будет поменять один флаг и вся защита снята.
Защиту надо расчитывать исходя из контингента пользователей. Кстати, артмани такое легко обойдёт.
eoln вне форума Ответить с цитированием
Старый 07.06.2013, 21:24   #3
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 267
По умолчанию

допустим кто то хочет заменить данные(в частности свой емейл подсунуть вместо моего)
в кнопке "Контакты" он видит мой емейл(данные кстати полностью доступны), дальнейшие действия кулхацкера:
- начинает искать в коде программе этот емейл(поскольку зашифрованно, он его просто не находит)
- начинает в отладчике вызывать форму в которой прописан емейл, идет до спец.функции, которая выдает константа1 в расшифрованном виде
- проходит мимо ГлобПерем, поскольку он ее и не ищет
- находит таки константа1. в зашифрованном виде(о том что все зашифрованно кулхацкер пока ничего не знает)
- вырезает константу1 в блокнот начинает смотреть где там что, ничего не находит
- возвращается к спец.функции и долго думает чего оно делает
- находит всетаки ключ с помощью которого функция расшифровывает константа1?????? если это возможно
- но код спец.функции дизаассемблировать нельзя, долго ломает голову над кодом функции, переберет все доступные
- все таки находит код(в принципе он там простой, хотя можно и усложнить)
- создает свою константу1 и влеивает ее в файл
- запускает прогамму и тут обнаруживает что ничего не работает(о передаче флага в ГлобПЕРЕМ ведь ничего неизвестно)
- начинает возится с спец.функцией воображая что там ошибка
...... и еще много ненужных телодвижений
в изнеможении стирает нафиг все и форматирует свой диск Ц

насколько такое реально?
Pcrepair вне форума Ответить с цитированием
Старый 07.06.2013, 21:57   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Вопрос: в достаточной ли мере подобный подход затруднит работу взломщиков? и вообще
Не затруднит вообще.
Цитата:
если хеш1 = хеш2 тогда
После cmp инструкции сделать dl eax, 1 вместо dl eax, 0 и все. Логика будет работать наоборот. Можно вообще nop'ами забить условности и оставить только чистое декодирование без проверок, или вообще сразу вызывать код который работает с декодированной инф-ей и скармливать свои данные.

Хранить инф-ию в константах? - Не смешите.

Цитата:
насколько такое реально?
Бессмысленно и беспощадно в первую очередь для вас. Код дешифровки вы сами же дадите. А кому-то просто 0 на 1 заменить и все ваши труды ушли в пыль.

Последний раз редактировалось Человек_Борща; 07.06.2013 в 22:47.
Человек_Борща вне форума Ответить с цитированием
Старый 07.06.2013, 22:25   #5
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Дело в том, что хакеры( в народе называются "читеры") могут использовать ArtMoney или CheatEngine для замены значений уже в программе. Для защиты серьёзных данных(например, значений в памяти в некоторых играх) используют GameGuard или Xtrap.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита данных Виталик1 Безопасность, Шифрование 2 28.01.2013 10:04
Криптографическая защита данных. Анатолий777 Безопасность, Шифрование 0 18.12.2012 14:50
Защита о недопустимых данных VENOMIK Паскаль, Turbo Pascal, PascalABC.NET 5 14.12.2011 20:52
Защита данных StudentMarat Microsoft Office Excel 1 15.07.2009 11:40