| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Событие на выход из процедуры, Как его сделать? Как бы сделать zip не zip'ом, чтобы архиватор не догадался Вывод JPEG из ресурса, Вывод JPEG из ресурса DBGrid, Скроллинг не работает состояние лотка cd-rom Убить приложение У меня к вам ышо вопросик есть ебаут Creating Проблемы с Query и DataSource Кодировки TMemo и XPManifest, Проблема с DOS кодировкой в Memo Файлы руссификации к ExpressQuantumGrid, ExpressMasterView, ExpressBars точный прицел принтера Как правильно реализовать многострочность в ячейке, Как правильно реализовать многострочност средства делфи для создания help'a LPT порт, Вопрос WMI на Delphi Message with Tedit, Message with Tedit TClientServer, TServerClient ComboBox, не исчезающий выпадающий список TChart Подмена ресурсов, UpdateResource для всех версий Windows Как сменить рабочий каталог Delphi7 Как анализировать отловленный exception?, Есть ли у Exception цифровые коды? OLE+WORD DelphiX, OnCollision для анимированных спрайтов, Срабатывает только на первом изображении writecomponent Модальное окно, Оказывается на заднем плане Как Вы относитесь к курящим девушкам? Priveleged Instruction, Не получается в WinXP exe, найти OER Ресурсы GDI, не освобождаюцца ресурсы защищенные страницы памяти winXP Изменение иконки в SystemTray? Запуск программы от имени другово пользователя, RunAs в Win XP Регистрация записи, В RemObjects Pascal Script ProgressBar1, как с ним работать Тормоза, Тормоза при компиляции программы. Писк в строке, НЕобходимо найти параметр в строке TMemo, Сколько строк? Обмануть Delphi, for to do Связка проги и хелпа с помощью контекстных ссылок, при показе pop-up вылетает содержание Compact Rus Popup как в Windows --> Пуск, помогите Сколько занимает папка? Следующая строка, Следующая строкачерез промежуток времяни файл, Не могу дописать файл как включить компьютер програмным способом Изменить имя компа, Изменить имя компа Обучение програмированию, Со скольки лет начинать значение до знака, надо взять пораметры до определённого зн изменение стиля WebBrowser1, где ощибка??? А что у меня TAB-Contol не работають? Переход на следующую строку в TMemo?, КАК? Работа со звуком Update Tray Компилятор, исходник... Градиентная заливка TPanel?, Как залить??? 1.fsStayOnTop и 2.TPanel не полное значение, Мемо выдает не полное значение Как извлечь дочернюю форму из Dll?, Как извлечь дочернюю форму из Dll? Синтаксис, как сохранить Скопировать файл., Чёт я затупил. Вопрос по ShellListView, Теперь уже заключительный... как узнать откуда запушен процесс Помогите сделать правильно., Бьюсь над задачей..... Извлечь часть строки, Подскажите функцию... Сравнение ADA – Delphi – Pascal, нужна литература Скопировать Html-файл, Вместе со всеми картинками, стилями и др Delphi 7 - отличия и трудности Своя коллекция компонет Не компилируется проект! Нелп!!!, ошибка в файле Buttons.res |
Платные хостинги Раскрутка сайта Книги по программированию Как бы сделать zip не zip'ом, чтобы архиватор не догадался
- Проблема такая:Нужно хранить информацию в zip'е. Файл шифруется паролем. Программа распаковывает файлы напрямую в память. Расширение у файла совершенно левое. Но как бы сделать еще так, чтобы архиватор не видел, вообще, что это зип и не показывал даже список файлов?Простая подмена заголовка не проходит. RAR, например, не может распаковать, но все равно уверенно говорит, что это zip, только поврежденный и показывает список файлов. Причем могет еще и восстановить поврежденный заголовок.Может у кого есть умные мысли по этому поводу? - Заксорь весь файл - процесс несложный, легко обратимый, но с уверенностью сказать что это - zip не сможет никто. - А там их два... - ксорить файл не лучший вариант: Хотелось бы перед началом работы восстановить файл, чтобы можно было работать, а при завершении работы снова его поломать. Ксор подойдет, но если файлик достаточно крупный будет, то это может занять гораздо большее время.Как вариант да. Но каждый раз перебирать весь файл... Сейчас просто меняю первые 2 байта с PK на MZ Насчет двух заголовков проверил... Нашел три Попробовал заменить первый и второй PK на MZ. Сработало. Теперь бы определиться как оперативно искать второй... - Вот, блин. Почитал описание, поковырял зипы. Там заголовок в начале, заголовок в конце, да еще заголовок перед каждым файлом. А, если там 100 файлов, то и заголовков будет уже за 202.Идет первый заголовок, потом заголовок-файл, заголовок-файл. В конце зипа еще один заголовок и снова заголовки всех файлов в архиве. Замучаешься менять! А RAR сканит побайтно весь файл в поисказ заголовков. Хоть 200 метров спереди положи, все равно находит. И распаковывает! Не ксорить же в самом деле... - неужели так сложно 1) зазиповать2) заксоритьи все - Цитата ксорить файл не лучший вариант: Хотелось бы перед началом работы восстановить файл, чтобы можно было работать, а при завершении работы снова его поломать. Ксор подойдет, но если файлик достаточно крупный будет, то это может занять гораздо большее время.Как вариант да. Но каждый раз перебирать весь файл... Сейчас просто меняю первые 2 байта с PK на MZ Насчет двух заголовков проверил... Нашел три Попробовал заменить первый и второй PK на MZ. Сработало. Теперь бы определиться как оперативно искать второй... - 1) Сканируешь файл, находишь все заголовки.2) Составляешь таблицу смещений всех заголовков, пишешь е в конец файла, обозначая старт-сигнатурой и защищая контрольной суммой.3) Правишь все заголовки до неопознаваемости.При распаковке (в смысле перед) просто восстанавливаешь заголовки. Хвост можно не отрезать - подумаешь архивер ругнется что там в конце грязь... - Спасибо, уже разобрался. У меня тоже такая идея была. Но пошла немножко дальше.Зачем класть в хвост таблицу со смещениями, когда она там уже есть! Сам зип уже позаботился, как искать быстро начало файла. Для скорости можно туда закинуть смещения начала хвостовой таблицы.От него по смещению 2A получаем 4 байта - адрес в файле. По этому адрему меняем 2 байта на любые другие. Затем смещаемся от этого адреса на 1A, получаем длину имени файла. Затем возвращаемся в самое начало, сдвигаем на длину имени файла, и там заголовок следующего файла. И так далее, пока не дойдем до коментария.Кстати, архиватор не ругнется - в хвосте сидит коментарий (даже если мы его туда и не клали, то все равно есть пустой).Теперь осталось это только реализовать... Это сообщение отредактировал Snowy - 29.11.2004, 12:15 |