|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Свой кодер-декодер JPEG
Доброго всем.
Раскрою карты сразу - о скорости работы нет речи, надо в некотором бинарнике (прошивке) найти картинки JPG/JPEG, известны размеры изображения 800/480, изображение скорее всего лежит без служебной информации по некоторым смещениям внутри бинарника, служебка для встроенного декодера ненужна поскольку он и так всегда работает со стандартным размером и сжатием, а возможно и есть некоторая - пока не известно, но файл есть и просмотр в HEX редакторе показывает наличие структуры файла и наличие картинок там (в том числе и BMP). 2 Идеи как вскрыть/поменять картинки в бинарнике: 1) Влезть в тело библиотеки JPEG DCU иподставлять внутри там бинарный код для декодирования, поскольку JPEG.LoadFromFile читает все заголовки а мне они не известы в бинарнике.. - как влезть во внутрь?? не знаю... 2) Написать полностью свой кодер - декодер с нуля и уже в него подкидывать бинарные данные изображения из прошивки. Что скажете? |
#2
|
||||
|
||||
А что сказать - большой вероятность того, что вскрытие формата не поможет, смысла нет. Там очень много файлов, можно заплутать в определениях. Лучше для начала попользуйте спец проги, типа драгонанпакера - это может вскрыть "потроха" всего и вся. Или, если средствами делфи, то тогда можно по заголовку и завершению рисунка найти его в теле бинарника загрузив в поток, а из него в image - если не ошибаюсь, любой jpeg начинается с #FF#D8...#4A#46#49#46 (...JFIF), а заканчивается обязательно на #FF#D9, можно кусок так определить для считывания в поток, это чтоб посмотреть картинку, а вот с её подменой может и не выйти, поскольку нет двух одинаковых рисунка при сжатии и может новый на старое место и не наложиться
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
За название проги спасибо, но это паковщик, мне кажется немного не то...
Сам формат файла открыт, и действительно по сигнатуре можно попытаться его найти - но это служебка - как раз то что в принципе ненужно для получения картинки.. поискал - нет JFIF ни разу, а FFD9 встречается несколько раз. А начало/конец картинки может быть в таблице какой-то, где-то находящейся в бинарнике... Вот я и хотел тупо брать "мясо" бинарника и засовывать в процедуры декодирования, в которой есть параметры - размер, библиотека шаблонов и пр., по чему сжимается картинка и уже визуально смотреть - похоже на картинку результат или нет, с шагом каким-то (1-2-3...кб) признаки изображения так или иначе проглянут на канве, а потом уже более точно найти начало. Длина картинки конечно разная, согласен, но надо найти их а потом уже поискать способ их записи туда, проанализировав их структуру упаковки в файл и есть ли конечный CRC или ещё что. PS - Прога ничего из картинок ненашла ((( |
#4
|
||||
|
||||
Что за бинарник-то? Есть пример или это тайна?
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
Скорее всего какой-то видеорегистратор, там обычно нет необходимости заголовок формата хранить т.к. размер картинки и способ сжатия жестко прошит.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
Магнитола. Коммерции тут нет, тренеровка мозга и скушную картинку заменить на свою.
Вот файл. ))) |