В какой программе можно сделать словарь терминов. История создания толковых словарей в россии

Предшественниками современных словарей были рукописные, а затем и печатные словари эпохи средневековья. Первые подобия словарей появились в XXV веке до нашей эры у шумеров. Это были так называемые глоссы: на полях рукописей выписывались значения незнакомых слов. А первый известный полноценный словарь, представляющий собой отдельную книгу, появился в Китае в XX веке до нашей эры. Называется он Erya и состоит из 2094 словарных статей. Всего в нём растолковывается 13113 иероглифов, написанных на 19 пянях - связках из 20-30 бамбуковых планок, размером 1 см на 20-40 см. Современные наиболее полные словари китайского языка содержат толкования около 60000 иероглифов, а образованные носители китайского языка за свою жизнь выучивают в среднем около 10000 иероглифов. Так что (несмотря на древность) словарь Erya можно назвать достаточно полным. Так как в китайском языке нет алфавита, словарные статьи в нём упорядочены по тематике: термины родства, жилища, утварь, музыкальные инструменты, небесные тела, территории, возвышенности, горы, воды, травы, деревья, насекомые, рыбы, птицы, дикие животные, домашние животные. Примерно в 100 году до нашей эры появился первый словарь, где иероглифы были разбиты по ключам: группировка производится по базовым графическим элементам иероглифов, что упрощает поиск толкований иероглифов в тех случаях, когда даже примерное значение слова неизвестно. Словарь содержит 9353 иероглифов, известен его автор - Сюй Шень.

Самым древним из словарей русского языка было приложение к новгородской Кормчей книге 1282 года. В нём помещено 174 греческих, древнееврейских и церковно-славянских слов, включая некоторые библейские имена собственные. В XVI - XVIII в.в. появились азбуковники большего (по сравнению с прежними) объёма, с алфавитным расположением и систематизацией слов. Первый печатный словарь, появился в 1596 году, как приложение к грамматике известного филолога того времени священника Лаврентия Зизания. В нём содержится 1061 слово, расположенное по алфавиту. Толкование старославянизмов и заимствований из западноевропейских языков даётся в нём при посредстве слов живого белорусского, украинского и русского языков того времени.

Виды словарей.

В наше время существует несколько сотен словарей, посвящённых самым разным областям человеческой жизни и деятельности. Перечислю некоторые из них:

  • 1. Энциклопедические словари - представляют информацию по разным областям знаний, объясняют не значения слов, а понятия, термины.
  • 2. Толковые словари - предоставляют слова, которые могут быть необходимы в той или иной ситуации; именно толковый словарь может внушить уверенность в правильности того или иного речевого действия.
  • 3. Словари иностранных слов - это вид толкового словаря, в котором объясняются значения слов иностранного происхождения. Словари такого типа включат информацию о том, из какого языка пришло слово и его иноязычный аналог.
  • 4. Этимологические словари - дают нам информацию о том, как образовалось слово, каков его морфемный состав, с какими другими словами русского и иных языков оно связано. А если слово заимствовано, то когда и из какого языка оно пришло к нам.

И это далеко не всё. Существует ещё множество словарей, например: терминологические, фразеологические, орфографические словари, словари трудностей, синонимов, антонимов и омонимов, а так же философские, политические, музыкальные и другие.

Первым собственно толковым словарем явился изданный в 1789-1794 гг. шеститомный «Словарь Академии Российской», содержавший 43257 слов, взятых составителями из современных им светских и духовных книг, а также из памятников древнерусской письменности. В 1806-1822 гг. издавался «Словарь Академии Российской, по азбучному порядку расположенный», представляющий собой второе издание предыдущего словаря, от которого он отличался расположением материала и существенным его обогащением (в нем насчитывается уже 51338 слов). Третьим изданием словаря был вышедший в 1847 г. четырехтомный «Словарь церковнославянского и русского языка», содержавший уже 114749 слов (переиздан в 1867 г.).

Значительным событием в истории русской лексикографии явилось создание в 1863-1866 гг. четырехтомного «Толкового словаря живого великорусского языка» В.И. Даля, периодически переиздававшегося вплоть до настоящего времени.

Положив в основу словаря народную речь, включив в него лексику общеупотребительную, диалектную, книжную, Даль стремился отразить в нем все лексическое богатство русского языка. Словарь его с 200000 слов и 30000 пословиц и поговорок представляет собой сокровищницу меткого народного слова. Слабой стороной деятельности Даля является стремление доказать ненужность большей части иноязычных по происхождению слов, попытка ввести в качестве их эквивалентов несуществующие слова, которые он сам сочинял, тенденциозное объяснение значений многих слов, особенно общественно-политических терминов, смешение лингвистического и энциклопедического принципов толкования слов. Следует также отметить отсутствие в словаре четких определений слов (вместо этого приводятся синонимы, не всегда точные), отсутствие стилистических помет и примеров-иллюстраций из художественной литературы, гнездовой принцип подачи слов, затрудняющий пользование словарем, чрезмерное обилие диалектной лексики.

В 1895 г. вышел I том нового академического словаря, подготовленный под редакцией Я.К. Грота, содержавший 21648 слов. В этом томе приводится богатый иллюстративный материал из произведений писателей, дается хорошо продуманная система грамматических и стилистических помет. После смерти Грота (в 1893 г.) изданием стал руководить А.А. Шахматов (до 1920 г.), отказавшийся от принципа нормативности словаря, от стилистических помет и оценочных указаний. Под его редакцией вышел II том словаря, а дальнейшие выпуски (словарь выходил до 1929 г.) осуществлялись по его плану.

В 1935-1940 гг. вышел четырехтомный «Толковый словарь русского языка» под редакцией Д.Н. Ушакова. В этом словаре, насчитывающем 85289 слов, получили правильное разрешение многие вопросы нормализации языка, упорядочения словоупотребления, формообразования и произношения. Словарь построен на лексике художественных произведений, публицистики, научных работ, в нем широко представлены слова советской эпохи. Значения слов даются с возможной полнотой и точностью, диалектизмы и узкоспециальные термины включены в словарь в ограниченном количестве. Несмотря на некоторые недостатки (не совсем точное в ряде случаев определение значения, неполнота словника и фразеологии, немотивированность отдельных стилистических помет, иногда нечеткое разграничение многозначности и омонимии, включение некоторых устарелых слов), словарь Д.Н. Ушакова представляет собой весьма полезный справочник. В 1947-1949 гг. словарь был переиздан.

В 1949 г. вышел однотомный «Словарь русского языка» С.И. Ожегова, который в дальнейшем выдержал более 20 изданий. С 1992 г. словарь, значительно расширенный, выходит под двумя фамилиями - С.И. Ожегов и Н.Ю. Шведова; 4-е издание 1998 г. содержит 80000 слов и выражений. В словаре хорошо представлена общественно-политическая лексика, даются точные значения слов и выражений, соблюден принцип нормативности в отборе лексики, в словоупотреблении, формообразовании, произношении, подаче стилистических помет.

В 1957-1961 гг. вышел четырехтомный академический «Словарь русского языка», содержащий 82159 слов, охватывающий общеупотребительную лексику и фразеологию русского литературного языка от Пушкина до наших дней. Словарь является нормативным, содержит разнообразную систему стилистических помет, богатый иллюстративный материал (3-е изд. М., 1985).

Значительно богаче по словнику (около 120000 слов), по охвату различных пластов лексики академический «Словарь современного русского литературного языка» в 17 томах (1950-1965). Значения слов и особенности их употребления иллюстрируются в нем примерами из художественной, научной и общественно-политической литературы XIX-XX вв. Дается грамматическая характеристика слов, отмечаются особенности их словообразования, произношения и написания, приводятся нормативные стилистические пометы, даются справки этимологического характера и т.д. Сочетание принципов толкового и исторического словарей делает его весьма ценным справочным пособием. Осуществляется повторное издание.

В 1981 г. был издан «Школьный толковый словарь русского языка» М.С. Лапатухина, Е.В. Скорлуповской, Г.П. Снетовой. Словарь содержит сведения о значении слов, их написании, произношении, морфемном составе, морфологических признаках.

К типу толковых словарей можно отнести словари, в которых дается толкование слов, не вошедших в ранее изданные словари. Такой справочник «Новые слова и значения» вышел в 1971 г. под редакцией Н.З. Котеловой и Ю.С. Сорокина. Словарь содержит около 3500 новых слов и выражений, появившихся в активном употреблении в периодической печати и художественной литературе главным образом в период 50-60-х годов XX в. Новое издание словаря, построенное на материалах писем и литературы 70-х годов, вышло в 1984 г.

В 80-е годы Институт русского языка АН СССР выпустил серию словарей - «Новое в русской лексике. Словарные материалы» / Под ред. Н.З. Котеловой. Словари информировали о новых словах, значениях слов, зарегистрированных по материалам прессы и периодики.

Генерация паролей с Hashcat и maskprocessor

Если у вас не работает Hashcat (она требует установку драйверов видеокарты), то вы можете использовать программу maskprocessor .

Maskprocessor — это высокопроизводительный генератор слов (словарей), упакованный в отдельный исполняемый файл, в котором можно настроить символы для каждой позиции.

Использование maskprocessor:

Maskprocessor [опции]... маска

Маска составляется из встроенного набора символов и (или) пользовательского набора символов.

Встроенные наборы символов:

L = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?s = !"#$%&"()*+,-./:;<=>?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff

Все символы, кроме тех, которые означает набор (?l , ?u , ?d и т.д.) попадают в пароль без изменения.

Если вы хотите составить словарь, который содержит пароли из шести цифр:

Maskprocessor ?d?d?d?d?d?d

Если вы хотите, чтобы в четырёх символьных паролях чередовались большие и маленькие буквы:

Maskprocessor ?u?l?u?l

Пароль начинается со слова voro, затем идут четыре цифры, а затем два больших буквы:

Maskprocessor voro?d?d?d?d?u?u

Пользовательские наборы символов:

1, --custom-charset1=CS Пользовательские наборы символов -2, --custom-charset2=CS Пример: -3, --custom-charset3=CS --custom-charset1=?dabcdef -4, --custom-charset4=CS устанавливает для?1 символы 0123456789abcdef

К примеру, в первой позиции должны быть цифры от 1 до 3, во второй позиции буквы AbCd, в третьей позиции любая цифра или маленькая буква, а последними двумя символами должны быть большие буквы:

Maskprocessor -1 123 -2 AbCd -3 ?l?d ?1?2?3?u?u

  • -1 123 - первый пользовательский набор символов, включающий символы 123
  • -2 AbCd - второй пользовательский набор символов, включающий символы AbCd
  • -3 ?l?d - третий пользовательский набор символов, включающий символы?l?d, т.е. все маленькие буквы и цифры
  • ?1?2?3?u?u - маска, составленная из пользовательских и стандартных наборов символов.

Дополнительные полезные опции:

* Приращение: -i, --increment=ЧИСЛО:ЧИСЛО Включить режим приращения. Первое ЧИСЛО=начало, второе ЧИСЛО=конец Пример: -i 4:8 интересующая длинна 4-8 (включая) * Разное: --combinations Посчитать количество комбинаций --hex-charset Предположить, что символы даны в шестнадцатеричном виде -q, --seq-max=ЧИСЛО Максимальное число одинаковых повторяющиеся символов -r, --occurrence-max=ЧИСЛО Максимальное число вхождения одного символа * Ресурсы: -s, --start-at=СЛОВО Начать с конкретной позиции -l, --stop-at=СЛОВО Закончить на конкретной позиции * Файлы: -o, --output-file=ФАЙЛ Файл вывода

Hashcat VS maskprocessor

Хотя, в целом, для генерации паролей maskprocessor и Hashcat являются взаимозаменяемыми, нужно помнить, что для выбора режима брутфорса/атаки по маске нужно указывать опцию -a 3 (поскольку Hashcat поддерживает различные режимы атаки, а не только по маске). Также нужно использовать опцию --stdout , которая означает показывать кандидаты в пароли (без взлома хеша).

Hashcat не позволяет задать максимальное число одинаковых повторяющиеся символов, максимальное число вхождения одного символа, начать или закончить на конкретной позиции.

С запуском Hashcat на Linux системах могут быть проблемы из-за необходимости иметь проприетарные драйвера.

Приращение длины пароля делается другими опциями:

Короткая / Длинная опция | Тип | Описание | Пример ==============================+======+===================================+======================= --increment-min | Числ | Начать прирост маски на X | --increment-min=4 --increment-max | Числ | Остановить прирост маски на X | --increment-max=8

Заключение

Crunch - очень гибкая программа для генерации словарей. Из минусов можно отметить некоторую запутанность назначения пользовательского набора символов, а также то, что пользовательские наборы символов перезаписывают стандартные наборы.

Hashcat не имеет некоторых опций, связанных с регулированием количества повторяющихся символов в пароле.

  • (54.1%)
  • (RANDOM - 51.4%)
  • Информационная безопасность
  • Использование подходящих словарей во время проведения тестирования на проникновение во многом определяет успех подбора учетных данных. В данной публикации я расскажу, какие современные инструменты можно использовать для создания словарей, их оптимизации для конкретного случая и как не тратить время на перебор тысяч заведомо ложных комбинации.

    Инструменты

    crunch

    Пожалуй, один из самых известных инструментов для быстрого создания словарей. Он по умолчанию входит в популярный дистрибутив для проведения пентеста Kali Linux.

    Инструмент работает в нескольких режимах:

    Создание словаря, состоящего из перечисленных символов, например чисел

    Crunch 4 5 1234567890 -o all_numbers_from_4_to_5.txt

    Создается словарь длиной от четырех до пяти цифр.

    Создание словаря по шаблону

    Crunch 10 10 qwe RTY 123 \#\@ -t P^@@,ord%% -o Password_template.txt

    Сперва указывается длина пароля - 10 символов. Затем перечисляются наборы символов: буквы в нижнем регистре, буквы в верхнем регистре, цифры и спецсимволы. Ключ -t задает шаблон, где

    • ^ - спецсимволы
    • @ - буквы в нижнем регистре
    • , - буквы в верхнем регистре
    • % - цифры
    И третий режим работы crunch - перестановки.

    Crunch 1 1 -p Alex Company Position

    Словарь состоит из всех возможных комбинаций слов Alex, Company и Position.

    Подробнее изучить инструмент можно через стандартные man страницы, они достаточно подробные.

    maskprocessor

    Иногда требуется указать не только наборы под конкретный тип символов, а вообще свой набор, включающий и буквы, и цифры, и спецсимволы. В этом случае можно воспользоваться утилитой maskprocessor от брутфорсера hashcat. Скачать ее можно с официального гитхаба hashcat .

    Вы можете задать до четырех собственных наборов символов и использовать готовые наборы

    L = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?s = !"#$%&"()*+,-./:;<=>?@[\]^_`{|}~ ?a = ?l?u?d?s ?b = 0x00 - 0xff
    Пример использования

    Mp64.bin -1 Pp -2 \@\#\$ ?1assw?2r?d

    Или можно задать набор из цифр, но добавить к нему еще несколько спецсимволов так

    Mp64.bin -1 Qq -2 ?d\@\#\$ ?1werty_12?2
    Получаем такой результат

    John the Ripper

    Популярный брутфорсер John the Ripper (JTR) тоже позволяет генерировать словари на основе правил. Делается это при помощи ключа --rules, а сами правила описываются в файле john.conf

    Вот так выглядит стандартное правило, используемое для взлома NTLM хэша

    : -c T0Q -c T1QT -c T2QTT -c T3QTTT -c T4QTTTT -c T5QTTTTT -c T6QTTTTTT -c T7QTTTTTTT -c T8QTTTTTTTT -c T9QTTTTTTTTT -c TAQTTTTTTTTTT -c TBQTTTTTTTTTTT -c TCQTTTTTTTTTTTT -c TDQTTTTTTTTTTTTT
    В первой строчке сказано, что нужно изменить регистр символа на нулевой позиции (T0), символ Q позволяет не допустить дубликатов в результирующем словаре. Во второй строке символ на первой позиции меняет свой регистр, затем скобки задают препроцессор, чтобы были сгенерированы пароли и с измененным нулевым символом и так далее.

    Предположим, вы успешно провели брутфорс LM хэша и получили значение QWERTY123, так как для LM регистр не важен.
    Но для авторизации вам нужно провести брутфорс NTLM хэша, где регистр имеет значение. Воспользовавшись правилом, описанным выше, можно получить следующий словарь

    John -w:QWERTY123.dict --stdout --rules:NT

    JTR по умолчанию содержит множество готовых правил, но можно написать и свои, либо взять за основу уже написанное и скорректировать под текущую ситуацию.
    Подробно про синтаксис правил можно почитать .

    hashcat-tools

    Еще одним полезным инструментом является набор утилит от популярного брутфорсера hashcat.

    Рассмотрим некоторые их них. Описания всех утилит на английском языке можно найти .

    Combinanor.bin - позволяет генерировать словарь из слов, входящих в два других словаря.

    Combinanor3.bin делает то же самое, но на вход принимает три файла, вместо двух.

    Combipow.bin - создает все возможные комбинации из слов, перечисленных в файле (похоже на ключ -p в crunch)

    Cutb.bin - обрезает слова в словаре до указанной длины. Можно указывать смещение (offset)

    Expander.bin - получает на ввод слова, разбирает их на символы, комбинирует и отправляет в STDOUT

    Permute.bin - создает словарь, который используется hashcat при атаке типа Permutation attack . Перед использованием словарь нужно пропустить через утилиту prepare.

    Gate.bin - разбивает словарь на несколько частей для параллельной обработки несколькими ядрами или несколькими машинами. В примере ниже мы разбиваем стандартный словарь JTR на две части. В первую часть попадают слова под номером 0, 2, 4, 6,…. Во вторую 1, 3, 5, 7,…

    Len.bin - оставляет в словаре только слова определенной длины от min до max

    Mli2.bin - объединяет два словаря.

    Req-include.bin - крайне полезный инструмент, который убирает из словаря все, что не подходит под заданные правила. Например, вы знаете, что по парольной политике в пароле обязательно присутствует буква в верхнем регистре, цифра и спецсимвол.

    Число выбрано исходя из таблицы

    Если таким образом нормализовать известный словарь rockyou, то можно сократить его размер в 270 раз! и не тратить ресурсы на заведомо ложные комбинации.

    Req-exclude.bin делает то же самое, что req-include, но с точностью до наоборот.

    Rli.bin - эта утилита удаляет значения из первого словаря, если они встречаются во втором. Полезно использовать, если вы создаете один словарь из нескольких.

    Когда под рукой нет утилит

    Может оказаться так, что воспользоваться набором hashcat-utils или crunch нет возможности, а нужно срочно создать словарь или нормализовать его. Некоторые алгоритмы довольно сложны в реализации, но базовые операции можно выполнить просто в командной строке.

    Простой словарь с датами можно создать серией подобных команд

    Echo 0{1..9}0{1..9}19{60..99} | tr " " "\n" >> dates

    Если нужно разбить словарь на части для параллельной обработки, можно воспользоваться командой split

    Split -d -l 1000 password.lst splitted_

    Быстро объединить два словаря можно так

    Cat dict1 dict2 > combined_dict

    Чтобы сделать заглавной первую или последнюю буквы в каждом слове, нужно выполнить, соответственно, команды

    Sed "s/^./\u&/" dict_file sed "s/.$/\u&/" dict_file
    Для перевода регистра в нижний нужно заметить «u» на «l»

    Дописать что-то в начало каждого слова из словаря можно так

    Sed "s/^./word/" dict_file
    А так можно дописать слово в конец

    Sed "s/.$/word/" dict_file
    Следующей командой можно добавить в начало число от 0 до 99 к каждому слову в словаре

    For i in $(cat dict_file) ; do seq -f %02.0f$i 0 99 ; done > numbers_dict_file
    Можно очистить словарь от значений, в которых не присутствует хотя бы 2 числа так

    Nawk "gsub("","&",$0)==2" password.lst
    Получаем

    Это лишь некоторые примеры. Можно писать более сложные обработки на Python и других скриптовых языках. Но всегда нужно помнить, что создание качественного словаря и его нормализация под целевой протокол - важный этап при проведении тестирования на проникновение.