::RiZN BLOG::

March 2, 2008

John The Ripper и md5

Filed under: soft, manual, linux — reasonspace @ 11:29 pm

Случилось мне тут забыть один свой пароль. Имелся только 128-битный md5-хэш пароля, причём записанный plaintext’ом, который был когда-то сгенерён программой md5sum. Для восстановления паролей по хэшам очень удобно использовать утилиту John The Ripper. Но есть одна проблемка, она (точнее он, John, всё-таки) не умеет работать с raw-md5.
Решение проблемы было отгуглено не сразу, спасибо друзьям на помощь и тыкание в правильные ссылки :)
Начнём с того, что нужно скачать исходники с официального сайта и распаковать их в какую-либо директорию. Например,
mkdir john #создаём директорию 'john'
cd john #переходим туда
wget http://www.openwall.com/john/f/john-1.7.2.tar.bz2 #и скачиваем тарбол с сорцами (на момент написания, самая свежая — 1.7.2)
tar -xvf john-1.7.2.tar #разархивируем
cd john-1.7.2 #переходим в папку с сорцами
wget ftp://ftp.openwall.com/pub/projects/john/contrib/john-1.7.2-all-9.diff.gz #качаем diff-архив с фиксом
gzip -d john-1.7.2-all-9.diff.gz #разархивируем
patch -p1 < john-1.7.2-all-9.diff #применяем патч
cd src # переходим в директорию, откуда будем собирать Джонни
make # собираем
make clean linux-x86-any # собираем, причем платформу можно (и нужно) выбрать свою
cd ../run #переходим в директорию с компилированной программой
./john -format=raw-MD5 /путь/до/файла/my_forgotten_md5-hash.txt #запускаем и ждём результатов

Замечу, что хэш должен лежать в формате user:hash, например
user:60ddb868550a7f0dece5379390bb71ea

Но лучше не забывайте свои пароли ;)

April 9, 2007

ies4linux

Filed under: soft, tips, manual, linux — reasonspace @ 9:07 pm

Очень многие люди не могут перейти на линукс по причине отсутствия какого-то кривого виндового софта в линуксе. Например, в моём вузе иногда нужно проходить онлайн-тестирование. Сайт тестирования написан на asp.net и оптимизирован только под Internet Explorer… Хотя слово “оптимизирован” немного неверно, вернее было бы сказать “работает только в IE”. Но так как от винды я отвык ровно на столько, на сколько привык к безглючности линукса, пришло время искать альтернативу. Она была найдена в программе IEs4Linux. Сей проект является скриптом для корректной работы Microsoft Internet Explorer с помощью Wine.
Рассмотрим пошагово, как сие чудо поставить:
Сначала нужно проверить наличие в списке репозиториев (/etc/apt/sources.list) вот этих строк
deb http://us.archive.ubuntu.com/ubuntu edgy universe
deb http://wine.budgetdedicated.com/apt edgy main

Сохраняем файл. Теперь добавим в систему gpg-ключ для второго источника:
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
А теперь знакомой командой обновляем сведения о доступных к установке приложений
sudo apt-get update
Инсталлируем Wine:
sudo apt-get install wine cabextract
Теперь загрузим архив с IEs4Linux, распакуем его и установим:
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux

После ввода последней команды надо будет ответить на несколько несложных вопросов и вуаля - на рабочем столе появилась новая иконка - утопленная в рюмке буква “е” :)
Собственно всё. Никаких перезагрузок в винду ради костыля от microsoft ;)

March 9, 2007

Классификация программных ошибок

Filed under: soft, fun — reasonspace @ 3:57 pm

А это бага или фича? ;)

Нет ни одного человека, знакомого с компьютерами более месяца и не встречавшего ни одной ошибки в используемом софте. Такие ошибки обычно называют “бáга”, что в переводе означает жук; ведь именно жук, севший на микросхемы одного большого компьютера в прошлом вызвал один из первых глюков. Но, истории хватит пока что) Многие называют любую программную ошибку багой, хотя эти самые баги очень и очень разнообразны! Итак, практически тема дипломного проекта, классификация багов:
Бозебаг - это скопление ошибок в каком-то конкретном месте исполняемого кода, бесконечное их число.
Борбаг - ошибка, которая, в противоположность гейзенбагу, не исчезает и не меняет своих свойств при попытке её обнаружения. Данный тип ошибки характеризуется как устойчивый и поэтому назван в честь атомной модели, разработанной Нильсом Бором.
Гейзенбаг - тип ошибки, которая исчезает или меняет свои свойства при попытке её обнаружения.
Примером могут являться ошибки, которые проявляются в окончательном варианте программы (релизе), однако не видны в режиме отладки, или ошибки синхронизации в многопоточном приложении. Данное название является игрой слов и происходит от физического термина «Принцип неопределённости Гейзенберга», который на бытовом уровне понимается как изменение наблюдаемого объекта в результате самого факта наблюдения, происходящее в квантовой механике.
Дзенбаг - это такая ошибка, которая, в общем-то, ни на что не влияет, но при этом ошибкой всё же является.
Мандельбаг - бага, чьё поведение столь сложно, что выглядит хаотичным. Это также подразумевает, что говорящий полагает, что это скорее борбаг, чем гейзенбаг. Название происходит от имени Бенуа Мандельброта, основоположника фрактальной геометрии. Однако, если не существует способа разделить ошибку, чьё поведение кажется хаотичным, и ошибку, чьё поведение действительно хаотично, то нет никакого смысла различать мандельбаг и гейзенбаг. Некоторые используют термин мандельбаг для описания ошибки, чьё поведение не кажется действительно хаотичным, но столь сложно, что для её исправления требуется переписать программу с нуля. Примером такой ошибки может служить фундаментальная ошибка, допущенная при проектировании системы.
Метабаг - банальная грамматическая ошибка в тексте комментария. Является родственником дзенбага.
Фермабаг - это тип ошибок, чрезвычайно сложных для доказательства. Название происходит от печально известной теоремы Ферма.
Фермибаг - как и бозебаг, описывает скорее количество, чем качество, ошибок и определяет их число в интервале от одной до двух на отдельно взятую строку кода.
Шрёдинбаг - один из самых интересных типов ошибок, который никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на него в исходном коде или попытается использовать программу в необычных условиях и осознаёт, что система вообще не могла работать при наличии такой ошибки. После этого программа перестаёт работать вообще до тех пор, пока ошибка не будет исправлена. Хотя это звучит невероятно, некоторые программы содержат в себе латентные шрёдинбаги. Слово «шрёдинбаг» происходит от мысленного эксперимента с котом Шрёдингера, о котором можно прочитать вон там. Забавным примером можно считать историю о старике и бороде (хотя само название «шрёдинбаг» в ней, разумеется, не упомянуто). Некоторого старика с длинной бородой спросили, куда он кладет бороду, когда спит — под одеяло или на одеяло. Он понял, что не знает, а когда лег спать, попытался выяснить это опытным путем. Попробовал положить под одеяло — очень неудобно, на одеяло — тоже очень неудобно. Поскольку оба варианта не подходили, старик больше не мог заснуть, и через некоторое время скончался от недостатка сна.

Вот так! Казалось бы, ошибка и ошибка, а как интересно в них разобраться!
Материал взят из Википедии, а также додуман Паяльником и автором сего блога :)

Powered by WordPress