CTF Шифрование или что-то в этом роде, не знаю (writeup)

Привет.
Идём дальше.

Открываем в ghidra. Смотрим в main. Видим набор данных в массиве и запуск функций "шифрования" enc.
crypto_or_smthng_main.png


Смотрим внутрь enc и видим, обычный xor.
crypt_or_smthng_enc.png


Во время реверса надо знать, что все команды которые в коде делаются надо делать в обратную сторону, благо xor работает в обе стороны, но вот сдвиги, сложения, вычитания и деления и прочее уже так не работают. Т.е. надо выполнять команды в обратной последовательности и с обратными знаками, т.е. если был +, то делать надо - и т.д..

Python:
data = [0x7bf,0x7ab,0x7a0,0x7a1,0x7be,0x7b5,0x57,0x46,0x7b1,0x7af,0x50,0x7bb,0x5d,0x7bb,0x7af,0x6d,0x49,0x7ac,0x48,0x6f,0x7bb,0x54,0x6c,0x7ae,0x59]

result = ""

for i in data:
    num = i ^ 0xbad
    num = num - 0x24
    num = num ^ 0xbad
    result += chr(num)

print(result)

Получен флаг.
 
  • Нравится
Реакции: Cruel Lord, pav_a и GoBL1n
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!