Вопрос по java, android – Proguard работает, чтобы скрыть статические строковые константы?

39

Будет ли Proguard работать, чтобы скрыть статические строковые константы?

Вот пример простого сокрытия строки с использованиемbuild.gradle файл:gist.github.com/shomeser/68f4fe360be0edac95e4 Oleksii K.
@OleksiiKropachov Я думаю, что выше комментарий должен быть опубликован в качестве ответа, потому что это поможет. Harmeet Singh
Proguard не запутывает статические строкиenter link description here Anuj Jindal

Ваш Ответ

4   ответа
64

Часто задаваемые вопросы, Его более поздняя специализированная закрытая сестра для Android,DexGuardпредоставляет дополнительные методы защиты приложений, такие как шифрование строк и шифрование классов.

(Я разработчик ProGuard и DexGuard)

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
11

Proguard FAQ Ссылка)

Но есть некоторые коммерческие продукты, которые помогут вам в этом. Я бы порекомендовалСтрингер Java Обфускатор потому что он имеетcheck call context and integrity controls features что делает реверс-инжиниринг максимально трудным. IMHO Stringer - лучший строковый шифратор для Java и Android на рынке сегодня.

Также смAllatori Java Obfuscator.

Нотабене Я генеральный директор Licel LLC. Разработчик Stringer Java Obfuscator.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
8

does (если настроено правильно для этого) это строковые константы. Не имело бы большого смысла запутывать их, думать об этом, строковая константа могла бы использоваться для представления сообщения пользователю, и что хорошего это сделало бы, если бы оно было запутано?

Error: User Rate Limit Exceededconfigure ProGuard to strip out the log callsError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

ответ нет.

Обфускация строковых литералов теоретически возможна, но было бы необходимо использовать специальный загрузчик классов, который очищал бы строковые литералы при их чтении из файла класса. Это было бы сложно. Вдобавок к этому он не многого достигнет, поскольку кто-то может легко восстановить исходные строки, запустив ваше приложение с подключенным отладчиком Java.

Похожие вопросы