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'ом и шифрование заголовка(в этом билде забыл сделать). |
Часовой пояс GMT +4, время: 08:05. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot