Как запаковать и извлеч картинки и прочюю информацию в DAT?
Помогите!!! Как запаковать и извлеч картинки и прочюю информацию в DAT файлы?:SOS:
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Нужна программа-упаковщик на компе и класс-распаковщик в мидлете. Формат такой: ID ресурса (1-2 байта), размер ресурса S (4-8 байт) данные ресурса (S байт) и так для каждого ресурса. Алгоритм упаковки - пишем в поток ID, потом размер, потом данные. Распаковка - читаем ID, читаем размер S, читаем S байт ресурса и так до конца файла. На сколько быстрой будет распаковка, зависит от реализации распаковщика.
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
а где можно скачать такую программу или как она хотябы называется?
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
Самому писать придется, но это в общем-то несложно. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Я давно как - то искал програмку - нигде нет, так что сам постарайся и попачкай ручки
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
вот в этой теме идет вялое осуждение данного вопроса.
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Есть идея такое написать.
Да и в "библиотеках" идет живое обсуждение данного вопроса. Раз наболело, нужно писать. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Что касается упаковщика под Windows - могу написать без проблем.
А на счет библиотеки-распаковщика - надо думать над оптимизацией, чтобы не тормозило. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Я уже начал писать паковщик для компа, правда на Java (swing) тоже.
Могу написать библиотеку по распаковке всего этого дела. Или давайте ViNT напишет запаковщик, а я напишу распаковщик. Идея такая. Состав файла с информацией: первые 2 байта - количество файлов в пакете потом идет список длин файлов (тоже по 2 байта каждый) а потом уже идут сами файлы, просто склеенные пока. В итоге получаем до 65535 файлов в пакете по 64Кб максимум каждый. Позже можно будет добавить и шифрацию. Как идея? Обсуждаем? |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
На счет упаковщика - как только определимся со структурой, могу приступить к написанию. Также, думаю, в программу стоит добавить и распаковщик, на всякий случай. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Мне кажется, что для мобилы и 64Кб хватает с головой.
Картинок больше 64Кб я не виде ни в одной игре. Но хорошо, ради совместимости с учетом будущего развития мобильных телефонов будем делать указатели на длину файла 4 байта. Значит определились. Количество кусков - 2 байта, длины по 4 байта. Порядок байт по Intel конвенции т.е. сначала идет младший байт, а потом старшие. Сразу предусмотри кодирование файлов по принципу XOR с 32 битным ключом (или произвольной длины). Кодирование вот только не знаю как лучше делать. Сквозное или для каждого файла отдельно? Шифрация/дешифрация проходит так: первый байт файла ксорится с первым байтом ключа, второй байт файла со вторым байтом ключа и т.п. Лучше сделать произвольную длину ключа. Можно ещё сделать дополнительно циклический скроллинг байта на N битов. Короче, я уже начинаю делать наброски библиотеки. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
А зачем
Цитата:
Я никогда не понимал, почему так, а не наоборот. Логичнее ведь делать наоборот. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
Только вот я сейчас подумал - а как дельфовский TFileStream пишет? Можно ли использовать его метод write(buf,size), передавая в качестве buf значения типа word и integer, или он наоборот переворачивает? |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Что то я сильно неуверен что данные из памяти побитно читаются, во всяком случае теперь. Ибо поиск и начало процедуры получения данных из памяти несамая быстрая вещь. Например современный процессор быстрее посчитает значение синуса любого угла чем прочтёт готовое значение из памяти, вот как...
|
Re: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Коллеги, уже есть некоторые решения этого вопроса вот здесь http://supremej2me.bambalam.se/guide...on-tools/bamfs.
По-моему, формат упакованного файла оптимальный. Ещё вопрос по шифрации: насколько она надёжна? Ведь декомпиляция class файла покажет алгоритм шифрации... |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Алгоритм шифрации может и покажет, но вот ключ можно и из Интернета скачивать и не хранить его в программе вообще.
Да и есть ли такая защита, которую бы нельзя было бы взломать? Взломать можно всё. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Вложений: 1
Итак, вот тестовый вариант упаковщика/распаковщика, пока без шифрования(думаю, следует оставить оба варианта - с шифрованием и без, на выбор пользователя). На счет порядка байтов в заголовке - пишу прямо из памяти в поток, это правильно или надо наоборот?
Упаковка сделана в два этапа - сначала создаются файлы data.bin(данные) и hdr.bin(заголовок), потом все собирается в один файл. Сделал так, чтобы обрабатывать все файлы в один проход - открываю поток, определяю размер, пишу в файл заголовка, тут же копирую поток в файл данных, закрываю поток и так для каждого файла. Для этого в папке программы должна быть папка Temp. На счет шифрования, думаю, лучше шифровать весь блок данных сразу, но шифрование каждого файла в блоке начинать с начала ключа. 2 odd код могу выложить при необходимости. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Вложений: 1
Добавил шифрование(опционально). Длина ключа 1-255 байт, каждый следующий байт данных ксорится со следующим байтом ключа, байты ключа перебираются циклически, дл каждого ресурса сначала. Для распаковки зашифрованного файла нужно также как и при упаковке включить шифрование и ввести ключ.
В дальнейшем могу добавить сдвиг, также можно для пущей конспирации заголовок зашифровать. Сейчас для промежуточных файлов используется TFileStream, однако, поскольку файлы небольшие, думаю будет лучше использовать TMemoryStream. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Ок. Буду подгонять библиотеку-распаковщик.
Она уже почти готова, а вот тестировать не на чем т.к. запаковщика не было. Есть идея зашифровать и заголовок с переменным ключом, но об этом чуть позже и в личку. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Либа пашет нормально. Уже могу извлекать текст, картинки и звуки.
Хочу ещё добавить чтение текста построчно с перекодировкой. Только несколько замечаний по кодировщику: 1. Небольшая ошибка в алгоритме шифрования. К примеру, я задаю ключ "123", а шифрование идет не тремя байтами, а четырьмя. Последний байт всегда 0 зачем-то добавляется. 2. Расширь окошко с названиями файлов, а то не видно имен файлов если путь длинный. Очень желательно добавить скроллинг битов и шифрование заголовка. Ещё можно перед заголовком вставлять N фейковых байтов для пущей маскировки файла с нашими ресурсами под другой файл. К примеру можно вставить заголовки от JPG, PNG, ZIP и проч. Прикол в том, что архив с картинками можно зашифровать и добавить заголовок типа это PNG, естественно файл открываться не будет. Юзер подумает, что применен какой-то экзотический метод сжатия PNG картинок или файл действительно поврежден. Или добавить перед заголовком байты 0xCAFEBABE и архив обозвать как class файл. Если удастся добавить сдвиг заголовка + шифрацию заголовка + шифрацию данных = в итоге получим довольно криптостойкую защиту информации. Не зная алгоритма декодировщика можно будет ломать голову над хранилищем довольно долго. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
Цитата:
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Короче решено.
Желательно в запаковщик добавить функции прикрепления заданного файла перед заголовком или генерацию N случайных байт от фонаря. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Понятно, с лишними байтами в шифровщике разберусь, шифрование заголовка и маскировку допишу, на счет интерфейса - доработаю, это пока был тестовый вариант для проверки работоспособности основного кода. На счет окна с именами файлов - может лучше вообще выводить только имена без пути, или сделать возможность включения/отключения отображения пути, также можно все это переделать на основе TListView и добавить сопоставленные расширению иконки.
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Да, путь этот и не нужен никому. Желательно отображать: номер в архиве/тип данных/имя (без пути).
Буду ждать новую версию кодировщика. Хотя тестировать пока можно и на этом. Я пока буду улучшать работу с текстовыми файлами. Чтение побайтно делать вообще? Или не надо? Пока извлекает (закодированные и незакодированные) рисунки, звуки, текстовые файлы (извлекаются сразу целиком). |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
Ошибку в кодировщике пофиксил, добавил запись файла в начало архива. Попробую приделать создание промежуточных файлов прямо в памяти и список переделаю. А можно еще сделать кнопку "Детальная информация", по нажатию которой выводить полную информацию о выделенном ресурсе и предпросмотр. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
|
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Вложений: 1
Еще некоторые изменения.
Сделано добавление файла в начало (при распаковке программой нужно указать количнство байт, которые следует пропустить, естественно, должно соответствовать размеру файла в начале пакета). Изменени список файлов, убран путь, добавлена иконка, номер в пакете и размер файла. Также есть окно полной информации, но оно пока нефункционально, не удается сделать нормальное выравнивание, буду делать специальное окно. Дальше планирую добавить просмотр изображений, текста, воспроизведение звуковых файлов и просмотр прочих файлов в HEX-формате. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Ура! Наконец-то. Можно будет уже выпустить первую версию библиотеки в свет.
А можно сделать так, чтоб при прикреплении в начало фейкового файла, его длина автоматически отображалась в поле "пропустить N байт"? А то напряжно смотреть какая там длина у файла. |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Вложений: 1
Цитата:
Дальше сделаю создание информационного файла для корректной распаковки пакета RESPacker'ом и шифрование заголовка(в этом билде забыл сделать). |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
скажите, пожалуйста! а каким образом извлекаемый mp3-файл сразу подается на воспроизведение, ведь для этого в функции:
openplayer необходимо указать имя открываемого файла. спасибо! |
Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
Цитата:
|
Часовой пояс GMT +4, время: 15:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot