
15.05.2023, 17:41
|
|
Новичок
Регистрация: 07.02.2023
Сообщений: 0
С нами:
1719376
Репутация:
0
|
|
Привет.
Идём дальше.
Открываем в ghidra. Смотрим в main. Видим набор данных в массиве и запуск функций "шифрования" enc.
Смотрим внутрь enc и видим, обычный xor.
Во время реверса надо знать, что все команды которые в коде делаются надо делать в обратную сторону, благо 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
)
Получен флаг.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|