Вы запускаете программу, о которой ничего не знаете. Она вежливо просит строку, а в ответ на ваш ввод насмешливо отвечает: «Bro, what are you trying to do?» И правда, что мы пытаемся сделать? Пытаемся понять ее. Перед нами crackme – программа-головоломка, написанная для тренировки навыков обратной разработки: бинарник под Linux x86-64 без исходников и документации, который издевается над каждым, кто не смог его разгадать. Это первая статья цикла из трех о гибридном анализе крякми Getting Started Keygen (Mazzottis). Мы осмотрим файл штатными утилитами, найдем main в Ghidra, расшифруем «бессмысленные» имена переменных в реальную раскладку стека и подтвердим гипотезы в GDB. По пути встретим оптимизированный пролог без RBP, «хитрое» беззнаковое условие и std::string , спрятавшийся в трех переменных, которые на первый взгляд никак не связаны. Во второй части цикла – мутационное тестирование и реконструкция скрытой структуры, в третьей – полный разбор хеш-функции и восстановление алгоритма н
Введение
Вы запускаете программу, о которой ничего не знаете. Она вежливо просит: «Введите строку». Вы вводите что-то и в ответ получаете насмешливое: «Бро, что ты пытаешься сделать?»
И правда, что мы пытаемся сделать? Пытаемся понять ее.
Перед нами crackme – программа-головоломка, написанная для тренировки навыков обратной разработки. Исходного кода нет, документации нет. Есть только ELF-файл, который хранит свои секреты и издевается над каждым, кто не смог его разгадать. Наша crackme называется Getting started keygen от Mazzotti (файл getting_started_keygen). По названию кажется, что задача вводная, но внутри много сюрпризов, с которыми сталкиваются при разборе реальных C++-программ – оптимизированный пролог, имена переменных декомпилятора, которые значат не то, чем кажутся, скрытые структуры данных и «хитрые» условия, ломающие голову.
Похожие статьи
Российская газета
Российская газета
Как швейная фабрика в Мстиславле стала одним из индустриальных флагманов
Экономический потенциал белорусско-российского сотрудничества успешно реализуется не только на уровне промышленных гигантов и крупных административных единиц, но и раскрывается в малых районных центра...
Новая атака в Крыму: Севастополь без света, закрыты леса, бензин, мост
В ночь на 13 августа силы ПВО РФ отражали атаку украинских БПЛА на Крым. В Севастополе из-за повреждения объекта энергетической инфраструктуры произошло отключение электричества. Aif.ru собрал последн...
Сводка СВО на 13 августа. Мстим за наших: удары возмездия крушат Украину
Этой ночью Зеленский отдал приказ атаковать Севастополь и Ростовскую область. Опять нацисты пытались бить по гражданским объектам и людям. Погибших нет, но есть раненые. «Ответка» была жёсткой. Взрывы...