![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Проблема такая:
Нужно хранить информацию в zip'е. Файл шифруется паролем. Программа распаковывает файлы напрямую в память. Расширение у файла совершенно левое. Но как бы сделать еще так, чтобы архиватор не видел, вообще, что это зип и не показывал даже список файлов? Простая подмена заголовка не проходит. RAR, например, не может распаковать, но все равно уверенно говорит, что это zip, только поврежденный и показывает список файлов. Причем могет еще и восстановить поврежденный заголовок. Может у кого есть умные мысли по этому поводу? |
|||
|
||||
| Jureth |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 23.11.2004 Где: где-то в Западной Сибири Репутация: нет Всего: 3 |
Заксорь весь файл - процесс несложный, легко обратимый, но с уверенностью сказать что это - zip не сможет никто.
|
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
ксорить файл не лучший вариант: Хотелось бы перед началом работы восстановить файл, чтобы можно было работать, а при завершении работы снова его поломать. Ксор подойдет, но если файлик достаточно крупный будет, то это может занять гораздо большее время.
Как вариант да. Но каждый раз перебирать весь файл... Сейчас просто меняю первые 2 байта с PK на MZ Насчет двух заголовков проверил... Нашел три |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Вот, блин. Почитал описание, поковырял зипы. Там заголовок в начале, заголовок в конце, да еще заголовок перед каждым файлом. А, если там 100 файлов, то и заголовков будет уже за 202.
Идет первый заголовок, потом заголовок-файл, заголовок-файл. В конце зипа еще один заголовок и снова заголовки всех файлов в архиве. Замучаешься менять! А RAR сканит побайтно весь файл в поисказ заголовков. Хоть 200 метров спереди положи, все равно находит. И распаковывает! Не ксорить же в самом деле... |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
неужели так сложно
1) зазиповать 2) заксорить и все -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
|
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
1) Сканируешь файл, находишь все заголовки. 2) Составляешь таблицу смещений всех заголовков, пишешь е в конец файла, обозначая старт-сигнатурой и защищая контрольной суммой. 3) Правишь все заголовки до неопознаваемости. При распаковке (в смысле перед) просто восстанавливаешь заголовки. Хвост можно не отрезать - подумаешь архивер ругнется что там в конце грязь... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Спасибо, уже разобрался. У меня тоже такая идея была. Но пошла немножко дальше.
Зачем класть в хвост таблицу со смещениями, когда она там уже есть! Сам зип уже позаботился, как искать быстро начало файла. Для скорости можно туда закинуть смещения начала хвостовой таблицы. От него по смещению 2A получаем 4 байта - адрес в файле. По этому адрему меняем 2 байта на любые другие. Затем смещаемся от этого адреса на 1A, получаем длину имени файла. Затем возвращаемся в самое начало, сдвигаем на длину имени файла, и там заголовок следующего файла. И так далее, пока не дойдем до коментария. Кстати, архиватор не ругнется - в хвосте сидит коментарий (даже если мы его туда и не клали, то все равно есть пустой). Теперь осталось это только реализовать... Это сообщение отредактировал(а) Snowy - 29.11.2004, 12:15 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |