Zgodnie z tym linkiem: http://developer.android.com/guide/developing/tools/proguard.html, stwierdzają:Proguard nie kasował aplikacje na Androida
ProGuard sprawia, że aplikacja trudniejsze do inżynierii wstecznej, ważne jest, aby używać go, gdy aplikacja wykorzystuje funkcje, które są wrażliwe na bezpieczeństwo, takie jak przy licencjonowaniu aplikacji.
Ale to nie prawda! Używam najnowszej PROGUARD (4.7) zawarty w ADT 17 podglądu 4. Używam ProGuard podczas eksportowania moją aplikację, dodając
proguard.config=proguard-android.txt
do mojego project.properties (PROGUARD-android.txt jest tylko ustawienie domyślne włączone w ADT 17).
Ale mogę łatwo inżynierii wstecznej mój apk, odsyłając go do jej pierwotnego kodu za pomocą kroki:
Używaj APK-narzędzie do rozpakowania pliku APK.
Zastosowanie smali do konwersji .smali pliki do .dex (wskazać maĹ,ych do folderu zawierającej .smali plików, zazwyczaj wewnątrz/src/com/[Nazwa firmy]/[appname])
Zastosowanie dex2jar przekonwertować plik wynikowy .dex do .jar
Korzystanie jd-gui aby wynikowy plik .jar
Więc moje pytanie brzmi: czy robię coś źle? A może proguard jest zupełnie bezużyteczny w zaciemnianiu kodu?
Po prostu mówi trudniej, aby odwrócić inżynier, ale nie jest niemożliwe, aby to zrobić tak jak to, co zrobiłeś. Widzę, że ludzie używają go przede wszystkim do zmniejszania rozmiaru kodu. –
haha Chciałbym poznać ich definicję "łatwego". Każda aplikacja może zostać poddana inżynierii wstecznej w 4 komendach! Mógłbym wyszkolić małpę, żeby to zrobiła. –
Aby wyjaśnić, co widzisz w 'jd-gui' i czego spodziewasz się zobaczyć? Czy widzisz oryginalny kod jak, z grubsza, jak go skompilowałeś? Czy widzisz oryginalne nazwy zmiennych w swoich metodach, itp? –