Как создать свой словарь

от admin

Как создать свой словарь

О своих словарях

Программа EasyWords позволяет создавать пользователям свои собственные словари, редактировать и дополнять их.

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

Рекомендуется завести несколько своих словарей на разные темы и вести их, то есть добавлять новые слова и при этом повторять старые.

Создание своего словаря

1. В главном окне программы выбрать пункт меню “Словарь→Новый” .

2. Указать папку, в которой будет храниться словарь, и ввести имя файла словаря.

3. После этого словарь будет добавлен в список словарей и откроется окно “Свойства словаря”.

4. В открывшемся окне нужно добавить необходимые слова (карточки).

1. Создать файл в программе MS Excel , при этом столбцы должны быть расположены в следующем порядке: слово, транскрипция, перевод.

2. Сохранить файл MS Excel в формате “Текст Юникод”. Для этого выбрать пункт меню “Файл→Сохранить как…” и выбрать соответствующий формат файла.

3. Выбрать в главном окне EasyWords пункт меню Словарь→Импорт , после этого указать предварительно сохраненный файл и затем файл, в который будет импортирован словарь.

4. После этого в списке словарей добавится новый (импортированный) файл.

Добавление новых слов и редактирование словаря

Для редактирования или добавления новых слов необходимо:

1. В главном окне программы нажать кнопку “Свойства” . После этого появится окно “Свойства словаря” .

2. В появившемся окне, нажимая соответствующие кнопки в правой части, можно: добавлять, редактировать (править) и удалять слова (карточки).

Шесть картинок, как создать словарь

Словарь — это абстрактный тип данных, который связывает ключи со значениями. Его ещё называют ассоциативный массив, карта, таблица символов, коллекция. Будет две статьи на эту тему, где мы покажем шесть картинок / способов реализации словаря, которые отличаются друг от друга по времени работы и по требованию к памяти.

Двоичное дерево поиска

Дом для кота, Интерфейс для словаря

Начнём созидание словаря с формулировки методов для работы с ним. Минимальный набор таких методов: put — добавить, get — получить.

По хорошему, мы должны создать обобщённый интерфейс с возможностью указать любой тип данных как для ключа, так и для значения. Однако, в рамках этой работы мы будем для удобства использовать string для ключей, int для значений. Ещё в словаре могут быть методы для удаления ключей, для итерации по всем записям, получение количества элементов и много других важных и приятных мелочей, которые мы опустим.

Пример кода на языке Java

Картинка первая. Линейный массив.

Самый простой способ для хранения пар «ключ, значение» — это создание класса или структуры Node (узел) и декларация линейного массива сих пар.

Для поиска узла по ключу необходимо просканировать весь массив от начала до конца и в каждом узле проверять, не совпало ли значение. Если совпало — вернуть найденное значение, если сканирование завершилось, а значение так и не было найдено — рапортуем, что не найдено. На это нужно N операций.

Для добавления новой пары достаточно в конец массива вписать новый узел, это быстро, всего 1 операция. Однако, прежде чем добавить новый узел, мы должны убедиться, что в словаре нет узла с точно таким же значением ключа, для этого необходимо вызвать метод поиска. Если такой ключ есть — мы записываем новое значение на место старого.

Сколько памяти выделять для словаря? Какого размера массив необходимо декларировать для эффективной работы? Если размер массива будет совпадать с количеством элементов, то при каждом добавлении пары необходимо пересоздавать массив увеличенного размера и заниматься копированием значений из старого массива в новый, а это, на минуточку, N действий для каждой операции добавления элемента.

Чтобы избежать тьмы лишних действий, можно выделять массив удвоенного размера, тогда процесс пересоздания массива добавит к сложности алгоритма лишь Log N операций, однако размер требуемой памяти удвоится.

Сложность поиска: N операций = O(N).
Сложность вставки: N (поиск) + Log N (пересоздание) + 1 (вставка) = O(N).
Требование к памяти: N (словарь) + N (резерв) = O(N).

Вывод: простой, но медленный способ, двойной расход памяти

Исходный код Storage1_Array можно посмотреть и запустить здесь.

Картинка вторая. Односвязный список.

Есть идеи по экономии памяти, но чтобы при этом не нужно было тратиться на дополнительные операции по пересозданию массива и копированию элементов? Ответ лежит на поверхности: односвязный список! Это динамическая структура, которая занимает ровно столько место, сколько в ней элементов и позволяет легко добавлять новые сущности.

Как видим, в класс узла добавилось ещё одно поле next — указатель на следующий элемент списка (между нами говоря, накладные расходы на необходимость хранить этот указатель могут свести на нет то, ради чего мы, собственно, и).

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

Сложность добавления элемента значительно ускорился — нет дополнительных расходов на пересоздание массива, а новые пары удобнее всего добавлять в начало списка. Обратите внимание, что на рисунке порядок расположения пар реверсивен: кот был первым, а стал последним.

Сложность поиска: N операций = O(N).
Сложность вставки: N (поиск) + 1 (вставка) = O(N).
Требование к памяти: N (словарь) = O(N).

Вывод: простой, но медленный способ, эффективен по памяти.

Исходный код Storage2_LinkedList можно посмотреть и запустить здесь.

А можно ли как-то ускорить процесс поиска ключей? Линейное время, это слишком медленно и применимо лишь на малых размерах словаря. Можно.

Картина третья. Отсортированный список.

В книжных словарях слова расположены по алфавиту, что позволяет искать их значительно быстрее, за логарифмическое время. Например, для поиска ключа в отсортированном списке из 1000 записей достаточно сделать всего десять сравнений, потому как 2^10 = 1024.

Давайте и мы попробуем располагать ключи в алфавитном порядке.

Теперь для поиска ключа можно применить бинарный поиск: смотрим, какой элемент посередине списка находится и рекурсивно продолжаем поиск либо в первой половине, либо во второй. Время поиска O(Log N).

Для добавления новой пары в словарь нужно сначала найти индекс в массиве, куда следует вставить пару, чтобы ключи располагались в алфавитном порядке, на это нужно Log N операций. Затем нужно сдвинуть все элементы на одну позицию вперёд и в освободившееся место разместить новую пару. Хотел бы обратить внимание, что сдвигать элементы нужно с хвоста поезда.

На сдвиг элементов может потребоваться до N действий. Возможны дополнительные операции на пересоздание и копирование массива в размере Log N.

Сложность поиска: Log N операций = O(Log N).
Сложность вставки: Log N (поиск) + Log N (пересоздание) + N (сдвиг) + 1 (вставка) = O(N).
Требование к памяти: N (словарь) + N (резерв) = O(N).

Вывод: логарифмический поиск, линейное добавление, двойной расход памяти.

Исходный код Storage3_SortedArray можно посмотреть и запустить здесь.

Кстати, а можно ли уменьшить расходы по памяти, используя для хранения пар односвязный отсортированный список? Увы, нельзя. Потому как мы можем только скользить по односвязному списку, без возможности перехода к любому элементу по индексу. А отличительная черта обычного массива — это моментальный доступ к любому элементу по его индексу, что и используется при двоичном поиске ключа в отсортированном массиве.

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

Но об этом в следующей статье, а также на бесплатном уроке, который пройдет уже 20 октября.

Создать свой онлайн словарь ⁠ ⁠

Всем привет. Мне нужен онлайн сервис, где можно бесплатно вести свой собственный онлайн словарь английский — русский, без ограничения вводимых слов.

Сначала пользовался этим https://lingualeo.com , но там ограничение в 300 слов, а безлимитно только за деньги.

Сейчас перешел на этот http://myefe.ru . Здесь можно создавать 200 словарей по 2000 слов. И все меня устраивает, кроме того, что этот сайт тупит все больше и больше при добавлении слов. Сейчас уж насобирал где то около 300, а отклика уже жду вечность. Также ему требуется большое время на прогрузку словаря при его первом открытии и перевод фраз желает лучшего.

Не знаю, чего заминусили автора. Сам сейчас искал подобное. Anki не подходит. Как приложение для андроида нашёл «Мой Словарь: полиглот» некоего kataykin’a. Под мои задачи подошёл более чем (хотел составить свой словарь технического английского). Пост нашёл через гугл. Кто пришёл за тем же, плюсаните ТС’а.

Попробуй Anki. Бесплатно, есть приложение под Android

Evgeniy23, Нашёл ответ на свой вопрос?

А — артикли! Немножко полезного про английские артикли⁠ ⁠

Дисклемер! Это не урок по артиклям! Просто пара фишек и всё. Однажды я тут вроде бы кому-то обещал пост про артикли, ну и вот он, собственно.

Итак. Артикли — это, пожалуй, самая инфернально-адовая тема в английском, если стоит задача освоить их максимально четко и хорошо. Обычно я начинающим советую вообще ими не пользоваться, хоть это и неправильно, антинаучно, непедагогично и бла-бла-бла. Но по мне так с ними лучше потом разобраться, когда со всем остальным уже точно порядок. Зато на начальных этапах будет меньше очевидных косяков, больше фокуса на реально основных элементах.

А тут — миллиарды кубов теории, какие-то там странные исключения и мутные правила… бррр. Это я к тому, что когда вам кто-то решит объяснить артикли при помощи четырех слов, два из которых «конкретный» и «не конкретный» — шлите смело. Артикли это примерно вот:

А - артикли! Немножко полезного про английские артикли Английский язык, Учеба, Преподаватель, Саморазвитие, Артикли, Иностранные языки, Длиннопост

90 страниц теории для трех слов в сумме из шести букв. Неплохо, да?

Ну теперь, когда жути нагнал и воды налил, стоит сказать что есть и положительные моменты. С артиклями очень хорошо срабатывает тот самый принцип 20/80. Небольшое количество теории позволит вам не косячить с артиклями в 80% случаев. И вот, собственно, об этом будет этот пост и еще один. Теперь реально начинаем.

Два самых распространенных артикля в английском языке — это, несомненно, a (an) и the. Они используются в основном только с существительными, соответственно если нет существительного – нет артикля. Думаю, это знают если не все, то многие.

Первое, чему стоит научиться при работе с артиклями – варианты как их избежать.

Ну то есть что можно сделать, если в непонятной ситуации сразу не получается определить, какой артикль ставить. Причем избежать легально, ничего не нарушая.

Артикль не нужен, если вы используете:

Местоимения. Любые, от my до what. Например, потеряли вы ключи, и говорите Ooopsies, I lost __ keys! – хз какой артикль? Не беда, добавляем местоимение my, получаем I lost my keys! Смысл сохранен, идея донесён. Нравица.

Принадлежность. Отчасти дублируется предыдущий пункт, так как тут рулят местоимения а-ля his, her, our и тд, но дополняется прочими притяжательными делишками. I lost Valera’s keys – всемогущий Валера избавил нас от артикля, хоть и ценой ключей.

Количество. Тут все просто, практически любое указание количества (даже абстрактное) так же избавляет нас от необходимости втыкать. I lost many keys. А да, еще some, any и no это тоже местоимения, при помощи которых можно выразить и количество, так что и по первому пункту, и по третьему они помогают.

Еще артикль не нужен, когда по всем признакам подходит a (an), но мы не можем его поставить, так как существительное наше во множественном числе. Ну, потому что a(an) только для единственного. Это, кстати, одна из самых популярных ошибок на артикли — пихать a по зову сердца в множественное число.

Пользуясь хотя бы этими нехитрыми приемами, мы можем даже сообразить некое подобие текста, в котором не нужен ни один артикль.

Valera has some friend. His name is Tom. They live in their own house near some mountain. Valera and Tom have two big dogs and one stinky goat. Their goat sleeps in Valera’s bed and Tom sleeps with those dogs. They are idiots.

Ну и в таком духе.

Увы, стратегия избежать схватки спасает не всегда. В какой-то момент юный падаван может ощутить прилив Силы и решит, что настала пора познать артикли. И тут уже придется разобраться не только с тем, как от них отмазаться, но и как с ними работать. Да и вообще, зачем оно всё надо, собсна. Об в следующем посте про артикли. Он уже готов, лежит у меня в тележке.

Спасибо за внимание, всем кумыса.

Это слово вы вряд ли сразу переведёте правильно — WHEREABOUTS⁠ ⁠

Оказывается оно переводится как «местоположение, местонахождение»

His whereabouts are still unknown — Его местоположение всё ещё неизвестно

Подборка учебных (!) сериалов для изучающих английский⁠ ⁠

Все, завершил я карьеру преподавателя английского. 12 лет. Маркер на гвоздь, все такое. Решил немножко помочь тем, кто учит английский самостоятельно. Когда речь идет об изучении нового языка, нет лучшего способа попрактиковаться, чем вечное «погрузиться в среду». Раньше люди наивно полагали, что для погружения в среду непременно нужно свалить в Штаты на годик, но слава богу с годами этот стереотип сгинул плюс-минус полностью. Погружение в язык может организовать себе каждый сам, и тут все средства хороши – от блогеров, игорей и серверов в дискорде, до всяких там срачей про республиканцев на реддите и этих ваших сериалов с субтитрами.

Этот пост – небольшая подборка интересных (на мой взгляд) учебных видеоматериалов на английском. Это прекрасная альтернатива для тех, кто с трудом воспринимает стандартные сериалы/фильмы на английском, а посмотреть что-то хочется. Некоторые из них я активно использовал на уроках, до некоторых руки так никогда и не дошли, а некоторые я вообще не уверен, стоит ли показывать. Атенсион, у многих качество так себе, но что есть. К каждому дам небольшой комментарий. Кстати да, в комментариях делитесь своими сохраненками, кому-то может пригодиться.

Подборка учебных (!) сериалов для изучающих английский Учеба, Саморазвитие, Английский язык, Обучение, Опыт, Личный опыт, Образование, Преподаватель, Длиннопост

Extr@. Сразу с нетленки зайду. Мне кажется, про этот учебный ситком знают плюс-минус все. Девочка из Лондона (подло похожая на мою первую женщину) сожительствует с подругой. Внезапно к ним прилетает какой-то Хектор фром Арджентина и что-то началось. Плюсы — достаточно интересно снято, однажды остался без интернета и с удовольствием посмотрел как обычный сериальчик. Еще он на разных языках есть. Уровень – в начале от силы Pre-Int, но немного прогрессирует. Минусы – хз, по мне так все норм. Уж для учебного сериала то.

Lifetime – мини-сериал про мадам, которая устраивается на работу на какой-то дофига британский телеканал. Новый коллектив, новые знакомства и всякое. По идее там эпизоды по 7-8 минут, но они всегда собраны в ролики по плюс-минус часу, потому как это один диск. Уровень ощутимо выше предыдущего, я бы сказал Intermediate. Плюсы – речь с претензией на натуральность, да и в целом максимально похоже на обычное кинцо, но при этом лексика попроще в учебных целях. Минусы – без субтитров на ютьюбе только в пососном качестве, у меня есть скачанный получше. Вы же не будете смотреть с субтитрами? падме.жпг

Кстати на эти два есть прикольные упражнения (помимо штатных) – Вот на экстру (10 эпизодов правда) и вот на лайфтайм.

Подборка учебных (!) сериалов для изучающих английский Учеба, Саморазвитие, Английский язык, Обучение, Опыт, Личный опыт, Образование, Преподаватель, Длиннопост

New Headway video еще один британский сериал про то как кто-то с кем-то сожительствует. На этот раз одна женщина подселила к себе в дом двоих мужчин — нёрда рокера на семёрке и юриста-масона, а в свободную комнату было решено найти еще одного бродягу. Им оказалась Джейн. По идее это видеокурс к учебникам, но хоть они и продолжают издаваться, новых сезонов нам не снимают. Они зачем-то решили, что лучше делать видео про историю гамбургеров. Плюсы – скетчи интересные, подбор актеров с разными британскими акцентами, есть градация по уровням, от beginner. Минусы – их бегинер этот совсем не для бегинеров, увы. Сложность сопоставима с экстрой – около Pre-Int. А, и эта наркоманская фоновая музыка… просто с ума сводит.

Для любителей американского кинематографа у меня тоже имеется кое-что.

Top Notch – мой личный намбер уан. Тут никто ни к кому не подселяется и практически никто ни с кем не сожительствует. Этот сериал про трудовые будни небольшой туристической конторки. В эпизодах сотрудники взаимодействуют между собой и с какими-то другими людьми. Как по мне, здесь уровень скорее Pre, но вполне годится и на Elementary. Плюсы – юмор, реально местами пришлось хрюкнуть. Еще тут интересный формат скетча – сначала идет основная часть, минут на 6-7 и следом в отдельном видео на пару минут добивка по этому же сюжету. Это можно использовать для дискашена. Минусы – старовато. С другой стороны винтаж.

Хотя не, вот вам винтаж.

Подборка учебных (!) сериалов для изучающих английский Учеба, Саморазвитие, Английский язык, Обучение, Опыт, Личный опыт, Образование, Преподаватель, Длиннопост

Его величество Family Album. Когда нам в универе его на кассетах включали он уже был так себе новинкой проката, а теперь так вообще. Тут история про студентку по обмену, насколько я помню. В любом случае, есть некая семейка и в нее интегрируется некая девушка. Из плюсов только ностальгия по 80-90м, но может кому зайдет.

Примерно из той же оперы есть австралийский сериальчик. English Have A Go на мой взгляд неплох весьма. Есть семья с сыном-тинейджером, и появляется юная красотка. Сыну она понравилась и вот он там дальше пытается чет. Экшена маловато, в основном про диалоги. Но зато говорят медленно, четко и ясно. И худо-бедно объясняют базовую грамматику. Из минусов только растянутое изображение, но лучше увы не нашел. Не самый популярный материал, но далеко не самый бесползеный.

Living English. Тоже австралийский учебный сериал. В целом ничего выдающегося, тут мужик чем-то похожий на Роберта де Ниро и с охрененным голосом комментирует реплики из бытовых диалогов. Хз что еще сказать.

Раз уж мы в тот регион заглянули – есть Let’s Talk – очень добротный набор коротких скетчей-диалогов, которые делали для какого-то гонконгского телеканала. Тут реально все прекрасно, сгодится на любой уровень. Главный минус – вшитые субтитры. Ненавижу вшитые субтитры. А скетчи норм. Кстати, если вдруг покажется мало – вот вам еще несколько сотен таких же. Если только начинаете — смело начинайте с них, но ненавидьте себя за субтитры и стремитесь от них отказаться.

Ну и отдельно достойны упоминания:

Канал Voice of America. Честно – по мне так лучший канал для начинающих. Тут реальные дикторы, говорят сууупер медленно, всё с богомерзкими вшитыми субтитрами и обновления каждый день на любой вкус. В лексике не стесняются, а вот в грамматике все очень лаконично. Каких-то конструкций сложнее базовых почти нет.Вот дайджест новостей на каждый день. Вот про новости технологии, вот про экономику. Да в целом изучите канал, там миллиарды полезного, а главное простого. Великолепная возможность забустить словарь.

Американский гайд для иммигрантов. В культурных целях можно ознакомиться, но на большее уже не тянет. Морально устарел. Но в целом может быть интересно.

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

Подборка учебных (!) сериалов для изучающих английский Учеба, Саморазвитие, Английский язык, Обучение, Опыт, Личный опыт, Образование, Преподаватель, Длиннопост

Тут просто какие-то диалоги в так себе качестве. Возможно это те, у которых превью похожи на кадры из дешевого порно, но я не уверен уже. Был у меня какой-то плейлист сохранен, где на превьюшках роликов были всегда люди на диване, которые как будто вот-вот начнут. Но это один из сотни плейлистов с названием а-ля ashgdf123, уже не вспомню.

Ну, и вишенка на торте. Тут 24/7 происходит очень величайший стрим. Некий усатый красавец и его закадровый дружаня разыгрывают абсурдные скетчи под саунтрек из Elder Scrolls и почему-то наложенным интерфейсом оттуда. Есть субтитры, тоже стилизованы. Если вы любите TES и учите английский – думаю, вам стоит это посмотреть. Я в первый раз залип минут на 40. Диалоги уровня «Что ты делаешь? Я лежу на кровати. Почему ты лежишь на кровати? Я не знаю. Я лежал на кроватях в детстве и теперь тоже лежу на кроватях. Я люблю лежать на кроватях». Шедевр, я считаю. Подойдет на любой уровень.

Подборка учебных (!) сериалов для изучающих английский Учеба, Саморазвитие, Английский язык, Обучение, Опыт, Личный опыт, Образование, Преподаватель, Длиннопост

Так, у меня в ворде третья страница заканчивается. Пожалуй, тут остановлюсь. Во-первых, спасибо за внимание, а во-вторых скорее всего, это мой последний пост на Пикабу, и думаю вы догадываетесь, куда ведет вот эта, последняя, ссылка. Пока там ничего нет, но обязательно будет, если это кому-нибудь нужно. Хочу собрать комьюнити людей, которые делятся успехами в самостоятельном изучении английского, дискутируют о методах и средствах, делятся опытом, материалами и вот это всё. А я помогу чем смогу.

Читать:
Как переместить элемент массива в начало

"Дубль" на английском — это не "double": 3 значения слова⁠ ⁠

Кто-то знает, что слово «дубль» заимствованно. А как оно используется в английском?

В этой статье вы узнаете значение слова «double», как его употреблять и как на самом деле на английском звучит «дубль».

Происхождение

Дубль (рус.) и double (англ.) — от французского double — от латинского duplus (двойной) — duo (два)

Значение и примеры использования

1. Двойной, удвоенный (прилагательное)

• double espresso — двойной эспрессо

• double doors — двойные двери

• double «o» — удвоенная «o»

"Дубль" на английском - это не "double": 3 значения слова Урок, Английский язык, Обучение, Образование, Преподаватель, Учеба

2. Удвоить(-ся) (глагол)

• The government aims to double the number of students in higher education within 25 years

Правительство намерено удвоить число студентов в высших учебных заведениях в течение 25 лет

• Company profits have doubled since the introduction of new technology

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

3. Двойник (существительное)

• Hey, Tony, I met a guy at a party last week who was your double

Эй, Тони, я встретил парня на вечеринке на прошлой неделе, он твой двойник

Как сказать «дубль»?

Заметили, что в переводах не было самого слова «дубль»? Так вот:

Дубль в кино — take /teɪk/

• Letters to Alistair, take two

Послания Алистеру, дубль два

• It took the crew 5 takes to get the perfect scene

Съёмочной группе понадобилось 5 дублей, чтобы получить идеальную сцену

"Дубль" на английском - это не "double": 3 значения слова Урок, Английский язык, Обучение, Образование, Преподаватель, Учеба

Тавтологию «дубль два» можно перевести как round two.

Приглашаю почитать другие неинтересные посты в моём телеграм-канале

Эксперимент про говорение на английском своими руками⁠ ⁠

Как получается, что мы учимся 11 лет в школе, в среднем дважды в неделю занимаемся английским и по итогу не можем на нем говорить? Я загуглила этот запрос и нашла интересные ответы:

1)виноват учитель — плохо учит;

2)слишком много учеников в классе;

3)разный уровень учеников;

4)система обучения не направлена на практическое применение.

Возможно вы добавите еще причин, но это, по результатам моего просмотра первой страницы поиска — основные.

Стало интересно. От себя я добавила еще причину, что школьного обучения может быть не достаточно, а обучаться английскому НЕ в школе может быть банально дорого. Пожевав эту проблему у себя в голове, я запустила эксперимент, решила проверить, на практике так сказать, возможно ли говорить и практиковать английский когда группа относительно большая и разного уровня (очень даже возможно). Две недели назад я анонсировала набор в бесплатный разговорный клуб (присоединиться к клубу), с помощью разговорного клуба решается проблема денег так как группа бесплатная, решается проблема системы (у нас в группе нет учебников и структуры, мы просто говорим).

По итогу проведенных встреч разговорного клуба я делаю вывод, что основная проблема лежит в психологической НЕ готовности говорить на иностранном языке на том уровне, на котором ты можешь. Сейчас в группе 45 участников, было проведено уже две встречи (встречаемся каждый понедельник), из 45 человек подключаются в среднем 8-10 человек и только 4-5 человек в среднем говорят на группе. Остальные слушают молча. По моим наблюдениям, участие в говорении или отказ от него зависит от смелости. У нас есть участница, которая с помощью словаря составляла предложения и произносила их вслух на группе чтобы донести свою мысль и это круто, потому что когда нет блока на говорение, все остальное постепенно наработается. Есть участники, которые осознают свою неготовность говорить, но хотят практиковать язык и быть частью группы — они печатают и общаются в чате группы текстом. Я надеюсь, что такая буферная зона будет способствовать адаптации и постепенно эти участники тоже смогут позволить себе говорить.

Откуда такая стеснительность? Я думаю, школа в нас на протяжении 11 лет воспитывает синдром отличника. Нам задают вопрос на уроке и мы должны ответить правильно, нас оценивают, плохо ответил, хорошо ответил. А в говорении нет плохо или хорошо. В разговоре на иностранном языке самое главное, чтобы собеседник нас понял. Если мы работаем на английском на такой должности, где важна правильность языка — то это требует правильности речи, при этом основная масса учеников использует язык для коммуникации. В коммуникации, даже если ты коряво сказал и тебя поняли, ты красавчик.

Я продолжу свои наблюдения и если выводы поменяются, обязательно напишу об этом. Мне хотелось создать пространство для говорения в котором не будет ограничивающих факторов в духе «дорого», «сложно», «скучно». Надеюсь моя инициатива поможет некоторым ребятам практиковать речь на постоянной основе. Я тащусь от этой идеи и хочу заразить участников группы свободой выражения и говорения на английском.

На пикабу сейчас куча жалоб на то, что нет авторских постов. Вот авторский пост, я его написала на тему которая меня сейчас будоражит (волнует, интересует и интригует), посмотрим как быстро пост уйдет в минус, ахаха.

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Продвинутые техники создания словарей

Оглавление

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

Будут рассмотрены не только уже знакомые нам инструменты, но и парочка новых. Для некоторых задач мы будем использовать не только специализированные инструменты — некоторые действия проще сделать с помощью стандартных утилит Linux или собственных скриптов.

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

Азы генерации словарей

Атака на основе правил

Атака на основе правил — изменяет уже существующий словарь по указанному набору правил. Если с помощью атаки на основе правил вы хотите изменить поведение маски, то вначале нужно создать словарь по маске, а затем работать с ним.

Самый простой способ — использовать программу с графическим интерфейсом Mentalist, инструкция: Генерация и модификация словарей по заданным правилам.

Атака на основе правил в John the Ripper намного мощнее чем в hashcat, для данной атаки из этих двух программ рекомендую выбирать именно John: Полное руководство по John the Ripper. Ч.5: атака на основе правил

Генерация словарей на основе информации о человеке

Если пароль составлен на основе данных пользователя, например, комбинация имени, фамилии, даты рождения, именах детей, номера телефона, этих же данных ближайших родственников, то такой пароль можно считать слабым. Рассмотренные выше инструменты не очень подходят для составления подобных словарей, основанных на информации о пользователе — разве что, комбинаторная атака в Hashcat, но она за раз принимает только 2 словаря.

Именно эту проблему решает утилита CUPP.

Установка CUPP в Kali Linux

Установка CUPP в BlackArch

Запустите программу в интерактивном режиме и введите известные данные пользователя:

Пример сгенерированных паролей:

Если вам нужен перевод задаваемых вопросов, то вы найдёте его на странице карточки программы.

Составление списков слов и списков имён пользователей на основе содержимого веб-сайта

Познакомимся с ещё одним инструментом — CeWL. Эта программа обходит указанный сайт (можно указать глубину обхода) и все найденные на страницах сайта слова сортирует в порядке частоты их использования. Зачем нужен такой словарь? Автор предлагает использовать его для брут-форса. К тому же, программа умеет искать e-mail адреса, а также извлекать имена создателей офисных документов — поддерживаются файлы Word и PDF. Эти данные можно использовать для составления списка имён пользователей.

Ещё в комплекте с программой идёт утилита FAB, которая извлекает из уже скаченных документов Word и PDF имена авторов — их тоже можно использовать в качестве имён пользователей для брут-форса.

Установка CeWL в Kali Linux

Программа предустановлена в Kali Linux.

В минимальных версиях программа устанавливается следующим образом:

Установка в BlackArch

В карточке программы описаны дополнительные нюансы установки — рекомендуется ознакомиться.

Примеры запуска CeWL

Запуск сбора слов со страниц сайта https://site.ru, используя только страницы, ссылки на которые будут найдены на указанном адресе (-d 1), для составления словаря, который будет сохранён в файл dic.txt (-w dic.txt):

Запуск сбора слов со страниц сайта https://site.ru, используя страницы, ссылки на которые будут найдены на указанном адресе, а также на скаченных страницах (-d 2), для составления словаря, который будет сохранён в указанный файл (-w dic.txt), при этом для каждого слова будет показана частота, с которой он встречается (-c), также будет составлен список найденных email адресов (-e), которые будут сохраняться в указанный файл (—email_file emails.txt) и будет создан список на основе информации найденной в метатегах документов (-a), этот список будет сохранён в указанный файл (—meta_file meta.txt):

Запуск FAB, при котором будут проверены все документы *.doc в директории /home/mial/Downloads/, из метаинформации этих документов будет извлечено поле, содержащее имя автора документа, данные будут выведены на экран:

Как создать словарь по маске с переменной длиной

Рассмотрим генерацию списков слов различной длины на примере Hashcat и maskprocessor.

Удлиняющиеся пароли в Hashcat

Для того, чтобы генерировались пароли различной длины, имеются следующие опции:

Опция -i является необязательной. Если она используется, то это означает, что длина кандидатов в пароли не должна быть фиксированной, она должна увеличиваться по количеству символов.

Опция —increment-min также является необязательной. Она определяет минимальную длину кандидатов в пароли. Если используется опция -i, то значением —increment-min по умолчанию является 1.

И опция —increment-max является необязательной. Она определяет максимальную длину кандидатов в пароли. Если указана опция -i, но пропущена опция —increment-max, то её значением по умолчанию является длина маски.

Правила использования опций приращения маски:

  • перед использованием —increment-min и —increment-max необходимо указать опцию -i
  • значение опции —increment-min может быть меньшим или равным значению опции —increment-max, но не может превышать его
  • длина маски может быть большей по числу символов или равной числу символов, установленной опцией —increment-max, НО длина маски не может быть меньше длины символов, установленной —increment-max.

Итак, команда запуска для генерации паролей, которые имеют длину от шести до десяти символов:

hashcat -a 3 -i —increment-min=6 —increment-max=10 —stdout ?l?l?l?l?l?l?l?l?l?l

Удлиняющиеся пароли в maskprocessor

В maskprocessor имеется следующая опция приращения:

Следующая команда составит словарь из чисел от 1 до 9999:

Когда о пароле ничего не известно (все символы)

Про нюансы я уже писал, здесь только примеры команд.

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

Чтобы вывести все кандидаты в пароли или сохранить их в словарь:

Если нужно запустить полный перебор, когда в пароле могут быть большие и маленькие латинские буквы, цифры, а также символы !"#$%&'()*+,-./:;<=>?@[\]^_`

и длина пароля от 1 до 12, то нужно использовать следующие опции и маску:

Чтобы вывести все кандидаты в пароли или сохранить их в словарь:

Создание словарей, в которых обязательно используется определённые символы или строки

В комментариях к статьям о генерации паролей по маскам иногда спрашивают, а как создать словарь, содержащий определённые символы или слова, причём они могут быть в любом месте. На самом деле, именно маски для этого подходят плохо. Задачу можно решить с помощью Атаки на основе правил, особенно если речь идёт об отдельных символах или группах символов — выше уже даны ссылки на решение подобных случаев. Но если речь идёт о строках, то Атака на основе правил становится или слишком сложной и запутанной из-за необходимости создавать большое количество правил, или даже просто невозможной.

Рассмотрим несколько примеров.

Предположим, известно, что в пароле, состоящим из любых символов (большие и маленькие буквы, а также цифры), обязательно присутствует слово «Alexey», которое может быть в любом месте пароля и в любом регистре. Для решения этой задачи вместо того, чтобы создавать безумное количество правил, можно создать словарь со всеми вариантами и просто отфильтровать слова, в которых есть искомая строка, например:

На мой взгляд, это оптимальное решение. Оно также подходит, если вы не хотите создавать словарь, а хотите использовать атаку по маске — многие программы для брут-форса способны принимать кандидаты в пароли из стандартного ввода.

Ещё один вариант — искомое слово может быть в любом регистре, но точно расположено в начале пароля:

Кстати, последний пример не особенно удачный — поскольку нам известно, что вначале возможны только 2 символа — „A“ или „a“, то лучше использовать пользовательский набор символов, включающих эти два символа. Аналогично и для других — хотя бы четырёх известных символов (по количеству возможных пользовательских наборов).

Как создать словарь, обязательно содержащий символы «e», «g», «D» и «t»? Для этого используйте команду вида:

В ней вы можете добавлять цепочку из grep и отфильтровывать пароли с любым количеством необходимых символов.

Как создать словарь, в котором пароли в любом месте и в любом регистре содержат слово «Alexey» или слово «MiAl»? Используйте команду вида:

Количество искомых строк может быть любым:

Пример команды, создающий словарь, в котором кандидаты в пароли состоят только из цифр, но в пароле обязательно должна быть последовательность «12345» расположенная в любом месте:

Думаю, идея понятно — вместо того, чтобы пытаться создать невозможную маску, создаём всё возможное и отфильтровываем то, что нам нужно.

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

Комбинированными словарями обычно называют словари, включающие одновременно имя пользователя и пароль, разделённые определённым символом (обычно двоеточие или символ табуляции). Но в данном случае я имею в виду словари, которые составлены из слов разных словарей, путём объединения. Но и к «нормальным» комбинированным словарям мы ещё вернёмся.

Это называется комбинаторной атакой, её подробное описание: https://hackware.ru/?p=283#combinator_attack

Суть в том, что к каждому слову из первого словаря, добавляется каждое слово из второго словаря.

Словарь 1 (dict1.txt)

Словарь 2 (dict2.txt)

Запуск комбинаторной атаки (-a 1):

Мне почему-то казалось, что слова должны объединятся ещё и в обратном порядке (то есть первым идёт слово из второго словаря), но как вы можете убедиться, это не происходит. Поэтому для получения описанного эффекта, нужно запустить атаку ещё раз, поменяв словари местами:

Как комбинировать более двух словарей

Далее показан пример комбинации трёх словарей — суть в том, что каждое новое полученное слово состоит по одному слову из каждого из трёх словарей:

Как комбинировать подобным образом 4 и более словарей? Мне трудно представить, что это может пригодиться в реальной ситуации, но для этого скорее всего придётся писать свой скрипт для автоматизации показанного выше алгоритма. Если вы знаете программы, которые умеют это делать, то пишите в комментариях.

И… в этом месте я вспомнил о программе combinator3. Она поставляется в пакете hashcat-utils. Эта команда служит для комбинации трёх словарей (для комбинации двух словарей используйте combinator).

Эта программа умеет комбинировать по 3 указанных словаря, но опять же — если словарь идёт третьим, то слова из него всегда будут в конце.

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

Как создать все возможные комбинации для короткого списка строк

Утилита combipow создаёт все “уникальные комбинации” из короткого списка ввода. Эта программа также включена в hashcat-utils.

Пример содержимого словаря с именем wordlist:

Запуск combipow с этим словарём:

Даст следующие результаты:

Комбинирование по алгоритму PRINCE

Программа princeprocessor реализует алгоритм PRINCE. Подробнее об этом алгоритме вы можете узнать на странице карточки программы. Там же описана суть работы программы и её опции.

Примеры использования princeprocessor.

Чтобы создать все возможные цепи из содержимого файла dict1.txt:

Используя слова из указанного словаря (dict1.txt) составить цепи минимальной длиной 2 элемента (—elem-cnt-min=2) и максимальной длиной 2 элемента (—elem-cnt-max=2), то есть в каждой цепи будет только по 2 слова:

Гибридная атака — объединение комбинаторной атаки и атаки по маске

Эта атака совмещает атаку по словарю и атаку по маске — она принимает на входе словарь и маску и выдаёт гибридный пароль.

Если ваш example.dict содержит:

генерируют следующие кандидаты в пароли:

Это работает и в противоположную сторону!

генерируют следующие кандидаты в пароли:

Все возможности гибридной атаки можно реализовать с помощью Атаки на основе правил — поэтому если она вам нравится больше, то используйте её.

Как создать комбинированный словарь, содержащий имя пользователя и пароль, разделённые символом

Теперь возвращаемся к комбинированным словарям, содержащим одновременно имя пользователя и пароль.

В качестве примера посмотрите на фрагмент словаря (файл auth_basic.txt) программы Router Scan by Stas'M — в нём учётные данные разделены символом табуляции:

А это пример комбинированного словаря, в котором имя пользователя и пароль разделены двоеточием:

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

  • users.txt и passwords.txt — словари, из которых будут взяты имена пользователей и пароли и будут составлены все возможные комбинации.
  • РАЗДЕЛИТЕЛЬ — символ, которым будут разделены логин и пароль

Например, в следующей команде разделителем является двоеточие:

Кстати, если в качестве разделителя нужно вставить символ табуляции, то нажмите Ctrl-v + Tab:

Кстати, если вы попытаетесь разобраться в приведённой выше команде hashcat, то выясните, что одновременно используется Комбинаторная атака и добавлено правило из Атаки на основе правил.

Рассмотрим частный случай: как создать файл парный словарь логинов и паролем такого типа: логин всегда постоянный, затем табуляция и пароль.

Конечно, в качестве первого словаря можно создать файл с одним текстовым полем — логином. Но есть и другой вариант с помощью мощнейшей команды sed:

  • superadmin — строка, которую нужно вставить перед каждым паролем
  • \t — символ табуляции, который будет разделять логин и пароль
  • pass.txt — файл, откуда считывать пароли
  • login_pass.txt — новый файл, куда будут сохранены пароли

Если не хотите создавать новый файл, а хотите изменить имеющийся, то уберите перенаправление и добавьте опцию -i:

Как извлечь имена пользователей и пароли из комбинированного словаря в обычные словари

Если из комбинированного словаря нам нужно извлечь только имена пользователей и/или только пароли. Для этого мы воспользуемся (тоже мощнейшей) программой awk.

Смотрите также: Уроки по Awk

Для извлечения имён пользователей:

Для извлечения паролей:

В этих командах:

  • РАЗДЕЛИТЕЛЬ — это символ, который разделяет логины и пароли. Если вам нужно указать там символ табуляции, то запишите «\t».
  • СЛОВАРЬ.txt — комбинированный словарь из которого мы извлекаем списки слов

В принципе, команды только различаются в $1 (первое поле до разделителя) и $2 (второе поле после разделителя).

Как при помощи Hashcat можно сгенерировать словарь хешей MD5 всех шестизначных чисел от 000000 до 999999

Hashcat может делать радужные таблицы, но только для Wi-Fi.

Зато с помощью PHP эту задачу можно решить несколько строк:

Время выполнение — 1-4 секунды. За это время будут сгенерированы все md5 хеши для строк 000000…999999.

Сохраните приведённый выше код в файл md5-rb-gen.php, запускать так:

Чтобы сохранить полученные хеши в файл:

Интересное наблюдение о скорости достижения задачи.

Следующие две команды делают ровно то же самое:

Но на среднем компьютере выполнение команд займёт до часа. PHP оказался быстрее, чем нативные Linux команды…

Удвоение слов

Как создать словарь 12 символьных слов, состоящих только из десятичных цифр (?d) формата abcdefabcdef, т.е шестизначное число написано два раза?

Можно использовать Атаку на основе правил, а можно написать небольшой скрипт Bash (все слова в из файла user.txt пишутся по 2 раза):

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

Как создать словарь со списком дат

Как создать список дат по шаблону ДД-ММ-ГГГГ, то есть соответствущий маске ?d?d-?d?d-?d?d?d?d но чтобы перебор был не в диапазоне 00-99, а 01-31, 01-12 и 1900-2021 соответственно?

Такие словари умеет создавать программа pydictor.

Но ещё проще словарь сделать следующим образом (он будет сохранён в файл dates.txt):

Если хотите обойтись без создания словаря, то передавайте вывод предыдущие команды на стандартный ввод hashcat:

Как разбить генерируемые словари на части

Можно ли как-то в maskprocessor разделить выходящий генерируемый словарь на несколько частей? Например, частями по 1Гб.

Да, вы можете разделить вывод maskprocessor, а также готовые словари на части. В Linux для этого удобно воспользоваться утилитой split, например:

Заключение

Если я что-то пропустил или есть утилиты, которые делают показанные вещи проще или делают возможным то, о чём я написал что это невозможно, то пишите в комментариях — будет интересно узнать об этом и дополнить статью.

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

Похожие статьи