Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Как узнать, запаролен ли RAR архив?
Посл.ответ Сообщение

Ранг: 9.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 ноября 2007 17:55
· Личное сообщение · #1

Как узнать(программно), запаролен ли архив или нет?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 08 ноября 2007 22:31
· Личное сообщение · #2

File header (File in archive)


HEAD_CRC CRC of fields from HEAD_TYPE to FILEATTR
2 bytes and file name

HEAD_TYPE Header type: 0x74
1 byte

HEAD_FLAGS Bit flags:
2 bytes
0x01 - file continued from previous volume
0x02 - file continued in next volume
0x04 - file encrypted with password
0x08 - file comment present
0x10 - information from previous files is used (solid flag)
(for RAR 2.0 and later)

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 9.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 ноября 2007 12:55
· Личное сообщение · #3

Непонятно... Как все же вычислить адрес байта с этими флагами?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 11 ноября 2007 13:11
· Личное сообщение · #4

Спецификация формата rar www.wotsit.org/download.asp?f=rar_2&sc=248069378

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 9.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 ноября 2007 13:53
· Личное сообщение · #5

К сожалению с аглйским не дружу( Можно пальцем ткнуть какие байты прочитать, чтобы узнать адрес этого байта с флагами?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 ноября 2007 14:04
· Личное сообщение · #6

Скачиваешь WinRAR и внимательно и досконально изучаешь файл TechNote.txt. Если даже после этого тебе будет "Непонятно... Как все же вычислить адрес байта с этими флагами?", значит тебе нужно не формат рара изучать, а программированию учиться.

Выдержка из файла:

Обработка архива происходит следующим образом:

1. Читается и проверяется блок-маркер
2. Читается заголовок архива
3. Читаются или пропускаются HEAD_SIZE-размер(MAIN_HEAD) байт
4. Если обнаружен конец архива, то обработка архива прекращается, иначе
читаются 7 байт в полях HEAD_CRC, HEAD_TYPE, HEAD_FLAGS, HEAD_SIZE.
5. Проверяется HEAD_TYPE.
Если HEAD_TYPE==0x74
прочитать заголовок файла (первые 7 байт уже прочитаны)
прочитать или пропустить HEAD_SIZE-размер(FILE_HEAD) байт
Если (HEAD_FLAGS & 0x100)
прочитать или пропустить HIGH_PACK_SIZE*0x100000000+PACK_SIZE байт
иначе
прочитать или пропустить FILE_SIZE байт
иначе
прочитать соответствующий блок HEAD_TYPE:
прочитать HEAD_SIZE-7 байт
если (HEAD_FLAGS & 0x8000)
прочитать ADD_SIZE байт
6. Перейти к шагу 4.

<...>

Заголовок архива (MAIN_HEAD)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

HEAD_CRC CRC полей от HEAD_TYPE до RESERVED2
2 байта

HEAD_TYPE Тип заголовка: 0x73
1 байт

HEAD_FLAGS Битовые флаги:
2 байта
0x0001 - Атрибут тома (том многотомного архива)
0x0002 - Присутствует архивный комментарий
RAR 3.x использует отдельный блок комментария
и не устанавливает этот флаг.

0x0004 - Атрибут блокировки архива
0x0008 - Атрибут непрерывного (solid) архива
0x0010 - Новая схема именования томов ('volname.partN.rar')
0x0020 - Присутствует информация об авторе или
электронная подпись (AV)
RAR 3.x не устанавливает этот флаг.

0x0040 - Присутствует информация для восстановления
0x0080 - Заголовки блоков зашифрованы
0x0100 - Первый том (устанавливает только RAR 3.0 и старше)

<...>

Заголовок файла (файл в архиве)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

HEAD_CRC CRC полей от HEAD_TYPE до FILEATTR и имени файла
2 байта

HEAD_TYPE Тип заголовка: 0x74
1 байт

HEAD_FLAGS Битовые флаги:
2 байта
0x01 - файл продолжается из предыдущего тома
0x02 - файл продолжается в следующем томе
0x04 - файл зашифрован паролем



-----
EnJoy!



 eXeL@B —› Вопросы новичков —› Как узнать, запаролен ли RAR архив?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати