Показать сообщение отдельно
Старый 17.02.2015, 14:31   #20
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: "Защита" *.DLL

Сообщение от impersonalis Посмотреть сообщение
Хотелось бы узнать мнение Knightmare по этому вопросу.
Ну для начала немного кэпства: все можно поломать (ну исключая разве что какие-нибудь веб-сервисы, но и то возможности некоторые есть), скорость поломания зависит от популярности.
Если ты делаешь что-то не особо популярное (или очень узконаправленное) и врядли над этим будет пыхтеть куча людей чтобы изломать и выкинуть на торренты, то можно особо не заморачиваться с защитой изощренной, потому как лишняя работа (ну разве что для лулзов, для лулзов как я уже писал можно хоть что делать без каких-либо обоснований). Если кого-то приспичит очень сильно, то все равно сломают, а большинство юзеров и с весьма простой защитой соснут.
В целом обфусцированный кусок кода для проверки ключей, который в целях отдельного извращения можно размазать по функционалу либы, и частично на результат проверки завязать функционал (ну там из правильного куска ключа получается правильная константа и все работает верно), у нас был код который крашил не до конца поломанную (если остановится на проверке ключа и не втыкать что дальше в движке происходит) либу, например. Антидебаггерная защита тож полезной будет, потому как одно дело с дебаггером ковырять ассемблерную мешанину, а другое дело медитировать на этот самый ассемблер без возможности запуска. Плюс всегда можно написать свой упаковшик с самопальным шифрованием (но тут я не уверен насколько возможно в современных вендах с наглой мордой запихать в память код и сказать что его надо выполнять), тогда соответственно при инициализации DLL с верным ключом в память развернется уже непосредственно код с функционалом либы, но даже при возможности загрузки левого кода задача не самая тривиальная.
А вообще по возможности можно все вынести на сервер, а в либе будет только связь с ним, типа отправить запрос, распарсить ответ. Тогда хоть заломайся в либе нихера толкового не будет, надо ломать уже сервер, что несколько сложнее, а если он правильно анально огорожен, то и практически невозможно (ну всякие там Heartbleedы всегда могут нарисоваться). Хотя этот вариант не везде подойдет (интернет сейчас есть в любом зажопинске, но для чего-то реалтаймового не подойдет очевидно). Алсо при этом подходе легко выпиливаются скомпрометированные ключи. Ну а если функционал либы уникальный и нужный кому-то, то этот кто-то согласится и на такие условия. И плюсом сюда крайне просто под разные платформы все это растиражировать, а если под какую-то и нет официальной либы, то кому надо сами запилят по документации к API.
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
ABTOMAT (17.02.2015), Arton (21.02.2015), impersonalis (17.02.2015), moka (17.02.2015), RegIon (18.02.2015), St_AnGer (17.02.2015)