ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Шифрование или что-то в этом роде, не знаю (writeup) (https://forum.antichat.xyz/showthread.php?t=1641894)

yetiraki 15.05.2023 17:41

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

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

https://forum.antichat.xyz/attachmen...8e0500616e.png

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

https://forum.antichat.xyz/attachmen...92cbd4e26d.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
)

Получен флаг.


Время: 13:26