forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов" (http://forum.boolean.name/showthread.php?t=8283)

Richik 13.05.2009 11:46

"Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Этот вопрос где-то мельком подымался, но все же...

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

Как эту задачу вижу я.
Комплекс состоит из двух частей. Первая часть работает из под "оси", не посредственно в ней происходит кодирование ресурса (рисунка/изображения). Вторая - библиотека (для МР) декодеровщик.

Возможна ли данная задача, и не буде ли процесс декодирования слишком ресурсоемким?

KAK? TAK! 13.05.2009 14:22

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
а нелегче ,как нет лизард, взять и просто наделать изображений с пустыми рисунками а оригинал скрывать как класс файл?

Dj_Alex 13.05.2009 15:34

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
KAK? TAK! :lol: :lol: кто те такое сказал? там скорее всего удалены загаловки файла которые восстанавливают перед загрузкой ресурсов.
в некоторых играх в файлах перед заголовком добавляют лишние символы, в результате чего изображение стандартными средствами не открывают. в одной игре попадался пак, в котором последовательно были записаны все ресурсы.

scorey 13.05.2009 16:07

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Я где-то на форуме видел как картинки запаковывать в .bin и оттуда по байтам читать файл. Так вот можно создать куски файлов и через код склеить. картинка получится

Richik 13.05.2009 16:18

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Думаю что все ресурсы загонять в один файл не практично во время отладки приложения, но в период готовности, для распространения, идея хорошая..

abcdef 13.05.2009 17:55

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
для склейки в один файл можно так Пуск - Выполнить -
Код:

copy /y /b "c:\1.txt" + /b "c:\2.txt" /b "c:\3.txt"
или код ниже слеит все ".txt" файлы из текущего каталога в файл "_pack".
Перед использованием удалить файл size.log, а файл "_pack" сделать нулевой длины.
Код:

for %i in (*.txt) do copy /y /b "%~dpi_pack" + /b "%~dpnxi" /b "%~dpi_pack"&echo %~zi>>"%~dpisize.log"
если использовать bat'нике везде вместо % поставьте %%

Dj_Alex 13.05.2009 18:54

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
только надо будет где то размеры файлов хранить и порядок расположения, чтобы корректно извлекать

Dj_Alex 13.05.2009 19:05

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
могу как вариант предложить рисовать графику стандартными средствами телефона, т.е примитивами типа точка, линия...
или же хранить изображение в переменной в виде строки.

Richik 13.05.2009 19:21

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
abcdef,
Не, ну текст это просто, можно и в блокноте, ну или bat-файл написать с командами предложенными Вами. А с картинками это сработает? А главное как их в мидлете восстановить?


Цитата:

или же хранить изображение в переменной в виде строки.
как это =)

abcdef 14.05.2009 00:19

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
пуск-выполнить-набрать CMD и ENTER. в окне консоли HELP и ENTER. выбрать из списка интересующую команду ввести ее /? ENTER

для разделения файлов ресурса нужно поискать либу загрузки картинок из потока

Richik 14.05.2009 02:14

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Цитата:

пуск-выполнить-набрать CMD и ENTER. в окне консоли HELP и ENTER. выбрать из списка интересующую команду ввести ее /? ENTER
что :4to: ?


abcdef, вы читали первый пост!?

Dj_Alex 14.05.2009 08:23

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
ну если не охота каждый раз набирать, то пиши прогу кооторая будет выполнять ети действия. сделай gui с выбором файлов, предпросотром изображений и т.п.

Richik 14.05.2009 11:41

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Господа!, мы ушли от основной идеи, в дельфи я бы наверное и написал, но вот Яву я не знаю..
Я выдвигаю идею о создании подобного комплекса, а не спрашиваю теорию создания!

Dj_Alex 14.05.2009 13:54

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
ты не только выдвигай, но и продвигай. или для тебя делать должны?

Richik 15.05.2009 00:23

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Хотя вы тоже правы, нужно сначала определить наилучший способ и/или набрать различные варианты для проведения "маневров"

Какие еще будет предложения? Только, пожалуйста по существу.

@llien 20.05.2009 09:11

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Люди а как у фишлаба!
давайте также секлаб написал компилер\декомпилер осталось только переписать в либу и все готово!
кстати с аннимоном поговорите на эту тему! он чнибудь придумает!

@llien 27.05.2009 11:43

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Я вообще тут кому ору
:wild: :wild: :wild: :wild: :wild: :wild:???????????????????????
?????????????????????????
???????????????????????????????????

Richik 03.06.2009 14:18

Ответ: "Кодирование/декодирование изображений", или "Давайте попробуем скрыть ресурсы мидлетов"
 
Пробовал открывать png в блокноте, удалял заголовок и картинка становилась белой. После возврата заголовка, картинка оставалась белой..
А в ДОС - эмуляторе все было нормально. При удалении заголовка картинка становилась белой, при восстановлении его, картинка опять становилась прежней..
Тут вероятно проблема в кодировки символов..

Нашел описание Чтение PNG и алгоритм декодирования:

PHP код:

ДЕЛАТЬ
   прочитать заголовок блока
.
   
ЕСЛИ тип сжатия 00 (без сжатия)
      
перейти к началу следующего байта
      прочитать 2 байта с длиной блока 
(LENи ещё два байта (дополнениене используется)
      
передать LEN байтов входных данных на выход
   ИНАЧЕ
      ЕСЛИ тип сжатия 10 
(с динамическими кодами Хаффмана)
         
прочитать из входных данных информацию для построения кодов длин и кодов расстояний
         
(смраздел 3.2.7"Compression with dynamic Huffman codes" RFC 1951,
         
а также функцию ReadLengths)
      
ДЕЛАТЬ
         прочитать очередной код Хаффмана и декодировать его в value
         
(смвышекаким именно образом читаются коды Хаффмана;
          
необходимо учитывать такжечто код имеет переменную длину)
         
ЕСЛИ value 256
            передать значение value на выход
         ИНАЧЕ
            ЕСЛИ value 
256 (конец блока)
               
выйти из цикла
            ИНАЧЕ 
(т.еvalue 257..285, )
               
length value
               
(согласно разделу 2. "Compressed representation overview" RFC 1951,
                
алфавит одинаков для значений (value<256и длин (value>256))

               
посмотреть в таблицу 1 раздела 3.2.5"Compressed blocks (length and distance codes)" RFC 1951
               прочитать нужное количество дополнительных битов и скорректировать length
               
(смвышекаким именно образом читаются данныене являющиеся кодами Хаффмана)

               
прочитать код Хаффмана для расстояния и декодировать его в distance
               
(смвышекаким именно образом читаются коды Хаффмана)
               
посмотреть в таблицу 2 раздела 3.2.5"Compressed blocks (length and distance codes)" RFC 1951
               прочитать нужное количество дополнительных битов и скорректировать distance
               
(смвышекаким именно образом читаются данныене являющиеся кодами Хаффмана)

               
отступить в уже декодированных данных distance байтов
               и скопировать length байтов на выход
.
               (
если lentgh>distanceнадо скопировать несколько раз)
      
ПОКА не конец блока
ПОКА не последний блок 


Надо заняться, но в последнее время что-то не получается (Драсте-драсте, как дела?, пиво - водка и пока :crazy: )


Часовой пояс GMT +4, время: 20:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot