- Название: Эльфийский смали
- Категория: reverse
- Платформа: antichat
В архиве нас ждут несколько файлов с расширением .smali:
Для справки:
smali - это своего рода аналог ассемблера для
android-приложений. А те, кто знаком с разработкой таковых на
Java, могли уже заметить знакомый
MainActivity.
Если вы знаете
smaliи хотите узнать, как этот таск можно было решить, не переводя код в
java- на форуме уже есть такой
райтап. Мы же воспользуемся технологиями нашего времени и переведём этот
smali-код в
Java, и поможет нам в этом утилита
JADX(
gui-версия). Она есть как на
Windows, так и на
Linux,
гитхабприлагаю. Вообще - очень полезная тулза при ревёрсе
android-приложений, в многочисленных функциях которой есть перевод
smaliв эквивалентный
Java.
Открываем в ней эти 6 файлов:
В
MainActivityничего особо интересного не наблюдается, так что теперь заглянем в
MainActivityKt:
А вот здесь уже можно заметить довольно интересную переменную -
xorKey. Судя по всему, в функции
byteArrayToStringпередаваемый массив байт ксорится с этим ключом, и на выходе получается зашифрованная/расшифрованная строка. А чуть выше, в
byteArrayToString$defaultможно найти некоторое условие с двумя переменными (их я переименовал в соответствие со следующим скриншотом), через которое определяется сам
xorKeyи вызывается предыдущая функция. Попробуем поискать вызов этой самой
byteArrayToString$default:
А вот и сам вызов, в 27 строке! Первым аргументом у нас передаётся какой-то массив байт, вторым - 0 (
num_0с предыдущего скриншота), который потом заменится на 7, затем - 2 (
num_2) - число, которое удовлетворит проверке. И в конечном итоге этот набор байт поксорится с числом 7. Напишем простенькую программу на питоне:
Python:
Код:
secret
=
"68, 72, 67, 66, 69, 94, 124, 116, 106, 71, 107, 110, 88, 100, 55, 99, 66, 88, 97, 55, 85, 88, 102, 105, 67, 117, 55, 110, 99, 122"
secret
=
secret
.
split
(
", "
)
secret
=
[
chr
(
int
(
i
)
^
7
)
for
i
in
secret
]
print
(
""
.
join
(
secret
)
)
Запустим её:
Получили флаг, сработало!
Надеюсь, этот небольшой райтап поможет вам в нашей нелёгкой стезе.
Удачного ревёрса!
made 4@rev_with_da_boys