Всем привет.
Так как не нашел райтапа, решил сам сделать =)
Идем в ghidra.
Создаем non-shared проект.
Выбираем папку для проекта и его название
Далее импортируем файл (hotkey I). На все оставшиеся вопросы отвечаем подефолту.
Переходим в CodeBrowser (иконка с гидрой) или жмём 2 раза на импортированный файл.
Далее в Symbol Tree переходим в Functions и далее m -> main. Обычно с main все и начинается.
Как видно из кода - у нас есть orig с которым сравнивается введенный flag.
Надо по сути получить то, что есть в orig в нормальном виде.
Можно конечно руками все перепечатывать, но я написал скрипт на питоне, т.к. надо еще все это перевернуть.
Флаг получен.
Так как не нашел райтапа, решил сам сделать =)
Идем в ghidra.
Создаем non-shared проект.
Выбираем папку для проекта и его название
Далее импортируем файл (hotkey I). На все оставшиеся вопросы отвечаем подефолту.
Переходим в CodeBrowser (иконка с гидрой) или жмём 2 раза на импортированный файл.
Далее в Symbol Tree переходим в Functions и далее m -> main. Обычно с main все и начинается.
Как видно из кода - у нас есть orig с которым сравнивается введенный flag.
Надо по сути получить то, что есть в orig в нормальном виде.
Можно конечно руками все перепечатывать, но я написал скрипт на питоне, т.к. надо еще все это перевернуть.
Python:
x_0_8 = '577b594245444f43'
x_8_8 = '485f554f595f574f'
x_16_8 = '4c4145525f455641'
x_24_8 = '425f4749425f594c'
x_32_4 = '4e494152'
x_36 = '}'
x = bytes.fromhex(str(x_32_4 + x_24_8 + x_16_8 + x_8_8 + x_0_8)).decode()
print(x[::-1] + x_36)
Флаг получен.