- Cum sa furi o aplicatie pentru Android?
- Iei și să fure.
Așa că am abandona Pro-versiune și începe lupta.
Ascunde și codul confuz
Cel mai bun mod de a proteja codul de aplicație inversă - este disimulare. cu alte cuvinte - obfuscated bytecode, astfel încât inversor era insuportabil de greu să-l înțeleagă. Există mai multe instrumente care pot face acest lucru. Cel mai simplu, dar eficient acolo, ca parte a Android Studio. Acesta ProGuard.
Pentru activarea acestuia este suficientă pentru a adăuga Android secțiunea → buildTypes → eliberare linie fișier build.gradle minifyEnabled adevărat:
După aceea Android Studio va începe să dor de toate „versiunea de presă“ construi prin ProGuard. Ca urmare, cererea va fi mai mică (prin eliminarea codului neutilizat), precum și a primi un anumit nivel de protecție împotriva inversă. „Unii“, în sensul că ProGuard înlocuiască numele tuturor claselor interne, metodele și domeniile pentru combinațiile-one două litere. Este într-adevăr este mult mai dificil de înțelegere decompiled / demontare.
Deci, uita-te în Decompiler clase JADX după utilizarea ProGuardUrmătorul pas - criptarea de rânduri. Acest lucru este util mai ales dacă stocați în interiorul aplicației orice date sensibile: identificatori, chei, puncte finale REST API. Toate acestea vor ajuta un atacator pentru a naviga în codul dvs. sau pentru al izola de informații importante.
șir de caractere criptate pot fi în diferite moduri, de exemplu, folosind instrumente Stringer sau DexGuard. Avantaj: modificarea complet automatizat de cod existent pentru a pune în aplicare rânduri de criptare. Dezavantajul: prețul pe care este disponibil companiilor, dar prea mare pentru dezvoltatori independenți.
De aceea, încercăm să facem pe cont propriu. În cel mai simplu caz, criptarea de siruri de caractere în Java se realizează după cum urmează:
O transcriere - după cum urmează:
Pentru a genera o cheie, doar o singură linie:
Ca urmare, un atacator nu se poate pur și simplu vedea șirul criptat, decompila aplicație. Dar, desigur, să fie în măsură să scrie un decodor simplu, bazat pe codul decompiled codificatorului. Cu alte cuvinte, nu este un panaceu, dar un alt strat de complexitate pentru a adăuga siruri de caractere de criptare.
Puteți merge chiar mai departe și de a folosi unul dintre instrumentele de protecție cuprinzătoare a Android-aplicații, cum ar AppSolid. Este de remarcat că, din nou scump, dar vă permite să cripta întreaga aplicație. Este într-adevăr capabil reverser sperie multe, dar există o serie de instrumente, inclusiv plătit-Java Decompiler JEB. care este capabil de a elimina astfel de protecție într-un mod automat.
De asemenea, puteți încerca să rupă aplicația în mai multe module mici, așa cum am scris în articol Scrierea aplicații modulare pentru Android. Prin ea însăși, acest lucru nu este o metodă de protecție, și el aproape nu a făcut lucrarea de reverser. Dar este rupt de pe o varietate de aplicații de sisteme automatizate krakinga. Ei pur și simplu nu pot da seama unde să caute este în modulul de cod.