TL;DR Внутри альтернативного клиента ExteraGram работает внутренняя система динамического обновления компонентов. Через неё авторы могут в любой момент загрузить на ваш телефон код прямо из Telegram-канала, обойти окно установки (can_not_skip) и выполнить его в едином адресном пространстве приложения (с его UID и полными правами). В исследованной цепочке загрузки я не обнаружил проверки цифровой подписи. При компрометации канала или инфраструктуры обновлений это создаёт возможность массовой доставки вредоносного кода пользователям.
Как всё началось Был обычный вечер, делать было откровенно нечего. Я сам сидел на ExteraGram, и вдруг стало интересно - а как оно вообще внутри устроено? (Спойлер: после того, что я там увидел, я его снес).
Ну immat0x1 говорил, так и сделаю. На момент написания поста последняя версия exteraGram 12.9.0 от 31 июля 2026 года
Открываю терминал, натравливаю JADX на свежий APK, жду декомпиляции. Открываю исходники и... немного впадаю в ступор. Авторы обмазали клиент защитой по полной программе. Весь Java-код приложения завернут в жесточайший обфускатор LSParanoid. Вдобавок, Python-модули SDK скомпилированы через Cython в нативные либы .so, а потом прогнаны через OLLVM с Control Flow Flattening, чтобы совсем отбить желание туда лезть.