Привет.
Идем дальше.
А вот это вот интересно. На мой взгляд, что ни ghidra, ни ida тут не помощник. Нужно что-то иное.
hexeditor показал, что внутри есть Enter Flag, Wrong Flag и прочее, значит там есть какой-то код, скорее всего питоновский.
Ищем декомпилятор.
Есть uncompyle6 и decompyle3, но там какие-то проблемы с версиями питона. Есть еще pycdc.
git clone GitHub - zrax/pycdc: C++ python bytecode disassembler and decompiler
cd pycdc
cmake CMakeLists.txt
make
./pycdc task.cpython-38.pyc
Выводится код, который pycdc декомпилировал. Копипастим его в свой питоновский скрипт. Удаляем ненужное, добавляем нужное.
Получили флаг.
Идем дальше.
А вот это вот интересно. На мой взгляд, что ни ghidra, ни ida тут не помощник. Нужно что-то иное.
hexeditor показал, что внутри есть Enter Flag, Wrong Flag и прочее, значит там есть какой-то код, скорее всего питоновский.
Ищем декомпилятор.
Есть uncompyle6 и decompyle3, но там какие-то проблемы с версиями питона. Есть еще pycdc.
git clone GitHub - zrax/pycdc: C++ python bytecode disassembler and decompiler
cd pycdc
cmake CMakeLists.txt
make
./pycdc task.cpython-38.pyc
Выводится код, который pycdc декомпилировал. Копипастим его в свой питоновский скрипт. Удаляем ненужное, добавляем нужное.
Python:
rnd = b'\\;\xfe\xf5E\xff]\xe3\xc3i\xa0\x07\xacO\x97\xb9k\x8f'
enc = b'!|\x90\xc4.\xa0n\x88\xf7\x07\xf3|\xf5\r\xd2\xfd$\xcc'
enc = enc[::-1]
rnd = rnd[::-1]
flag = ""
for i in range(len(enc)):
flag += chr(enc[i] ^ rnd[i])
print(flag)
Получили флаг.