Как DexGuard шифрует классы? - программирование
Подтвердить что ты не робот

Как DexGuard шифрует классы?

Я хочу проверить, как работает DexGuard, но кажется, что у него нет бесплатной пробной версии.

Может ли DexGuard шифровать приложение для Android? Или это просто запутывает код? Как работает шифрование DexGuard? Если бы вы могли предоставить код из образца приложения, запускаемого DexGuard до и после декомпиляции, было бы замечательно.

4b9b3361

Ответ 1

ProGuard обеспечивает обфускацию имени: он может заменить исходные имена классов, методов и полей короткими бессмысленными именами. DexGuard дополнительно предоставляет строковое шифрование и шифрование классов. Термин шифрование может вводить в заблуждение в этом контексте, поскольку в основном это более агрессивные типы обфускации. Обозначенные строки и классы хранятся в некоторой умышленно сложной зашифрованной форме и дешифруются во время выполнения с ключами и алгоритмами, которые обязательно доступны для приложения. В некотором роде аналогичным образом рынок Google Play может зашифровать все приложения для Android 4.1. Затем среда выполнения расшифровывает приложение перед его выполнением контролируемым образом.

(Я разработчик ProGuard и DexGuard - не стесняйтесь, если вам интересно)

Ответ 2

DexGuard в старой версии с использованием "DES" Alg для шифрования указанного класса. Позже он меняет "AES" alg. После шифрования указанного класса он сохраняет данные шифрования в другой класс через формат массива данных с помощью метода дешифрования. Метод дешифрования, который является статическим блоком в Dex, представляет собой метод форматов в клинике, который запутывается с помощью обфускации потока управления и скрытия API. Таким образом, это немного для деобфискирования метода дешифрования. В других классах ссылайтесь на указанное изменение класса на код операции отражения. Каждый раз, когда APK запускается, зашифрованный класс сначала дешифруется в статическом методе. И дешифрованные классы будут загружаться в память dvm с использованием API отражения. поэтому другой класс может правильно ссылаться на указанный класс. Это. На мой взгляд, DexGuard - очень мощный инструмент обфускации. Если каждая функция обфускации относится к APK, это будет стоить вам много времени, чтобы отменить всю реальную программу.

Ответ 3

Хотя они используют термин шифрование, кажется, что это действительно запутывание. Я говорю это просто потому, что хотя они могут зашифровать определенные строки/значения... тот факт, что ключ шифрования также должен быть сохранен в приложении, означает, что они обеспечивают "блокировку" для кода и в то же время составляют "ключ" "с ним.