Сейчас на форуме: kris_sexy, site-pro, vasilevradislav (+5 невидимых) |
![]() |
eXeL@B —› Крэки, обсуждения —› Ничего конкретного о методах защиты. |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 17 марта 2007 15:47 · Личное сообщение · #1 Доброго всем! Предлагаю поразмыслить на тему защиты ПО без привлечения специализированых аппаратных средств. Метод в общем-то один: защита комбинацией Имя/РН или просто РН, протекторы пока учитывать не будем, а так же не будем принимать во внимание хитрые способы антиотладки и т.п. Вот пишет автор коммерческий продукт на ООП (делфи или С, Яву пока не учитываем) и в принципе не важно, будет ли он знатоком математики или будет знать только xor, сделает 8-значный РН или 465546-битный кейфайл, а свою прогу он снабдит проверками, пусть их будет 10, но это всего лишь 10 условных переходов, которые можно патчить. Варианты одного РН, которым пошифрован код тем более не рассматриваем т.к. можно с таким же успехом сбросить прогу в запароленый rar-архив. Остается только RSA, но тоже купят и расшарят, и одного ключа хватит на всех. Всё так плохо? ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 17 марта 2007 16:07 · Поправил: HoBleen · Личное сообщение · #2 Перефразирую для себя - как убедить пользователя купить ключ. Способ 1-й: Без ключа невозможна какая-то функция (всякие там шифраторы кода, естейственно, не рассматриваются), например, часть кода вынесена из программы, происходит запрос в интернет. Минусы: - банальное отсутствие интернета у пользователя - если код большой, то будет загружен сервер и канал, +клиент слишком долго дожидается конца запроса - если код маленький, то, проснифав траффик, появится вероятность раскрытия алгоритма (анализ черного ящика). Способ 2-й "социалогический": Внушить юзеру, что техподдержка, которая присутствует только в зарегистрированной версии, много значит. Подходит также не для всех программ. Так что универсального способа имхо нету ![]() ![]() |
|
Создано: 17 марта 2007 17:28 · Личное сообщение · #3 Если прога работает и способна приносить доход, то пользователю похер на ключ. Так же как рисовали в типографиях в Adobe или Corel без ключей, так и будут рисовать или перейдут на халявный gimp & incscape (что-то вроде). Загрузки ч/з инэт довольно интересная тема, даже я бы сказал что это ужас для взломщика и наиболее мерзкий тип защиты, но и в этом случае можно сдампить/наснифать и юзать без инэта. Может быть в эбауте или в коде на ЕР влепить "grtz 2: <0day тимы, авторитеты и всякие другие крякерские помпезности>" =) ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 17 марта 2007 17:28 · Личное сообщение · #4 |
|
Создано: 17 марта 2007 18:21 · Личное сообщение · #5 |
|
Создано: 17 марта 2007 18:28 · Личное сообщение · #6 kaiZer пишет: 1. Сделать демо-версию, если понравится, пусть юзер купит. Ломать, естейственно, будут полную версию. Слабое место в современных защитах - если в сеть просочился один ключ, то программа, считай, взломана. kaiZer пишет: Разнести процедуру генерации серийника по всей программе, наставить ложных процедур. Это всё обходится, разговор про обобщенный случай - как сделать так чтобы не было типа AlexZ пишет: и одного ключа хватит на всех. ![]() |
|
Создано: 17 марта 2007 18:34 · Личное сообщение · #7 |
|
Создано: 17 марта 2007 18:42 · Поправил: AlexZ · Личное сообщение · #8 Если специализированое коммерческое ПО, например для КБ, БТИ, и прочих организаций, то думаю есть смысл делать спешл-билды, правда если кол-вол пользователей перевалят за 10, то это становится геморром ;) Тогда в случае утечки можно знать кому навалять 3,14... Про дерьмоверсию неплохо, но сама по себе она никому нах не нужна да и с распространением траблы(опять же надо высылать фулл-билды), а как только появится фулл, то про дерьмоверсию забудут (все-все-все). Мне например очень интересной показалась защита в PE Explorer, а т.к. последнее время обращаю внимание на модульную архитектуру ПО, то сейчас интересно как изготовить класс, который мог бы защитить прогу без всяких вшиваний в тело проги патчей, меток и тп. пережитков процедурного программирования. ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 17 марта 2007 18:50 · Личное сообщение · #9 kaiZer пишет: 2. Разнести процедуру генерации серийника по всей программе, наставить ложных процедур. По этому поводу предлагаю на рассмотрение несколько типичных методов: 1) if SuccessReg(RN) then RunRegistered; - без коментов.
2) asm .... end; //И таких 25 кусков с индивидуально написаными проверками, мусорным кодом, эмуляцией команд и т.п.
3) if SuccessReg(Rn) then if Random(ReallySuccessReg) if (IsMonday)and(ImReged) then....
В общем-то как не крути, а сводится к насыщенности проверок и изощренности их выполнения. ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 17 марта 2007 19:12 · Личное сообщение · #10 |
|
Создано: 17 марта 2007 19:15 · Личное сообщение · #11 kaiZer пишет: Ну дык на крайний случай можно поставить "таких 25 кусков", но выполнять в произвольном порядке, либо от какого-либо значения (например имя компа). и в чем сложность? ну в тотале куча чисто рандомных проверок.. обходится до тупости просто.. но можно и искать каждую проверку и все такое.. ----- Тут не могла быть ваша реклама ![]() |
|
Создано: 17 марта 2007 23:19 · Поправил: NaumLeNet · Личное сообщение · #12 Дорогой и навороченный протектор (типа SF PS) с валидацией / активацией в инете (вспоминаю Fess'a и не только) оправдывает себя на умеренно дешевом продукте с правильным саппортом. Посмотрите на SmartSoft / TrafficInspector. Какой был перерыв между кейгеном для версией 1.0.0.хх (про тиресет молчу) и 1.4.ххх by Faza? ) Почитайте комментарии последнего на руборде, он ведь дело говорит. А сколько юзверей за это время перешли на легальное использование? SmartSoft жгут. А посмотрите на Safe'n'Sec? ) Первый продукт после каспера, имхо, который люди покупают "с удовольствием" (я бы не купил, лиц. соглашение (пункт срока лицензии) меня убивает напрочь). Кому из вас охота париться с sf бесплатно? ) Сколько попыток было рубордистов (да и не только) найти помощь в лице крякеров? ) Как часто обновляется sf и как часто может менять защиту его владелец? Только не примите за рекламы, плиз. Прежде всего, я любитель вареза ) Никакого отношения не имею к вышеуказанному проту. Просто если когда буду делать шаравару на широкую аудиторию (не дай бох) - возьму в руки именно его. <edited> Простите, возможно немного не влез в условия первого поста, привлек говнопрот. Просто сегодня как раз думал на эту тему, решил излиться. ![]() |
|
Создано: 18 марта 2007 10:28 · Личное сообщение · #13 |
|
Создано: 18 марта 2007 21:43 · Поправил: -=The Bone=- · Личное сообщение · #14 Можно еще адрес регфункции вообще нигде в ексишнеке не использовать, а генерировать, типа
при неправильном серийнике на 98 BSoD обеспечен + понатыкать таймеров, которые каждые x минут проверяют зареганность + если есть много потоков - каждые rnd(0,1)*x*[y/(частота проца)]*bus_speed отрезков времени случайный поток проверяет зареганность ![]() |
|
Создано: 18 марта 2007 21:47 · Личное сообщение · #15 |
|
Создано: 19 марта 2007 02:02 · Поправил: Flint · Личное сообщение · #16 AlexZ пишет: прогу он снабдит проверками, пусть их будет 10, но это всего лишь 10 условных переходов, которые можно патчить В правильно поставленном вопросе содержится половина ответа! ИМХО, при заданных условиях достойную защиту сделать невозможно. В моем понимании идеальная защита без использования всяких изъебств - есть - взять РН, получить от него хэш, получить ~ CRC хэша, закриптовать тело программы хэшем, вставить stub для запроса РН, в нем запрашивать РН, вычислять хэш РН, а также CRC хэша? сравнивать CRC с правильным и по результатам - либо расшифровываем программу хэшем , либо MessageBox "Введен неверный РН". Пропатчить невозможно, т.к один хер расшифруется все криво , сгенерить невозможно, т.к известен только CRC, если только кардить ![]() ----- Nulla aetas ad discendum sera ![]() |
|
Создано: 19 марта 2007 04:32 · Личное сообщение · #17 |
|
Создано: 19 марта 2007 08:24 · Личное сообщение · #18 |
|
Создано: 19 марта 2007 09:06 · Личное сообщение · #19 Тема какая-то странная. Как говорится, всё, что можно запустить, можно и сломать. Другой вопрос, что иногда так задолбает расковыривать виртуальные машинки и прочую фигню, что проще забросить нафиг софтину. Отсюда в общем-то и следует, что сломать можно практически любую программную вещь, но иногда она стоит дешевле, чем время, потраченное на ковыряние в ней, вот тут и будет оптимальная политика компании, если она собралась барыжить этой вещью. ![]() |
|
Создано: 23 марта 2007 20:31 · Личное сообщение · #20 Прятать защитный код на неиспользуемых WinAPI-функциях, писать на C++ без таблицы импорта, +криптоалгоритм стойкий, +мусорный код, +антиотладка, +пакер/прот, +урезанная демка без возможности активирования функций (ака их отсутствие), +аппаратная привязка, +привязка к топологии диска СВОЯ, а не старфорсовская, которую все подряд отвязывают (над последним думать долго надо). Криптоалгоритмы самим НЕ ДЕЛАТЬ. И программа будет сломана через полгода, не раньше, если писал не оболтус. Хотя это и не факт, что команда TSRh не поломает через неделю, взявшись вместе. Кто хочет вместе написать книгу по методам защиты ПО? =))) ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. ![]() |
|
Создано: 23 марта 2007 21:17 · Личное сообщение · #21 |
|
Создано: 24 марта 2007 03:21 · Личное сообщение · #22 |
|
Создано: 24 марта 2007 06:01 · Личное сообщение · #23 |
|
Создано: 24 марта 2007 08:55 · Личное сообщение · #24 |
|
Создано: 24 марта 2007 11:28 · Личное сообщение · #25 |
|
Создано: 24 марта 2007 14:46 · Личное сообщение · #26 HoBleen пишет: -=The Bone=- пишет: kernel32.dll_version+number_ of_winsp Т.е. программа перестанет быть зареганной при апдейте системы? Только для генерации серийника при незареганности, потом "плавающие" значения можно опустить HoBleen пишет: -=The Bone=- пишет: call addr call addr1, call addr2 .... call addr n + таймеры ![]() |
|
Создано: 24 марта 2007 20:56 · Личное сообщение · #27 |
|
Создано: 24 марта 2007 22:16 · Личное сообщение · #28 |
|
Создано: 24 марта 2007 22:31 · Личное сообщение · #29 |
|
Создано: 24 марта 2007 22:34 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Крэки, обсуждения —› Ничего конкретного о методах защиты. |