
            ПРИМЕЧАНИЯ К ПРОГРАММЕ 'ARJCRACK.EXE'
    
    Уважаемые  коллеги,  "по  просьбам  телезрителей"  автор 
предлагает данную программу с исходными  текстами,  надеясь, 
что она поможет выйти из затруднительного положения тем, кто 
по забывчивости или еще какой причине утерял пароль к  своим 
ARJ-архивам  (но  вовсе  не для того, чтобы взламывать чужие 
архивы).
    Программа  написана почти целиком на базе UNARJ.C версии 
2.30,  за  что  и  выражаю  признательность ее автору. Текст
UNARJ.C, слегка подправленный для работы с паролями,  прила-
гается. 
    Допустимый и обычно используемый набор кодов для паролей 
включает  в  себя порядка 90 символов, а именно, цифры, про- 
писные и строчные буквы латиницы  и  спец-символы  (непустые 
разделители).  Если  добавить  еще кириллицу, то набор кодов 
будет насчитывать порядка 150 символов, что  в  общем-то  не 
типично. 
    Допустив  средний размер пароля в 6 (шесть) символов по- 
лучим общую оценку количества возможных паролей.
    
    90 в степени 6 = 531.441.000.000
    
    Не  имея никаких предположений о длине и "природе" иско- 
мого пароля, для перебора даже половины комбинаций с помощью 
данной  программы  (чуть больше полторы тысячи паролей в се- 
кунду на 386-й машине с 20-ю мегагерцами)  понадобится  нес- 
колько лет. 
    Может показаться, что положение безнадежно. Отчасти  это 
действительно  так, тем не менее, если в архиве есть неболь- 
шой файл, то появляется ощутимый шанс,  которым  может  вос- 
пользоваться  забывчивый коллега. Под словом "небольшой" по- 
нимается "меньше 4K", так как размер рабочего файла в сжатом 
виде  в  данной программе ограничен именно 4-мя килобайтами. 
При необходимости, имея исходный текст,  данное  ограничение 
можно изменить. 
    Так  как  скорость перебора паролей ОЧЕНЬ сильно зависит 
от конкретной ситуации, следует обратить пристальное  внима- 
ние  на  следующие моменты, хоть в какой-то мере поддающиеся 
контролю: 
    - набор символов пароля     (чем меньше, тем лучше)
    - оригинальный размер файла (чем меньше, тем лучше)
    - тип упаковки              (лучше всего 'm0'(store))
    - интервал кодов исходного файла   (для 'm0')
    - коды первых байт исходного файла (для 'm0')
    
    Несколько слов по поводу возможностей программы. Все они
реализуются при помощи параметров и ключей.
    Выглядит это так: 
  
  Формат: ARJCRACK [<ключи>] <имя_архива> [<имя_файла>]
  
  <ключи>:
       /t<число секунд>  - интервал для выдачи текущего пароля
                           (по умолчанию 5 секунд)
       /ixx-xx (min-max) - допустимый интервал кодов (включая границы)
       /fxx-xx-..        - первые байты ориг.файла в шестнад.кодах
       /g<пароль>        - стартовый пароль
       /s<спецификаторы> - набор символов для составления пароля
                           (по умолчанию используется набор 0Ll, 
                            т.е.опция /s0Ll)
  <спецификаторы>:
       c          - 29 спецсимволов: @#$%&!?()[]{}\\/:;`'\"^~*=+-,._
       0          - 0-9 (цифры)
       L          - A-Z (прописная латиница)
       l          - a-z (строчная  латиница)
       K          - А-Я (прописная кириллица) | альтернативная |
       k          - а-я (строчная  кириллица) |   кодировка    |
       :<символы> - произвольный набор символов
    
    Пример подачи параметров:
    
    ARJCRACK /sl:-+= /i0a-7f /f23-69-6e-63 /gaaaa test.arj environ.c
    
    Что в переводе на "человеческий" язык означает:
    -использовать для построения паролей строчную латиницу и
3 символа '-','+','=';
    -интервал кодов от 0Ah до 7Fh, что соответствует тексто-
вому файлу без кириллицы и управляющих кодов;
    -первые  4  байта  файла  ENVIRON.C имеют коды 23h, 69h, 
6eh, 63h (т.е. "#inc");
    -перебор начинать с пароля "aaaa";
    
    Далее, ПАРАМЕТРЫ указывают архив и  рабочий  файл.  Если 
рабочий файл не указан, то предполагается, что все файлы за- 
щищены одним паролем, и ищется файл с минимальным размером и 
если таковой меньше 4 килобайт, то он берется как рабочий.
    
    По результатам испытаний программы выяснилось, что огра- 
ничения  на  содержимое файла (т.е. ключи /i и /f) имеют эф- 
фект лишь при методе сжатия 'm0', в  остальных  случаях  они 
даже несколько замедляют скорость работы. 
    Следует  иметь  в  виду, что последовательность перебора 
является важным фактором достижения успешного  результата  и 
возможность  управления  этой  последовательностью  имеется, 
хоть и косвенная.
    Суть заключается в следующем: так как  программа  строго 
придерживается  порядка следования символов в наборе и пере- 
бираются в первую очередь символы в первой позиции,  во  2-ю 
очередь символы во 2-й позиции и так далее, то имеет смысл в 
формируемом наборе в начало помещать символы, которые наибо- 
лее вероятно могли находиться в конце пароля. 
    Также, весьма существенно можно приблизить момент "побе- 
ды", если в конце стартового  пароля  поставить  нужные  Вам 
символы  (это в случае, если Вам точно известны длина и пос- 
ледние символы пароля). 
    
                                     28 июня 1993 г.
                                Груздев Александр Петрович
                                г.Пермь, т.(342-2)498-254

    PS: Для  сборки  программ автор использовал компилятор
Microsoft C v6.00 с нижеследующими параметрами:
ARJCRACK.EXE:
    cl /AS /W3 /Oaxz /Gs arjcrack.c arj1.c arj2.c /link /STACK:1000
UNARJ.EXE:
    cl /AS /W4 /Oaxz -F 1000 /D_QC unarj.c decode.c environ.c
