Комментарии 6
Очень интригующая статья.
Это как публикация сообщения которое зашифровано с закрытым ключом, а все обладатели открытого прочли статью и поняли что происходит.
И открытый ключ представляет из себя собственно глубокое понимание ассемблера и желание поковыряться в инструкциях.
Я люблю головоломки. Но тут прям головоломка головоломки.
Вроде как сама задача не сложная взять вот такую хеш функцию.
{XOR1, ROL, ADD, XOR2, XOR1, ROL, XOR2, XOR1, XOR2, XOR1, ROL, XOR2, ROL, ADD, XOR2, ROL};
Реализация каждой из функции есть в статье, но по факту простейшие операции вроде сложения, вычитания, смещения.
И построить к ней обратную.
Что остается зашифрованным так это как взять exe файлик и понять где в нем хеш пароля, где прописан сам алгоритм хеширования и даже как из бинарника получить список инструкций в удобочитаемом ассемблере. Но еще сложнее делать это заведомо понимая, что скорее всего все усилия будут тщетны, так как простейший алгоритм sha1 уже не подастся подобному реверсу. ( не смотря на то что он вроде как считается ненадежным)
А так как дизассемблирование и вообще ассемблер это очень специфическая область знаний то разобраться дано почти что лишь не всем.
В общем сложно разобраться откуда взялась информация о хеширующей функции. Тут бы начать с ликвидации безграмотности в отношении ассемблера, дебагера и как вообще устроены бинарники.
Спасибо за отзыв :) Здорово, что заинтриговало.
Вы прочли текст, сразу поняли идею, задались вопросами, остались силы написать подробный комментарий :)
Интерес помогает решать сложные задачи. Беда в том, что интерес легко отбить заумными текстами, что с первых страниц сыплют подробностями.
Знатокам скучно читать подробное описание "очевидных" шагов, а непосвященным быстро наскучит продираться сквозь детали. Те и другие бросят чтение после второго абзаца :)
Ассемблер учат и по ходу дизассемблирования: загрузил готовую программу в отладчик и изучай. Учебник по ассемблеру и Intel Software Developers Manual лежат под рукой как справочники.
Инструменты: IDA Pro, OllyDbg, ImmDbg, x64dbg.
Предпринимал много попыток уложить в себя ассемблер. Даже более того проектировал свой простейший процессор. Нельзя сказать что я вообще не подготовлен.
К сожалению, "очевидные" шаги пока кажутся более сложными чем все приведенное описание решения.
Спасибо за набор инструментов.
Жалею о том, что существует этот серьезный провал в доступности туториалов по ассемблеру в сравнении с туторалами по тому же питону и html.
Авторы языка Си проделали много работы, чтобы избавить программисты не писали на ассемблере :) Многие задачи проще решаются на C++, Python. Даже прошивки микроконтроллеров пишут на Си.
Ассемблер пригодится разработчику трансляторов, драйверов, вирусному аналитику, взломщику и спецу по информационной безопасности. Знание языка ничего не дает, если знание не применяется на практике.
Задача определяет требования: появится цель, под нее найдутся инструменты и знания.
Спасибо за интересную статью. Кстати, можете посоветовать какой-нибудь удобный и функциональный HEX-редактор? В различных инструментах реверс-инжиниринга типа IDA Pro зачастую встроенные HEX-редакторы достаточно простенькие и различные полезные и часто используемые операции над бинарными файлами по типу: сохранить выделенный кусок в отдельный файл, добить файл определённым байтом до нужного размера и прочие подобные делаются в них несколько топорно и неудобно.
1337ReverseEngineer's VMAdventures 1 crackme