Сейчас на форуме: kris_sexy, site-pro, vasilevradislav (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Ничего конкретного о методах защиты.
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 17 марта 2007 15:47
· Личное сообщение · #1

Доброго всем!
Предлагаю поразмыслить на тему защиты ПО без привлечения специализированых аппаратных средств. Метод в общем-то один: защита комбинацией Имя/РН или просто РН, протекторы пока учитывать не будем, а так же не будем принимать во внимание хитрые способы антиотладки и т.п. Вот пишет автор коммерческий продукт на ООП (делфи или С, Яву пока не учитываем) и в принципе не важно, будет ли он знатоком математики или будет знать только xor, сделает 8-значный РН или 465546-битный кейфайл, а свою прогу он снабдит проверками, пусть их будет 10, но это всего лишь 10 условных переходов, которые можно патчить. Варианты одного РН, которым пошифрован код тем более не рассматриваем т.к. можно с таким же успехом сбросить прогу в запароленый rar-архив. Остается только RSA, но тоже купят и расшарят, и одного ключа хватит на всех.

Всё так плохо?

-----
Я медленно снимаю с неё UPX... *FF_User*





Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 17 марта 2007 16:07 · Поправил: HoBleen
· Личное сообщение · #2

Перефразирую для себя - как убедить пользователя купить ключ.

Способ 1-й: Без ключа невозможна какая-то функция (всякие там шифраторы кода, естейственно, не рассматриваются), например, часть кода вынесена из программы, происходит запрос в интернет. Минусы:
- банальное отсутствие интернета у пользователя
- если код большой, то будет загружен сервер и канал, +клиент слишком долго дожидается конца запроса
- если код маленький, то, проснифав траффик, появится вероятность раскрытия алгоритма (анализ черного ящика).

Способ 2-й "социалогический": Внушить юзеру, что техподдержка, которая присутствует только в зарегистрированной версии, много значит. Подходит также не для всех программ.

Так что универсального способа имхо нету



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 17 марта 2007 17:28
· Личное сообщение · #3

Если прога работает и способна приносить доход, то пользователю похер на ключ. Так же как рисовали в типографиях в Adobe или Corel без ключей, так и будут рисовать или перейдут на халявный gimp & incscape (что-то вроде).
Загрузки ч/з инэт довольно интересная тема, даже я бы сказал что это ужас для взломщика и наиболее мерзкий тип защиты, но и в этом случае можно сдампить/наснифать и юзать без инэта.
Может быть в эбауте или в коде на ЕР влепить "grtz 2: <0day тимы, авторитеты и всякие другие крякерские помпезности>" =)

-----
Я медленно снимаю с неё UPX... *FF_User*





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 17 марта 2007 17:28
· Личное сообщение · #4

1. Донглы.. ну это так ;)
2. Дорогой софт - каждому юзверю своя копия.. вотермарки и все такое.. и поверх этого или донгл, или крипто-схема грамотно построенная..

-----
Тут не могла быть ваша реклама




Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 17 марта 2007 18:21
· Личное сообщение · #5

1. Сделать демо-версию, если понравится, пусть юзер купит.
2. Разнести процедуру генерации серийника по всей программе, наставить ложных процедур.




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 17 марта 2007 18:28
· Личное сообщение · #6

kaiZer пишет:
1. Сделать демо-версию, если понравится, пусть юзер купит.

Ломать, естейственно, будут полную версию. Слабое место в современных защитах - если в сеть просочился один ключ, то программа, считай, взломана.

kaiZer пишет:
Разнести процедуру генерации серийника по всей программе, наставить ложных процедур.

Это всё обходится, разговор про обобщенный случай - как сделать так чтобы не было типа
AlexZ пишет:
и одного ключа хватит на всех.





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 17 марта 2007 18:34
· Личное сообщение · #7

kaiZer пишет:
1. Сделать демо-версию, если понравится, пусть юзер купит.
2. Разнести процедуру генерации серийника по всей программе, наставить ложных процедур.

большинство софта сегодня) и ничего, ломаемо..кардим/ломаем.. все..

-----
Тут не могла быть ваша реклама




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 17 марта 2007 18:42 · Поправил: AlexZ
· Личное сообщение · #8

Если специализированое коммерческое ПО, например для КБ, БТИ, и прочих организаций, то думаю есть смысл делать спешл-билды, правда если кол-вол пользователей перевалят за 10, то это становится геморром ;) Тогда в случае утечки можно знать кому навалять 3,14...
Про дерьмоверсию неплохо, но сама по себе она никому нах не нужна да и с распространением траблы(опять же надо высылать фулл-билды), а как только появится фулл, то про дерьмоверсию забудут (все-все-все).

Мне например очень интересной показалась защита в PE Explorer, а т.к. последнее время обращаю внимание на модульную архитектуру ПО, то сейчас интересно как изготовить класс, который мог бы защитить прогу без всяких вшиваний в тело проги патчей, меток и тп. пережитков процедурного программирования.

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 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*




Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 17 марта 2007 19:12
· Личное сообщение · #10

Ну дык на крайний случай можно поставить "таких 25 кусков", но выполнять в произвольном порядке, либо от какого-либо значения (например имя компа).




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 17 марта 2007 19:15
· Личное сообщение · #11

kaiZer пишет:
Ну дык на крайний случай можно поставить "таких 25 кусков", но выполнять в произвольном порядке, либо от какого-либо значения (например имя компа).

и в чем сложность? ну в тотале куча чисто рандомных проверок.. обходится до тупости просто.. но можно и искать каждую проверку и все такое..

-----
Тут не могла быть ваша реклама





Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 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>
Простите, возможно немного не влез в условия первого поста, привлек говнопрот. Просто сегодня как раз думал на эту тему, решил излиться.



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 18 марта 2007 10:28
· Личное сообщение · #13

NaumLeNet, да ничего, любое мнение по делу - на пользу.

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 марта 2007 21:43 · Поправил: -=The Bone=-
· Личное сообщение · #14

Можно еще адрес регфункции вообще нигде в ексишнеке не использовать, а генерировать, типа


InfoAboutComputer=Hardware+OS+ProgramPath+kernel32.dll_version+number_ of_winsp+....
addr=GetRegFuncAddr(InfoAboutComputer, Serial)
call addr


при неправильном серийнике на 98 BSoD обеспечен +
понатыкать таймеров, которые каждые x минут проверяют зареганность +
если есть много потоков - каждые rnd(0,1)*x*[y/(частота проца)]*bus_speed отрезков времени случайный поток проверяет зареганность




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 18 марта 2007 21:47
· Личное сообщение · #15

-=The Bone=- пишет:
kernel32.dll_version+number_ of_winsp

Т.е. программа перестанет быть зареганной при апдейте системы?

-=The Bone=- пишет:
call addr

Находим 1 ключ, получаем все необходимые адреса. Обилие потоков и запутанности также ничего не дает, т.к. только оттягивает время взлома.




Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 19 марта 2007 02:02 · Поправил: Flint
· Личное сообщение · #16

AlexZ пишет:
прогу он снабдит проверками, пусть их будет 10, но это всего лишь 10 условных переходов, которые можно патчить

В правильно поставленном вопросе содержится половина ответа! ИМХО, при заданных условиях достойную защиту сделать невозможно. В моем понимании идеальная защита без использования всяких изъебств - есть - взять РН, получить от него хэш, получить ~ CRC хэша, закриптовать тело программы хэшем, вставить stub для запроса РН, в нем запрашивать РН, вычислять хэш РН, а также CRC хэша? сравнивать CRC с правильным и по результатам - либо расшифровываем программу хэшем , либо MessageBox "Введен неверный РН".
Пропатчить невозможно, т.к один хер расшифруется все криво , сгенерить невозможно, т.к известен только CRC, если только кардить!

-----
Nulla aetas ad discendum sera





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 19 марта 2007 04:32
· Личное сообщение · #17

HoBleen пишет:
т.к. только оттягивает время взлома


ну если на твою программу не поступил заказ, то это многое решает. зачем тратить неделю на релиз твоей софтины, если за это же время можно наштамповать сотню релизов winrar




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 19 марта 2007 08:24
· Личное сообщение · #18

шифровка ключем это до первого кардинга

-----
Тут не могла быть ваша реклама





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 19 марта 2007 09:06
· Личное сообщение · #19

Тема какая-то странная. Как говорится, всё, что можно запустить, можно и сломать. Другой вопрос, что иногда так задолбает расковыривать виртуальные машинки и прочую фигню, что проще забросить нафиг софтину. Отсюда в общем-то и следует, что сломать можно практически любую программную вещь, но иногда она стоит дешевле, чем время, потраченное на ковыряние в ней, вот тут и будет оптимальная политика компании, если она собралась барыжить этой вещью.




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 23 марта 2007 20:31
· Личное сообщение · #20

Прятать защитный код на неиспользуемых WinAPI-функциях, писать на C++ без таблицы импорта, +криптоалгоритм стойкий, +мусорный код, +антиотладка, +пакер/прот, +урезанная демка без возможности активирования функций (ака их отсутствие), +аппаратная привязка, +привязка к топологии диска СВОЯ, а не старфорсовская, которую все подряд отвязывают (над последним думать долго надо).

Криптоалгоритмы самим НЕ ДЕЛАТЬ.

И программа будет сломана через полгода, не раньше, если писал не оболтус. Хотя это и не факт, что команда TSRh не поломает через неделю, взявшись вместе.

Кто хочет вместе написать книгу по методам защиты ПО? =)))

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 9.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 марта 2007 21:17
· Личное сообщение · #21

нет ничего лучше ВМ со сложной логикой и с самоконтреолем (изменение байта ведет к необходимости изменению других)




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 24 марта 2007 03:21
· Личное сообщение · #22

NaumLeNet, базовую версию сейчас отвязывают так, что только байты летят. Будешь юзать продвинутую с ring-0 антиотладкой? Я даже знаю, как далеко пошлют пользователи шаравары. Подходит разве что для каких-нибудь редких продуктов, достойной альтернативы которым нет.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 24 марта 2007 06:01
· Личное сообщение · #23

Crawler пишет:
Кто хочет вместе написать книгу по методам защиты ПО? =)))

знаешь, умение отломать защиту и способность ее написать - это разные (иногда не связанные) вещи



Ранг: 9.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 24 марта 2007 08:55
· Личное сообщение · #24

Самый лучший способ защиты - это её отсутствие: публиковать только демку без возможности регистрации а полную версию довать прямо в руки или через курьера со скрытыми личными ключами (о которых покупатель не знает) в случае утечки этому клиенту следующие версий не давать



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 24 марта 2007 11:28
· Личное сообщение · #25

лучшая защита это распространять софт на именованых CD, с ватермарками, полной инфой о владельце и прочее ИМХО =)

-----
Shalom ebanats!




Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 + таймеры




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 24 марта 2007 20:56
· Личное сообщение · #27

На самом деле есть 1 более-менее хороший способ, но пока подходящий немногим-часть кода просто выносить в выполнение на сервере. Где-то уже писали, что будущее скорее всего за этим, правда не ближайшее будущее, а, скорее, относительно далёкое.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 24 марта 2007 22:16
· Личное сообщение · #28

Archer пишет:
На самом деле есть 1 более-менее хороший способ, но пока подходящий немногим-часть кода просто выносить в выполнение на сервере.

не обязательно на сервере - есть донглы в которые тоже можно вынести часть логики программы




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 24 марта 2007 22:31
· Личное сообщение · #29

ssx пишет:
не обязательно на сервере - есть донглы в которые тоже можно вынести часть логики программы

Суть примерно одинакова.. Но с донглом еще куда ни шло..а если подломают сайт?

-----
Тут не могла быть ваша реклама





Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 24 марта 2007 22:34
· Личное сообщение · #30

lord_Phoenix пишет:
..а если подломают сайт?

А прикольно - чтобы сломать программу, надо ломать сайт =) Чтобы убрать функционал программы, нужно устроить ДДОС атаку... Оригинально.


. 1 . 2 . >>
 eXeL@B —› Крэки, обсуждения —› Ничего конкретного о методах защиты.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати