![]() |
Кодирование изображений
Здравствуйте!
Есть папка с изображениями: 1.png, 2.png и так далее. Во флэшке динамически подгружаются эти изображения. Вопрос: как мне закодировать изображения, чтобы потом на ActionScript 3 удобно бы программно раскодировать. То есть хранить в папке нечто вроде 1.abc, 2.abc, подружать и в коде снова вернуть нормальный вид. Поискал на эту тему, не нашел. Подскажите, в каком направлении копать. Уверен есть некие готовые хорошие решения. |
а зачем? )
|
Цитата:
|
Нужно будет: декомпилируют вашу swf и достанут ваш декодер. И никакой обфускатор не поможет.
|
Цитата:
|
короче грузим файл , можно вообще без расширения, потом хватаем его по байтово через байтАррай, переводим в битмапдату, затем через PNGEncoder в png( сохраняем ) или же не переводя просто создаем битмам и добавляем на сцену )) ок ?
|
in4core, это чего это вы щас такое сказали?
я в том же firebuge посмотрю что флэшка тянет и скачаю себе..расширение/отсутствие оного не спасет.. то автор: если пренебреч тем процентом людей, которые расковыряют вашу флэшку и стибрят ваш алгоритм декодера, то: самое простое решение предварительно создать флэшку енкодер и завернуть байты через XOR (предварительно спрятав ключик во флэшке..ключик посложнее выбрать (я делал на 6-10 символов)). но эти все конвертации туда сюда будут затратны. тык |
Цитата:
Цитата:
|
Цитата:
"http://somedomain.com/getSomething?id=1234556" возвращающий изображение скопирую в браузер и увижу картинку. кстате еще вариант немного защититься - получать картинки динамически POST методом. от того же furebug спасет..от чего-то посерьезней нет ) |
Автору шифровать данные нужно, а не расширение у файла менять.
|
Цитата:
Просто если фотки большие, в хорошем разрешении, то расшифровка XOR будет затратной очень. |
http://www.flasher.ru/forum/showthread.php?t=120092
Добавлено через 1 минуту Цитата:
это можно реализовать при сохранении файлов на сервер |
1. Да, менять просто расширение это не то.
2. cleptoman, спасибо, в принципе XOR - вариант. 3. Водяные знаки по заданию не приемлемы, к сожалению. 4. mikhailk, спасибо за ссылку. Как раз такая же тема. |
А как насчет того, чтобы знаки на сервере расставить, а на клиенте снять? :)
|
Цитата:
|
Цитата:
Давай те рассуждать. На сервере есть картинка , по верх нее знак. Так это уже растровое изображение. Как с него снять знак после загрузки во флеш?!... Xm есть метод, но он вас испугает - нужно досконально знать байт код, чтобы удалить часть изображения и перезаписать на новый)))) Впринципе таких людей наверное нет, кто так сможет сделать. Вариант два, если загружать картинку с водяным знаком* проверять по гетПиксель , и если картинка ОК - загружать аналогичную но без знака - так в этом варианте файрбаг вас поймает) короче спопоб нереален |
Я по большей части шучу, но уверен, что так можно сделать.
1. Формируем водяной знак. 2. Накладываем водяной знак на картинку, но так, чтобы не допускать потерь в изображении (переполнение и обнуление каналов). 3. Пересылаем на клиент помеченную картинку и маску. Которую можно зашифровать хоть 500 раз, ибо один раз при загрузке клиента шлётся. 4. Вычитаем маску с помеченной картинки. И фантазии\вариации на эту тему. |
и вообще, всех, в итоге победит printScreen
|
Цитата:
Иначе маска как средство защиты не имела бы смысла. :) Маска накладывается на изображение, потом изображение кодируется в жипег (гиф/пнг - не суть), потом мы восстанавливаем изображение, которое не равно изображению в начале, вычитаем маску, и получаем на месте маски шум. |
Фантазии становятся гораздо эротичнее при мысли о том, что форматы изображений позволяют цеплять к ним любые данные, которые игнорируются софтом для просмотра изображений.
Т.е. можно сгенерировать для каждой картинки уникальный ключ, который используется в качестве параметра для хитромудрого обратимого фильтра (наложение водяного знака, например), через который пропускается картинка, и к ней же прицепить этот ключ. Соответственно клиент достает этот ключ и использует его для возвращения картинки в первозданный вид. |
Оффтопом:
Когда-то давно, лет этак 300 назад, автор какого-то публичного произведения, например, научной статьи, оставлял в ее тексте этакую неприметную строчку или несколько, нисколько не влияющих на смысл текста, но опираясь на которую, можно было по известному только автору ключу доказать, что автор текста именно он и изобличить таким образом плагиатора и доказать первенство.. Ну, или что-то в этом духе. Насколько я помню, к такому способу защиты прибегали известные ученые, Ньютон, например.. Не припомню только, как этот способ назывался... анаграмма, вроде. Принтскрин, как бы никто не отменял еще..да. |
Оффтоп:
printscreen не поможет тупо стырить базу в 10.000 изображений со сложным узором и прозрачностью png. Тут еще понадобится большая работа дизайнера, который стоит денег. |
Изобретение велосипеда, нет?
Все поставщики коммерческих изображений используют водяные знаки при выкладке в открытый доступ. Для последующего использования эти изображения уже непригодны. По трудозатратам - в тыщу раз проще найти аналогичное изображение в открытом доступе, нежели стирать водяные знаки вот с этого конкретного изображения. |
Это мог бы быть элементарно повторяющийся рисунок, скажем логотип, или надпись "воровать нехорошо!". На изображении, которое нужно защитить - этот рисунок наносится как уменьшение значения альфа-канала. Т.е. в местах, где наносим водяной логотип - альфа у пикселей уменьшается, скажем, в два раза. Клиентский флэш знает шаблон, который привязан например к top-left. И, загрузив это изображение, восстанавливает альфу всех этих пикселей. Значения цвета при этом не изменялись, и мы получим исходное изображение, а враг скачает с сервера - порченое.
|
а как будут восстанавливаться бывшие прозрачные пикселы для пнг?
для джипега - просто копируем альфаканал в 100% и вот у нас исходное изображение. или я не понял задумки? ) |
Цитата:
|
Почему, задумку поняли. Если бы у исходных ПНГ не варьировалась прозрачность, все было бы так просто, даже шаблона бы не потребовалось - просто поднять альфу всех пикселов до 100%. Но автор упомянул, что изображения уже с прозрачностью, и это сильно осложняет дело - если уменьшать альфу в два раза, мы потеряем половину диапазона при восстановлении (все нечетные значения приведутся к четным - это же не float). И это не тру, так что не, не пойдет.
Другой вариант - воспользоваться открытостью формата, как предлагал GAIKER. Можно добавить 8-битную карту прозрачностей отдельным chunk'ом. Если уж на то пошло, "портить" картинку можно просто "лишая" ее альфа-канала, если он жизненно важен для использования изображения - просто записывать его в кастомный chunk и в клиенте оттуда копировать BitmapData::copyChannel. А скачанный с сервера файл будет просто непрозрачным на каком-нибудь резвом (красном?)) фоне. Только в принципе "починить" такое изображение не очень сложно, если понять, что с ним сделали. Вот хранение в пингах хэшей, или ключей - с этим можно поиграться. |
Цитата:
Ясен перец, не кнопку тыкать же.. Если речь идет о промышленных масштабах, кражу, по принтскрину и дальнейшую обработку, либо еще как-то, тоже можно сделать промышленно, что тут такого? Тем более, если очень хочется и оно того стоит. Для мелкого воришки и кнопки хватит. Цитата:
Выложить десяток-другой картинок в хорошем качестве, чтобы уровень показать. Остальные - по эксклюзивному доступу, или обычные превьюшки низкого качества. Чего огород городить, тем более с флешем? Непонятно. |
Для промышленных масштабов можно и по-умному :)
1. Берем целевую флэшку, снимаем обфускацию, декомпилируем 2. Ищем код, который грузит список картинок и сами картинки, а так же расшифровывает их 3. Клепаем свою флэшку 4a. Наша флэшка вгружает целевую и получает у нее ссылки на нужные объекты 4b. Наша флэшка вгружает целевую и использует ее классы для создания нужных объектов 5. Наша флэшка получает картинки по одной, и через локальный сокет отдает их проге, которая скидывает их на винт. Если целевая флэшка сопротивляется подгрузке, то ее можно разобрать по байтам и пропатчить инструкцию перехода в защитном коде. |
| Часовой пояс GMT +4, время: 23:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.