Может ли -keepattributes SourceFile, LineNumberTable при обфускации с помощью ProGuard облегчить обратное проектирование полученного APK?

Мне нужно больше деталей в сообщаемых трассировках стека, но я обеспокоен тем, что, включая дополнительные данные (используя -keepattributes SourceFile, LineNumberTable) я делаю свое приложение еще проще для обратного проектирования. Так ли это, и если да, то на сколько?

29
задан Vinoth 18 July 2011 в 05:42
поделиться

2 ответа

Руководство по ProGuard> Примеры> Создание полезных запутанных трассировок стека

Атрибут SourceFile необходим, поскольку виртуальная машина Java Oracle / Sun в противном случае не включает номера строк в трассировку стека, что что вы действительно хотите (и что само по себе совершенно безвредно). Я не проверял, верно ли это для виртуальной машины Dalvik в Android.

Что касается решения, ProGuard может сохранить атрибут SourceFile, но заменить его содержимое бессмысленной строкой по вашему выбору, например

.
-renamesourcefileattribute SourceFile

Значение строки не важно для интерпретации трассировки стека. Выбор строки, такой как «SourceFile», позволяет избежать увеличения размеров файла класса, потому что эта строка уже присутствует по определению.

40
ответ дан 28 November 2019 в 01:47
поделиться
-renamesourcefileattribute
-keepattributes SourceFile, LineNumberTable,Signature,Exceptions,InnerClasses,EnclosingMethod

или

-renamesourcefileattribute ''
-keepattributes SourceFile, LineNumberTable,Signature,Exceptions,InnerClasses,EnclosingMethod

Просто позволяют пустому имени файла, в порядке

0
ответ дан 28 November 2019 в 01:47
поделиться
Другие вопросы по тегам:

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