![]() |
eXeL@B —› Основной форум —› Простая защита от ламеров, как быстро ее можно сломать? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 29 августа 2006 02:39 · Поправил: jangle · Личное сообщение · #1 Вот придумал еще один вариант защиты для своих программ. Изобретать что-то серьезное не имеет смысла, все равно сломают, поэтому лучше ограничиться защитой от начинающих и неопытных кракеров. Вот для примера - простейшие электронные часики, в незарегестрированной версии требует ввести серийник, если он не правильный, вместо циферблата отображает фигу ![]() Меня интересует, быстро ли можно сломать эту прожку, и какой уровень знания крекинга для этого требуется? ![]() ![]() |
|
Создано: 29 августа 2006 03:35 · Личное сообщение · #2 |
|
Создано: 29 августа 2006 03:37 · Личное сообщение · #3 |
|
Создано: 29 августа 2006 03:54 · Личное сообщение · #4 |
|
Создано: 29 августа 2006 04:08 · Личное сообщение · #5 |
|
Создано: 29 августа 2006 04:11 · Личное сообщение · #6 |
|
Создано: 29 августа 2006 04:15 · Личное сообщение · #7 |
|
Создано: 29 августа 2006 04:33 · Поправил: jangle · Личное сообщение · #8 |
|
Создано: 29 августа 2006 11:19 · Личное сообщение · #9 |
|
Создано: 29 августа 2006 12:12 · Личное сообщение · #10 |
|
Создано: 29 августа 2006 22:33 · Личное сообщение · #11 |
|
Создано: 30 августа 2006 02:32 · Личное сообщение · #12 |
|
Создано: 30 августа 2006 02:57 · Личное сообщение · #13 |
|
Создано: 30 августа 2006 08:03 · Личное сообщение · #14 |
|
Создано: 30 августа 2006 09:05 · Личное сообщение · #15 jangle Как раз защита ломается патчем. ![]() ![]() ![]() |
|
Создано: 30 августа 2006 23:10 · Личное сообщение · #16 Идея была такая, сделать для каждой копии программы свой серийник. Т.е. накомпилировать очень-очень много копий, и для каждой сгенерировать свой ключ. Причем серийник, является графом правильного вызова функций в программе. Для каждой копии программы, специальное приложение, производит перемешивание (обфускацию) исходных модулей и перекомпиляцию программы заново. В результате получаем уникальный EXE файл и уникальный ключ, который будет работать только с этой копией программы. Тоесть другой пользователь, не сможет применить чужой серийник к своей копии, они все различны на бинарном уровне. Например, при вводе серийника 5068A210 программа выполнит следующие действия: 5 - > Вызвать модуль 5 0 -> Ничего не делать 6 -> Вызвать модуль 6 8 -> Вызвать модуль 8 A2-> Три раза вызвать модуль 2 1 -> Вызвать модуль номер 1 0 -> Ничего не делать Любой другой порядок вызова модулей, будет неправильным, программа в лучшем случае слетит с GPF, в худшем начнет нести бред и выдавать неверные результаты (наказание за кряк) Теперь, не имеет смысла публиковать ключ в интернете, для каждой копии он будет уникальным. Нужно выкладывать в сеть дистрибутив+серийник, а значит легко можно вычислить виновника, а если еще прошить серийник внутрь электронного ключа? Пользователь вообще его видеть не будет. Есть конечно вариант, пригласить кракера, чтобы он за деньги взломал протокол обмена с ключом, и отвязал программу. Но в конечном счете, это может сделать взлом нерентабельным, дешевле будет просто купить программу. ![]() |
|
Создано: 30 августа 2006 23:19 · Личное сообщение · #17 |
|
Создано: 30 августа 2006 23:22 · Личное сообщение · #18 |
|
Создано: 30 августа 2006 23:25 · Личное сообщение · #19 Ara пишет:Ну и маразматические защиты - тем не менее, эту "маразматическую" защиту никто тут так и не поломал... ![]() Ara пишет: Всегда найдется добрый юзверь, котрый выложит дистрибутив свой и свой ключик людям Да конечно и такое бывает. Но не каждый юзверь, особенно из малых городов, может запросто скачать из сети 70-100 мбайт дистрибутива. Плюс всегда можно найти виновника, и предьявить притензии... ![]() |
|
Создано: 30 августа 2006 23:30 · Личное сообщение · #20 |
|
Создано: 30 августа 2006 23:41 · Поправил: jangle · Личное сообщение · #21 pavka пишет: Интересно а к какой категории ты себя относишь? Ламер! Ну канешна ламер ![]() pavka пишет: Можно ссылку хоть на одну твою прогу очень интересно помотреть? По работе не хочу кидать, а то еще набегут злобные кракеры... Небольшой пример из старого - компилятор скриптового языка http://scriptcom.narod.ru http://scriptcom.narod.ru , теперь не поддерживается, т.к. был куплен Gentee Inc. для своей новой линейки инсталляторов СreateInstall ![]() |
|
Создано: 30 августа 2006 23:48 · Личное сообщение · #22 |
|
Создано: 30 августа 2006 23:59 · Личное сообщение · #23 jangle Имхо если программа будет такая востребовательная, то её тупо скрадят, а если это опять будет "какой-то видео конвертер или риппер" (ц. помоему АРА сказал), то нах оно кому-то сдалось если есть куча вариантов? Если же это будет что-то типа 1С то и на это найдётся свой Соболь!!! ----- ~ the Power Of Reversing team ~ ![]() |
|
Создано: 31 августа 2006 00:16 · Личное сообщение · #24 jangle пишет: Нужно выкладывать в сеть дистрибутив+серийник, а значит легко можно вычислить виновника Виновника можно вычислить еще проще - если сам ключ будет содержать имя владельца ключа. А отследить владельца взломанной программы можно по водяным знакам (раз уж на то пошло, что ты для каждого клиента делаешь свою версию). ![]() |
|
Создано: 31 августа 2006 00:55 · Личное сообщение · #25 |
|
Создано: 31 августа 2006 01:15 · Личное сообщение · #26 jangle пишет: Любой другой порядок вызова модулей, будет неправильным, программа в лучшем случае слетит с GPF, в худшем начнет нести бред и выдавать неверные результаты (наказание за кряк) Если юзер ошибся в одной цифре, думаю он не очень обрадуется такой "функциональности". Проще криптовать модули с ключем, который будет у всех разный, по крайней мере можно будет сравнивать хеш и не "наказывать" простых пользователей. От ламера подобный подход вполне покатит. jangle пишет: а если еще прошить серийник внутрь электронного ключа? Это не сильно усложнит взлом как показывает практика. ![]() |
|
Создано: 31 августа 2006 02:36 · Личное сообщение · #27 |
|
Создано: 31 августа 2006 04:59 · Личное сообщение · #28 Gmc пишет: Если юзер ошибся в одной цифре, думаю он не очень обрадуется такой "функциональности". Для этого, в проге есть проверка CRC пароля, поэтому неправильный ввести не получится. Gmc пишет: Это не сильно усложнит взлом как показывает практика. Главное чтобы он стоил дороже самой программы. tundra37 пишет: 1) Защита очень дорогая - годится только для спец-программ. 2) Update тоже немыслимо делать. 3) Отладка тоже та еще : каждый раз придется тщательно проверять, что защита не испортила функционал. Никто не согласится такое производство оплачивать. Защита совсем не дорогая, ведь изначально мы имеем рабочий и полностью отлаженный исходник. Затем специальная прога перемешивает модули, расставляет запутывающие ветвления, обфусцирует и в конце компилирует программу, складывая ее в отдельную папку вместе с ключом. Таким образом можно набилдить сотни и тысячи копий программы (пока на диске место есть). Логика работы не меняется, меняется физическое расположение модулей и функций в бинарнике. В каждой версии оно будет другим, и для правильно вычисления переходов нужен свой ключ. Серийник, превращается как бы в код интерпритатора, каждый его байт - инструкция, какие модули надо вызывать для правильной работы программы. Преимущество перед шифрованием в том, что при расшифровке, программу можно легко сдампить, и отвязать от защиты. В моем случае никакой расшифровки в принципе нет, программа просто интерпретирует команды ключа для правильной работы. ![]() |
|
Создано: 31 августа 2006 05:08 · Личное сообщение · #29 jangle пишет: Преимущество перед шифрованием в том, что при расшифровке, программу можно легко сдампить, и отвязать от защиты. В моем случае никакой расшифровки в принципе нет, программа просто интерпретирует команды ключа для правильной работы. Преимущества нет, ибо кардится также элементарно, как и прога юзающая шифрование.Кстати от ватермарков панацеи тоже нет, так что тут в принципе принципиально без разницы - твоя ли защита, или защита с криптоалго и ватермарками. Что же касается подбора ключа, то имея валидный ключ для твоей проги можно составить трассу и проанализировать что и как. jangle пишет: Затем специальная прога перемешивает модули, расставляет запутывающие ветвления, обфусцирует и в конце компилирует программу, складывая ее в отдельную папку вместе с ключом. А ты уже написал эту прогу для своего крякми ![]() ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 01 сентября 2006 03:32 · Личное сообщение · #30 jangle пишет: Преимущество перед шифрованием в том, что при расшифровке, программу можно легко сдампить, и отвязать от защиты. Это если она у тебя расшифрована, можно веди шифровать отдельные модули и расшифровывать в зависимости от лицензии (без ключа расшифровка невозможна), такое есть в последних аспротектах. Если с привязкой к железу, тогда в дампе проги есть смысл. Если привязки нет, то при валидном ключе можно и так распростанять. ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Основной форум —› Простая защита от ламеров, как быстро ее можно сломать? |