Друзья всех приветствую! Продолжаем «пывнить» :) Кто не прочитал первую статью — она есть ТУТ! В этой статье будем решать таск Stack1 (скачать EXEшник можно ТУТ). Начинаем со статического анализа, открываем stack1.exe в GHIDRA: Анализируем наш бинарный файл: Получаем декомпилированный код: Сразу же обращаем внимание на использование небезопасной функции strcpy(), которая копирует наш переданный аргумент в 64-байтный массив (local_54). В прошлый раз мы перезаписывали переменную, а в этот раз нам нужно присвоить ей конкретное значение, а именно 0x61626364. Перезаписав переменную, наше условие сработает, и мы увидим строчку «you have correctly...». Переходим к «динамике»! Открываем x64dbg, открываем stack1.exe и нажимаем «Изменить аргументы командной строки»: Но что-же писать в качестве аргумента? Вспоминаем, что массив у нас на 64 байта, поэтому заполним его символами «A». Далее нам нужно дозаписать 0x61626364. Открываем ASCII-таблицу, чтобы узнать, что это за символы: Отлично! С учетом
Реверсинжиниринг PWN-тасков или эксплуатируем бинарные уязвимости (Часть 2 / Stack1)
23 июля 202423 июл 2024
4
1 мин