![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Pcrepair |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
Добрый день. Есть необходимость защитить данные типа строка(HTML-код) от удаления или подмены
Например такой способ: 1. шифруем строку(до программы), делаем ее хеш и размещаем гдето в программе в виде констант1 и 2 2. функция, которой нужны данные заключенные в константе1 (HTML-код), вызывает специальную функцию, которая: - получает константу1 и делает ее хеш - получает константу2(ранее сделанный хеш) и сравнивает хеши если хеш1 = хеш2 тогда спец.функция расшифровывает константу1(ключ встроен в функцию) и передает параметр в вызвавшую функцию и записывает значение TRUE в ГлобПерем иначе (хеши различны) спец.функция возвращает FALSE в ГлобПерем все основные процедуры программы в начале кода имеют обращение к этой ГлобПерем и если она FALSE идут в Exit(не выполняют свой код), что приведет к сбою в работе программы Вопрос: в достаточной ли мере подобный подход затруднит работу взломщиков? и вообще --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
взломщик меняет на <> (или вообще убирает сравнение) и не парится Добавлено через 4 минуты и 44 секунды хотя... если шифровать асимметричным ключем... Добавлено через 5 минут и 52 секунды но в любом случае - это сравнение лишнее. Если строка неправильно расшифровывается - да пусть функции, использующие ее начинают валиться где угодно. |
|||
|
||||
| Pcrepair |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
так ведь сравнение двух хешей и определяет, что дальше делать программе? или что?
ключ = строка тут дело не в ключе. допустим кто то хочет заменить данные(в частности свой емейл подсунуть вместо моего) в кнопке "Контакты" он видит мой емейл(данные кстати полностью доступны), дальнейшие действия кулхацкера: - начинает искать в коде программе этот емейл(поскольку зашифрованно, он его просто не находит) - начинает в отладчике вызывать форму в которой прописан емейл, идет до спец.функции, которая выдает константа1 в расшифрованном виде - проходит мимо ГлобПерем, поскольку он ее и не ищет - находит таки константа1. в зашифрованном виде(о том что все зашифрованно кулхацкер пока ничего не знает) - вырезает константу1 в блокнот начинает смотреть где там что, ничего не находит - возвращается к спец.функции и долго думает чего оно делает - находит всетаки ключ с помощью которого функция расшифровывает константа1?????? если это возможно - но код спец.функции дизаассемблировать нельзя, долго ломает голову над кодом функции, переберет все доступные - все таки находит код(в принципе он там простой, хотя можно и усложнить) - создает свою константу1 и влеивает ее в файл - запускает прогамму и тут обнаруживает что ничего не работает(о передаче флага в ГлобПЕРЕМ ведь ничего неизвестно) - начинает возится с спец.функцией воображая что там ошибка ...... и еще много ненужных телодвижений в изнеможении стирает нафиг все и форматирует свой диск Ц насколько такое реально? --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Не считайте взломщика идиотом, это далеко не так
Не будет он так извращаться. Даже если действительно заинтересуется вашей программой (это, кстати, самый большой вопрос - нужно ли будет ее кому-то ломать). блаженны верующие Зачем долго думать, если можно просто получить результат?
А чего невозможного, если ключ прописан в константе? Почему? Если бы я занимался взломом, то поступил бы как-то так: 1. Из "спец.функции" выкидывается напрочь весь код расшифровки (ну, не выкидывается, а вставляются джампы, где необходимо), оставляются только положительные результаты работы всех этих проверок и дешифровок. 2. Вместо "зашифрованной строки" вставляется своя, незашифрованная 3. Ввиду того, что код расшифровки выброшен, то измененная строка без проблем кочует в результат спец.функии и далее. Это сообщение отредактировал(а) kami - 7.6.2013, 20:42 |
|||
|
||||
| Pcrepair |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
ну все зависит от уровня взломщика
задача - обломать 99% кулхацкеров в попытке что то изменить в программе остальные 1% реальные хакеры, способные это сделать не будут это делать, у них заботы поважнее --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
тогда - пойдет.
Но если какая-либо из функций может привести к исключению (либо ошибке в вычислениях), если строка "не родная", то стоит (даже очень стОит) убрать проверки "если ГлобальнаяПеременная то". И вообще тогда убрать эту глобальную переменную. Неявное возникновение ошибки (неправильного результата) будет гораздо предпочтительнее. Это сообщение отредактировал(а) kami - 7.6.2013, 20:57 |
|||
|
||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 7 Всего: 17 |
Хотел бы обратить внимание на то, что ни при каких обстоятельствах, что бы там ни подумала программа по поводу своего взлома, она не должна выдавать неправильные результаты, которые могут быть приняты за правильные. Она может вылетать с ошибкой, виснуть, разводить руками со словами "Обнаружена неизвестная ошибка", но ни при каких обстоятельствах не должна преднамеренно гадить. |
|||
|
||||
| Pcrepair |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
программа вообщето бесплатная, так что принцип "как есть" торжествует в полной мере
--------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 7 Всего: 17 |
Если человек скопировал хоть платную, хоть бесплатную программу со столетней флешки, в результате чего она скопировалась с ошибками, если на диске пользователя порезвился вирус, пишущий пару случайных байт в случайные места случайных файлов, то вы готовы ему устроить страшную мстю, только потому, что вы - Д'Артаньян, раздающий программы "как есть", а он - чудак, ломающий, по вашему мнению, вашу замечательную программу? Я думаю, что в таком случае - всё как раз наоборот - автор такой программы - не Д'Артаньян, а обыкновенный чудак... |
|||
|
||||
| northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Вопрос в том, кого ты считаешь "кулхацкерами", а кого "реальными хакерами". Общий принцип при защите таков - ты имеешь все шансы защитить ПО от того, кто имеет явно более низкие общие знания. Ты можешь заставить несколько помучиться того, кто имеет примерно твой уровень общих знаний. И у тебя нет никаких шансов защитить своё ПО от того, кто имеет более высокий уровень общих знаний. P.S. Про уровень "специальных" знаний я уже молчу. Ибо после прочтения: и
уже понятно, что твой уровень "специальных" знаний ниже плинтуса. Ибо все те, кого я считаю кулхацкерами "этот условный переход" находят за секунды. И про это слабое место в защите тебе уже сказали на (по крайней мере) двух форумах. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |