|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Загрузка SWF в контейнер с защитой от скачивания
Всем привет.
Хочу сделать хоть какую-то защиту своего проекта. Прочитал уже много статей по защите, про всякие методы запутывания, обфускаторы и т.д., понимаю что защититься полностью не получится никогда, но можно хотя бы отсеять часть неугомонных. В общем есть контейнер, скомпилированный в *.exe и *.dmg. Рабочий swf всегда будет подгружаться с сервера в этот контейнер при запуске. 1) Возможно ли реализовать так, чтобы swf грузился только в этот контейнер, но нельзя было скачивать отдельно, например, через браузер? Понятно, что профи и это обойдет, но все же.. 2) Где-то встречал статью, что swf можно передавать в виде байткода - но как это реализовать? Или я что-то недопонял.. Заранее спасибо за советы.
__________________
кто не отвечает, того garbage collector забирает Последний раз редактировалось djken; 10.03.2017 в 00:26. |
|
|||||
undefined, а как смогут заглянуть во вкладку network, если контейнер десктопный?
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
можете пройтись по swf файлу обычным xor и расшифровать уже при загрузке бинарника в клиент
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
любой снифер - это и есть вкладка network
|
|
|||||
Цитата:
Дальше информация к размышлению -> Вопрос: какой смысл его как-то защищать? В приложении есть что-то особенное? Какие-то супер алгоритмы, которые все мечтают заполучить? Или там вся логика работы, включая подготовку к записи в базу данных на клиенте? На счет алгоритмов, как правило они никому нафиг не нужны. В сети и так полно всевозможных алгоритмов и ответов на форумах, так что можно найти практически все, что угодно. По поводу какой-то важной логики, ее нужно делать на сервере. Работу клиента тут надо минимизировать. Запросы, которые шлет флешка, в каком бы контейнере она не была, можно довольно легко перехватить. Даже если это будет по https. Чтобы перезватить https запросы, можно установить отладочный хром или огнелис, сделать логирование tls ключей, а потом сормить этот файлик wireshark'у. Вуала, трафик расшифрован. Кстати, по собственному опыту взлома подобных флешек могу сказать, что запущенную флешку можно выдернуть даже из оперативки. Правда не в формате swf, а csw, но все равно поддающемся декомпиляции. Для этого даже есть готовые проги. Не помню как точно называется та, что использовал я, по-моему swf dupm или swf dumper. Но она с успехом дергала защищенную флешку из оперативки Вывод. Профессионал взломает, если захочет. А от новичка будет достаточно простой обфускации
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
caseyryan, https да, собираюсь подключить comodo, это мне еще предстоит разобраться как оно работает - никогда не подключал, и уж тем более как потом еще swf будет общаться с сервером через этот протокол... Буду разбираться.
Насчет ключа - получается прийдется слать один и тот же ключ, чтобы его можно было идентифицировать на сервере?.. Или как-то можно идентифицировать генерируемый? По поводу смысла защищать: приложение платное. Авторизация через соцсети и покупка ключей на сервере. Приложение запускается и требует ввести ключ. Вот хотелось бы немного защитить приложение.
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
Цитата:
Цитата:
Естественно, генерировать приватные и публичные ключи с помощью флешки занятие глупое. Она скорее всего "умрет" в процессе, так как он очень тяжелый. Но для этого можно использовать openssl. То есть клиент присылает данные для покупки проги, например свой email и еще что-то. Ты генерируешь с помощью openssl и своего приватного ключа ему код доступа и отправляешь обратно. Он вводит в прогу те же данные, свой email и/или что-то еще, например номер телефона, главное чтобы это было использовано тобой при генерации ключа, и код доступа. А дальше, прога клиента, которую ты ему продал, уже имея вшитый публичный ключ расшифровывает им код доступа и если расшифрованная строка совпала с той, что использовалась при шифровании (в данном случае его email), то все ок, если нет, то шлем его подальше и обрубаем прогу. Код программы стоит обфусцировать, чтобы затруднить поиск алгоритмов расшифровки. Но это, конечно же, не дает надежной защиты. Мне как-то раз приходилось взламывать одно платное ANE для андроида (каюсь ). Так там разработчик использовал как раз такой подход. Взломать его удалось буквально за 15 минут. Просто декомпилировал jar архив внутри, увидел, что код не обфусцирован и довольно понятен, импортировал этот декомпил в Android Studio, выпилил код проверки, и снова собрал. Дальше обновил jar внутри ane, и приложение излечилось от жадности) Скажу честно, если бы код был обфусцирован, и алгоритм защиты спрятан получше, я бы не стал возиться, так как делал это больше из любопытства, чем от необходимости
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
По поводу обфускаторов - посмотрел, что-то они все больно дорогие.. Из всех приглянулся secureSWF, но как-то уж дорого-богато )
Расскажите пожалуйста, хотя бы вкратце, а как swf шифруется с помощью XOR ? Это весь код шифруется или только какие-то переменные?... Следовательно SWF лежит на сервере зашифрованная, а контейнер подгружает ее и уже расшифровывает, зная ключ?..
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
djken
Да, всё верно, подгружаете зашифрованную swf с сервера как ByteArray, выполняете xor декодирование и загружаете полученный ByteArray в Loader.loadBytes().
__________________
Дети не должны знать о своих родителях |
Часовой пояс GMT +4, время: 21:27. |
|
« Предыдущая тема | Следующая тема » |
|
|