![]() |
|
|
![]()
|
|
| frodo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 4.4.2008 Репутация: нет Всего: 1 |
Вот такая ситуация, в программе две формы, в одной вводится пароль если он правильный тогда открывается вторая!!!Но дело в том, что, если запустить хотябы ollydbg то ету проседуру сразже в 5сек обойдеш!!! я конечно понимаю что на 100% незашитиш, но всеже как можно сделать чтоб нетак просто ето было обойти!!!
И еше как можно проверять соответствие введенного пароля с хранимым не используя If! |
|||
|
||||
| hijaq |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.4.2007 Репутация: нет Всего: нет |
Можно получать хэш от пароля и использовать его (хэш) для инициализации (или расшифровки) параметров, используемых при открытии второго окна (и, возможно, использовать далее в программе). А сверху всего этого повесить хороший обфускатор (например, VMProtect). Естественно, это самый простой вариант, далее развивать эти идеи надо уже зная специфику программы и её внутреннее устройство. Конечно, это не спасет от взлома усердными копателями, но определенную их часть отсеит. Это всё для случая, если программа недорогая (до $200). Если дороже - существуют более действенные способы защиты.
|
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
была не плохая статья Криса Касперского про отладку и защиту от отладки кода.
Добавлено через 11 секунд в журнале "Хакер" |
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
||||
|
||||
| frodo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 4.4.2008 Репутация: нет Всего: 1 |
Хеш пароля я получаю, также сравниваю етот хеш с ведденным пользователем, а каким образом его использовать для открытия второго окна? А можно ли сравнивать введенные хеши неиспользуя ператор IF? а то его тоже легко отследить!!! |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Ты не совсем понял идею. Хотя с параметрами я идею не особо поддерживаю, слишком уж она завязана на специфике. Предлагаю сделать так. Процедура, которой передаётся управление от первого окна, работает с какими-то данными. Эти данные ты можешь объединить в структуру. Будем считать эту структуру вектором исходных данных. Далее зашифровываешь их(исходные данные) каким-нибудь блочным шифром, причём ключом должен служить верный пароль(тот, который пользователь должен будет ввести). Кроме того, тебе надо вычислить и где-нибудь сохранить контрольную сумму исходного вектора. При вводе пользователем пароля, ты пытаешься расшифровать данные, используя в качестве ключа пароль введённый пользователем. Если контрольная сумма полученного вектора не совпадает с контрольной суммой исходного вектора(которую ты уже вычислил и сохранил), то следовательно пользователь ввёл неверный пароль. Ты можешь его об этом предупредить и предложить закончить работу с программой, если же он откажется это сделать, то в дальнейшем программа будет себя вести непредсказуемо(скорее всего упадёт просто), т.к. расшифрованные неверным ключом данные не соответствуют вектору исходных данных. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| frodo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 4.4.2008 Репутация: нет Всего: 1 |
ет что получается мне все данные так шифровать чтоли? Всеравно же будет проверка, на совпадение? а проверку придется осуществлять такимже способом!!! |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Нет, только те, которые являются критическими при выполнении программы(т.е. от которых напрямую зависит логика работы).
Ты опять не понял. Я предлагаю проверять контрольные суммы, но это лишь для удобства пользователя. Можно вообще ничего не проверять, просто пустить программу дальше и она, в случае ввода неверного пароля(aka ключа), скорее всего, упадёт, т.к. неверные данные(неверные, потому что были расшифрованы невалидным ключом) приведут к неверной работе. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| frodo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 4.4.2008 Репутация: нет Всего: 1 |
W4FhLF спс за идею!!!! но я покамись на первую версию просто оставлю проверку пароля, так как несильно понимаю ету шифровку
а в дальнейшем уже как разберусь чтонить буду думать!!! Кстати а мануала по такому(с примерчиком) нету? Это сообщение отредактировал(а) frodo - 5.4.2008, 11:07 |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Я не встречал. Ну схематично это можно описать так:
В качестве криптоалгоритма можешь взять простейший XTEA или RC4. Это сообщение отредактировал(а) W4FhLF - 5.4.2008, 11:31 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| frodo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 4.4.2008 Репутация: нет Всего: 1 |
W4FhLF, лады посмотрим, что получится!!!!
|
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
интересно выглядит, а главное похоже что будет работать, но это получается, что каждому пользователю программы надо знать некий секретный пароль (один для всех) и рано или поздно он попадёт к желающему декомпилить прогу, вместе с самой программой. это хацкер поставит брэйкпоинты на 13 строке , ввёдёт валидный пароль и таким образом доберётся до секретных данных. |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
v2v, я понимаю минусы данной схемы. Подобное реализовано во многих протекторах(ASProtect, WinLisence, Armadillo).
Мне как-то попадалась программа в которой использовалась данная схема, но там бало зашифровано начало процедуры(исполняемый код прямо). Но автор не подумал, что начало процедур у программ, скомпилированных одним и тем же компилятором, одинаковое. В итоге удалось написать брутфорсер, который за десять минут подобрал правильный ключ. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
||||
|
||||
| hijaq |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.4.2007 Репутация: нет Всего: нет |
Чтобы не было одинаковых паролей, можно для расшифровки использовать часть пароля (например, 10 символов из 16, а оставшиеся 6 - для идентификации клиента). Дополнительно, сам пароль можно поверх шифровать через White Box AES (чтобы взломщик не смог быстро достать пароль шифрования и произвести обратную процедуру). Это сообщение отредактировал(а) hijaq - 7.4.2008, 09:33 |
|||
|
||||
| Denjs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Если-бы дело было в QT4.3 я бы предожил описать инициацию второго окна на QScript а сам текст скрипта - подвергнуть шифрованию.
Соответсвенно - после рашифровки - выполняем скрипт и если все хорошо - то окно инициируется. иначе - нет окна и непонятно как его инициировать. Но надо понимать, что расшифрованные данные, при усердной отладке могут быть (а значит "будут") "перехвачены" в памяти... (по моему так)... не важно - скрипт это иили структура данных. и никого не будет сильно волновать как и чем они были зашифрованы - их можно будет использовать для "крака"... имхо... лучшая защита кода - не использовать защиту кода, а выносить часть или ключевую бизнес-логику в "недоступноедляотладки" место. В идеале - это программа клиент которая работает с веб-сервером. И часть ключевых функций приложения выполняется на сервере. Да, программа при этом слановится бесплатной, а продается время работы.... ) в частном случае - аналогичным образом поступают некоторые проиводители ключей "защиты" - они дают возможность заложить в ключ микропрограмму. а мы уже, "по правильному", должны заложить в этой программу часть бизнес-логики пиложения... Это сообщение отредактировал(а) Denjs - 8.4.2008, 01:18 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Технологии защиты программного обеспечения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |