000xpda или как я реверсил электронный дневник и нашел ключи в логах

В этом учебном году в нашей школе внедрили новый электронный дневник. Дизайн в стиле «привет из 2010-го», медленная загрузка — типичный набор для регионального госсектора. Глядя на всё это, я подумал: если визуальная часть сделана так лениво, то что же там под капотом?
Моё любопытство было вознаграждено сполна. Внутри мобильного приложения обнаружились: отладочные логи, пишущие сессионные куки в открытый доступ, самописная «криптография» на базе XOR, неиспользуемые фрагменты AES и вишенка на торте — захардкоженная в коде универсальная заглушка для авторизации, которую разработчики, видимо, забыли вырезать после тестов.
В этой статье я расскажу, как декомпиляция APK, USB-отладка и пара скриптов на Python помогли мне обойти защиту системы, написать собственного Telegram-бота для получения оценок и в очередной раз доказать, что концепция «Security through obscurity» не работает, если за дело берется школьник с JADX.
В программе:
Перехватываем X1_SSO через adb logcat.
Реверсим класс Crypt и реализуем его логику на Python.
Ищем загадочный pdakey и находим «магическую» строку 000xpda.
Пишем бота, который работает быстрее официального приложения.



















