Acasă - Serviciu
Pe Android, la instalarea aplicațiilor și a jocurilor, apare un mesaj că instalarea din surse necunoscute este blocată pe dispozitiv. Baidu Root (versiunea rusă) Aplicația conține cod pentru a ocoli protecția Android


Iată una dintre cele mai bune solutii La primirea Root are dreptate pe smartphone-uri și tablete fără a utiliza un computer. Astăzi, acest program a primit drepturi de rădăcină pe testarea sa inteligentă Samsung Galaxy Nexus și tableta chinezeasca Freelander. Unul dintre avantajele acestei versiuni speciale a programului de la dezvoltatorii chinezi este că interfața programului este tradusă complet în rusă. Citiți instrucțiunile de mai jos despre cum să obțineți drepturi de root.

Instrucțiunile mele video obținerea Root drepturi prin Baidu Root

1. Descărcați aplicația Baidu Root: și instalați-o pe dispozitiv.
(Atenţie!!! Când instalați găleata, vă poate scrie că aplicația " Conține cod pentru a ocoli securitatea Android". Bifați caseta și faceți clic pe " Instalați oricum"). Câmp de instalare, lansați programul și vedeți acordul de la autor în chineză. Apăsați butonul Accept așa cum se arată mai jos.

2. Dacă sunteți conectat la Internet în momentul actual și programul a găsit o versiune actualizată pe serverul său, atunci vi se va solicita să actualizați versiunea programului la cea actuală. Aș face-o așa. Până acum am apăsat Anulareși am încercat să obțin root [și dacă root nu a fost obținut, atunci aș reporni programul din nou și l-aș actualiza, apoi aș încerca din nou să obțin root. (Mai jos voi schița aceeași diagramă doar cu interfața programului nativ chineză, pentru a înțelege cum să procedați dacă totul este în chineză.)].

3. Acum apăsați butonul " Obțineți root" și așteptați să se finalizeze programul. Pe Nexusul meu a funcționat aproximativ 1 minut, pe tableta Freelander ceva mai mult.

Voila. Vedem că au fost obținute drepturile root.

Și acum, așa cum am promis mai sus, voi posta un scurt manual despre cum să obțineți aceleași drepturi Root, dar cu înțelegerea că interfața programului Baidu Root este complet în chineză.

1. Câmp de instalare: lansați programul și vedeți acordul de la autor în chineză. Faceți clic pe butonul din dreapta încercuit în imaginea de mai jos.

2. Dacă sunteți conectat la Internet în momentul actual și programul a găsit o versiune actualizată pe serverul său, atunci vi se va solicita să actualizați versiunea programului la cea actuală. Pentru a actualiza versiunea, faceți clic pe butonul din dreapta, pentru a nu actualiza - stânga. De obicei, interfața chineză apare după actualizare.

3. Acum apăsați pe butonul albastru (L-am încercuit în imagine) și aștept ca programul să se finalizeze.

Obținerea drepturilor de root pentru Android fără a utiliza un computer și a trebui să recurgă la utilizarea instrumentelor greu de învățat instrumente software- destul de oportunitatea disponibilă. În acest articol vă vom spune cum să obțineți drepturi de superutilizator în doar două pași simpli folosind aplicația Framaroot pentru Android.

Principalul avantaj al metodei descrise de obținere a drepturilor de root este, în primul rând, simplitatea acesteia, precum și timpul scurt în care acest proces poate fi finalizat. Urmăm instrucțiunile, dar mai întâi există un avertisment important.

Important! Manipularile descrise mai jos presupun anumite riscuri! Fiecare acțiune, inclusiv respectarea instrucțiunilor de mai jos, este efectuată de utilizator pe riscul și riscul său. Administrația resurselor nu este responsabilă pentru posibilele consecințe negative.

Aplicația Framarut, după descărcare sau copiere pe memoria dispozitivului sau pe cardul de memorie, este un fișier apk complet obișnuit. Instalarea nu necesită acțiuni speciale, totul este standard.

Pasul 2: Obținerea drepturilor de root

La fel ca și instalarea, obținerea drepturilor de root folosind Framarut nu necesită mulți pași. Facem doar următoarele.


Iată una dintre cele mai bune soluții pentru obținerea drepturilor de root pe smartphone-uri și tablete fără a utiliza un computer. Astăzi, acest program a primit drepturi de root pe Samsung Galaxy Nexus și tableta chineză Freelander. Unul dintre avantajele acestei versiuni speciale a programului de la dezvoltatorii chinezi este că interfața programului este tradusă complet în rusă. Citiți instrucțiunile de mai jos despre cum să obțineți drepturi de root.

1. Descărcați aplicația Baidu și instalați-o pe dispozitivul dvs.
(Atenție!!! La instalare, Android vă poate scrie că aplicația „Conține cod pentru a ocoli protecția Android.” Bifați caseta și faceți clic pe „Instalare oricum”). Câmp de instalare: lansați programul și vedeți acordul de la autor în chineză. Faceți clic pe butonul Accept, așa cum se arată mai jos.


2. Dacă sunteți conectat la Internet în momentul actual și programul a găsit o versiune actualizată pe serverul său, atunci vi se va solicita să actualizați versiunea programului la cea actuală. Aș face-o așa. Deocamdată, am făcut clic pe Anulare și am încercat să obțin root [și dacă rădăcina nu a fost obținută, atunci aș reporni programul din nou și l-aș actualiza, apoi încercam să obțin root din nou. (Mai jos voi schița aceeași diagramă doar cu interfața programului nativ chineză, pentru a înțelege cum să procedați dacă totul este în chineză)

3. Acum faceți clic pe butonul „Obțineți rădăcină” și așteptați finalizarea programului. Pe Nexusul meu a funcționat aproximativ 1 minut, pe tableta Freelander ceva mai mult.

Voila. Vedem că au fost obținute drepturile root.

Și acum, așa cum am promis mai sus, voi posta un mic manual pentru obținerea acelorași drepturi Root, dar cu înțelegerea că interfața programului Baidu Root este complet în chineză:

1. Câmp de instalare: lansați programul și vedeți acordul de la autor în chineză. Faceți clic pe butonul din dreapta încercuit în imaginea de mai jos.

2. Dacă sunteți conectat la Internet în momentul actual și programul a găsit o versiune actualizată pe serverul său, atunci vi se va solicita să actualizați versiunea programului la cea actuală. Pentru a actualiza versiunea, faceți clic pe butonul din dreapta, iar pentru a nu actualiza, faceți clic pe butonul din stânga. De obicei, interfața chineză apare după actualizare.

V-am prezentat o serie de articole care au arătat clar cât de simple sunt cu adevărat aplicațiile Android. Nici măcar nu aveți nevoie de un dezasamblator pentru asta, doar de o cunoaștere superficială a Java și a limbajului Smali. Prin urmare, dacă aplicația ta este suficient de populară, știi că va fi furată și funcțiile plătite vor fi activate prin simple manipulări. Și dacă decideți să-l monetizați folosind publicitate, acesta va fi dezactivat.

Protejarea unei aplicații este dificilă, dar este posibilă. În primul rând, merită imediat abandona modelul de distribuție Pro/Lite. Aplicația este foarte ușor de eliminat de pe un smartphone, așa că un hoț va trebui să cumpere aplicația o singură dată, iar apoi poate fi distribuită ca atare. În al doilea rând, trebuie să ai grijă protectie inversa codului. Decompilarea codului Java este ușoară, dar se schimbă cod binar nu necesită abilități sau instrumente speciale. În al treilea rând, trebuie să vă asigurați că, chiar și în cazul unui hack de succes, aplicația pur și simplu nu funcționează. Atunci hackerul va trebui să rezolve două probleme simultan: să pirateze aplicația și să facă ca versiunea piratată să funcționeze.

Deci, abandonăm versiunea Pro și începem lupta.

Ascunderea și ofuscarea codului

Cel mai bun mod de a proteja codul aplicației de invers este confuzie, cu alte cuvinte, ofuscarea bytecode-ului, astfel încât este insuportabil de dificil pentru revers să-l înțeleagă. Există mai multe instrumente care pot face acest lucru. Cel mai simplu, dar totuși eficient este inclus în Android Studio. Acest ProGuard.

Pentru a-l activa, trebuie doar să adăugați linia minifyEnabled true la Android → buildTypes → secțiunea de lansare a fișierului build.gradle:

android(...buildTypes(release(minifyEnabled true)...))

android (

. . .

buildTypes(

eliberare(

minifyEnabled adevărat

. . .

După aceasta, Android Studio va începe să treacă toate versiunile de „lansare” prin ProGuard. Ca urmare, aplicația va deveni mai compactă (datorită eliminării codului neutilizat) și va primi, de asemenea, un anumit nivel de protecție împotriva inversării. „Unele” în sensul că ProGuard va înlocui numele tuturor claselor, metodelor și câmpurilor interne cu una sau două combinații de litere. Acest lucru va face într-adevăr codul decompilat/dezasamblat mult mai greu de înțeles.


Urmatorul pas - criptare șiruri. Acest lucru este util mai ales dacă stocați orice date sensibile în interiorul aplicației: identificatori, chei, puncte finale API REST. Toate acestea vor ajuta atacatorul să navigheze în codul dvs. sau să extragă informații importante din acesta.

Puteți cripta șiruri căi diferite, de exemplu folosind instrumentele Stringer sau DexGuard. Avantaj: modificare complet automatizată a codului existent pentru a implementa criptarea șirurilor. Dezavantaj: preț accesibil pentru companii, dar prea mare pentru un dezvoltator independent.

Prin urmare, vom încerca să o facem pe cont propriu. În cel mai simplu caz, criptarea șirurilor folosind Java se face astfel:

octet static public encryptString(String mesaj, SecretKey secret) aruncă o excepție ( Cipher cipher = null; cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secret); return cipher.doFinal( message.getBytes ("UTF-8");

public static byte encryptString (Mesaj șir, SecretKey secret) aruncă o excepție (

Cifrare cifră = nul ;

cipher .init (Cipher .ENCRYPT_MODE , secret ) ;

return cipher .doFinal ( mesaj . getBytes ("UTF-8" ) );

Și decodarea este așa:

public static String decryptString(byte cipherText, SecretKey secret) aruncă o excepție ( Cipher cipher = nul; cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secret); return new String(cipher) .doFinal(cipherText), „UTF-8” )

public static String decryptString (byte cipherText , SecretKey secret ) aruncă o excepție (

Cifrare cifră = nul ;

cipher = Cipher .getInstance ("AES/ECB/PKCS5Padding");

cipher .init ( Cipher . DECRYPT_MODE , secret ) ;

returnează șirul nou (cipher . doFinal ( cipherText ), "UTF-8" ) ;

Pentru a genera o cheie, este suficientă o linie:

public static SecretKey generateKey(String password) aruncă o excepție (retur secret = new SecretKeySpec(parola.getBytes(), "AES"); )

public static SecretKey generateKey (parolă șir) aruncă o excepție (

return secret = nou SecretKeySpec(parola.getBytes(), "AES");

Ideea este să scrieți o aplicație simplă pentru desktop/mobil în Java, care va lua toate șirurile dvs. ca intrare și va produce versiunile lor criptate ca rezultat. Apoi, introduceți aceste șiruri în aplicația principală în locul celor originale și în locurile unde sunt accesate, apelați funcția decryptString().

Drept urmare, atacatorul pur și simplu nu va putea vedea șirurile criptate prin decompilarea aplicației. Dar, desigur, el poate scrie un simplu decriptor bazat pe codul decompilat al criptatorului tău. Cu alte cuvinte, acesta nu este un panaceu, dar criptarea șirurilor va adăuga un alt nivel de complexitate.

Puteți merge și mai departe și puteți utiliza unul dintre instrumentele cuprinzătoare de protecție a aplicațiilor Android, cum ar fi AppSolid. Este din nou scump, dar vă permite să criptați întreaga aplicație. Acest lucru poate speria cu adevărat multe inversoare, dar există o serie de instrumente, inclusiv decompilatorul Java plătit JEB, care poate elimina automat o astfel de protecție.

De asemenea, puteți încerca să vă împărțiți aplicația în multe module mici, așa cum am scris deja în articolul Scrierea aplicațiilor modulare pentru Android. Aceasta în sine nu este o metodă de protecție și cu greu va împiedica activitatea inversorului. Dar se va rupe diverse sisteme automatizate fisurarea aplicatiei. Pur și simplu nu vor putea înțelege unde să caute codul în modul.

Ei bine, un ultim lucru: este necesar să eliminați (comentați) din cod toate apelurile către logger, adică toate apelurile către Log.d(), Log.v() și așa mai departe. În caz contrar, un atacator va putea folosi aceste informații pentru a înțelege logica aplicației.

Blocați o aplicație piratată

Bine, am stricat puțin viața inversorului. Este timpul să o facem din nou! Dar cum poți spune dacă o aplicație a fost piratată? Mai precis, cum poate afla de la sine? La urma urmei, conceptele de „hacked” și „nu hacked” există doar în capul nostru, adică acestea sunt concepte de un ordin destul de înalt care nu pot fi descrise algoritmic.

Așa este, dar nu așa. Faptul este că în interiorul fișierului APK există un set de metadate care stochează sumele de control ale absolut toate fișierele din pachet, iar metadatele în sine sunt semnate cu cheia dezvoltatorului. Dacă modificați aplicația și o împachetați din nou, metadatele pachetului se vor schimba și pachetul va trebui să fie semnat din nou. Și deoarece inversorul nu are și nu poate avea cheia dvs. de dezvoltator, folosește fie una generată aleatoriu, fie așa-numita cheie de testare.

Android în sine va înghiți cu ușurință o astfel de aplicație (nu păstrează o bază de date cu toate semnăturile digitale ale tuturor dezvoltatorilor Android posibili), dar avem propria noastră semnatura digitala, și îl putem verifica!

Verificarea semnăturii digitale

De fapt, metoda este destul de simplă. Trebuie să introduceți un cod în aplicație care va primi hash-ul cheii semnăturii digitale curente a pachetului și să îl comparați cu cel salvat anterior. Se potrivesc - aplicația nu a fost reambalată (și piratată), nu - tragem un semnal de alarmă.

Pentru a începe, introduceți următoarea bucată de cod în aplicație (cu cât îl ascundeți mai adânc, cu atât mai bine):

public static String getSignature(Context context) ( String apkSignature = null; încercați ( PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); pentru ( Semnătură semnătură: packageInfo.signatures) ( MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); apkSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT); Log.e( "DEBUG", "SEMNATURA: " + apkSemnătura); )

public static String getSignature(Context context) (

String apkSignature = null ;

încerca (

PackageInfo packageInfo = context.getPackageManager().getPackageInfo(

context.getPackageName(),

PackageManager.GET_SIGNATURES

pentru (semnătură semnătură: packageInfo .semnături ) (

MessageDigest md = MessageDigest .getInstance ( "SHA" );

md.update(signature.toByteArray());

apkSignature = Base64 .encodeToString (md .digest () , Base64 .DEFAULT ) ;

Log .e ( „DEBUG” , „SEMNATURA: „ + apkSemnătură) ;

) prinde (Excepția e) ( )

return apkSignature ;

Construiți, rulați aplicația și uitați-vă la jurnalul de execuție. Acolo vei vedea linia SEMNATURĂ: 478uEnKQV+fMQT8Dy4AKvHkYibo=. Acesta este hașul. Nu numai că trebuie reținut, ci și plasat în codul aplicației ca o constantă, de exemplu sub numele SEMNATURĂ. Acum eliminați linia Log.e... din cod și adăugați următoarea metodă:

public static boolean checkSignature(Context context) ( return SIGNATURE.equals(getSignature(context)); )

public static boolean checkSignature(Context context) (

return SIGNATURE .equals ( getSignature ( context ) ) ;

Acesta va verifica exact hash-ul salvat cu hash-ul cheii cu care aplicația este semnată în prezent. Funcția returnează true dacă semnătura digitală este a ta (aplicația nu a fost reconstruită) și false dacă a fost modificată. Ce să faci în al doilea caz depinde de tine. Pur și simplu puteți încheia aplicația cu os.exit(0) sau o puteți bloca, de exemplu, apelând o metodă pe un obiect neinițializat sau accesând o valoare de matrice inexistentă.

Dar amintiți-vă: un atacator vă poate tăia pur și simplu codul de verificare a semnăturii digitale și nu va funcționa niciodată (acest lucru este valabil și pentru codul de mai jos). Prin urmare, ascundeți-l într-un loc neevident și criptați hash-ul cheii originale, așa cum se arată mai sus.


Verificarea sursei de instalare

O altă metodă de protecție este să afli de unde a fost instalată aplicația. Logica aici este simplă: dacă sursa de instalare este Magazin Play, atunci totul este bine, aceasta este o aplicație originală, neambalată. Dacă nu, Varez a descărcat de pe forum și a instalat de pe un card de memorie sau de pe o piață neagră.

Puteți afla de unde a fost instalată aplicația într-o singură linie, iar funcția în sine care face acest lucru ar putea arăta astfel:

public static boolean checkInstaller(Context context) ( programul de instalare final String = context.getPackageManager().getInstallerPackageName(context.getPackageName()); return installer != null && installer.startsWith("com.android.vending"); )

Public static boolean checkInstaller(Context context) (

program de instalare final String = context .getPackageManager() .getInstallerPackageName(context .getPackageName()) ;

return installer != null & amplificator; & amplificator; installer.startsWith("com.android.vending");

Ca de obicei: adevărat - totul este bine, fals - Houston, avem probleme.

Determinarea emulatorului

Unele metode inverse ale aplicației implică utilizarea unui emulator. Prin urmare, ar fi util să adăugați cod la aplicație care verifică dacă rulează într-un mediu virtual. Acest lucru se poate face citind valorile unor variabile de sistem. De exemplu, standard Emulator Android Studio setează aceste variabile și valori:

ro.hardware=goldfish ro.kernel.qemu=1 ro.product.model=sdk

ro .hardware = goldfish

ro .kernel .qemu = 1

ro .produs .model = sdk

Prin urmare, după citirea valorilor acestor variabile, putem presupune că codul este executat în emulator:

public static boolean checkEmulator() ( try ( boolean goldfish = getSystemProperty("ro.hardware").contains("goldfish"); boolean emu = getSystemProperty("ro.kernel.qemu").length() > 0; boolean sdk = getSystemProperty("ro.product.model").contains("sdk"); if (emu || goldfish || sdk) ( return true; ) ) catch (Exception e) () return false ) private static String getSystemProperty ( Nume șir) aruncă o excepție ( Class sysProp = Class.forName("android.os.SystemProperties"); return (String) sysProp.getMethod("get", new Class(String.class)).invoke(sysProp, new Object ( Nume));

public static boolean checkEmulator() (

încerca (

Dacă ați uitat parola sau modelul de pe dispozitivul Android, atunci acesta nu este un motiv de panică. Există mai multe rapide și opțiuni simple deblocați telefonul sau tableta Bazat pe Androidîn cazul în care nu vă amintiți modelul sau PIN-ul.

Introducerea datelor contului Google

Dacă smartphone-ul sau tableta dvs. are conexiune permanentă De retea fara fir, atunci puteți rezolva problema ocolirii protecției prin simpla intrare Adresa de e-mail si parola. După 5 încercări nereușite de a debloca ecranul, va apărea o notificare. Faceți clic pe el și, în fereastra care apare, introduceți datele utilizatorului contului dvs. Google.

Ce trebuie să faceți dacă ați uitat parola contului postări Google? Finalizați procedura de restabilire a accesului la contul dvs. direct cu ajutorul asistenței.

Deblocare prin Hard Reset

Când utilizați această metodă, toate datele personale vor fi șterse și sistemul smartphone-ului va reveni la setările din fabrică (fișierele cardului SD nu sunt afectate). Înainte de a efectua procedura, este indicat să aveți un fișier de rezervă din care puteți restaura informațiile utilizatorului.

Cel mai simplu mod de a reseta este să utilizați utilitarul care se află în setările dispozitivului dvs. Deoarece accesul la sistem este blocat, va trebui să acționați prin:


Fiecare acțiune a utilizatorului (crearea unui cod PIN, cheie grafică) se reflectă în sistem prin crearea anumitor fișiere. Putem concluziona că, dacă ștergeți datele parolei, veți putea debloca dispozitivul fără a pierde informațiile despre utilizator.

Mulți utilizatori se întreabă de fapt cum să deblocheze Android printr-un computer. Pentru a face acest lucru, veți avea nevoie de utilitarul ADB, precum și de gadgetul dvs. conectat în modul de depanare USB. Urmați următorul algoritm:


adb shellrm /data/system/gesture.key

rm /data/system/locksettings.db;

rm /data/system/locksettings.db-wal;

rm /data/system/locksettings.db-shm;

Reflectarea dispozitivului

Dacă alte modalități de a pirata Android nu sunt disponibile pentru dvs. din anumite motive, atunci a. Acest lucru se poate face în mai multe moduri:

  • Prin intermediul unui computer folosind un cablu USB;
  • Prin meniul de recuperare de pe orice dispozitiv Android. Trebuie să utilizați un computer pentru a descărca fișierul firmware direct în memoria telefonului sau a tabletei.

În acest caz, va fi posibil să descărcați nu numai firmware-ul oficial, dar si diverse optiuni personalizate in care se pot schimba designul, functiile de protectie, driverele, utilitatile etc.

Eliminarea gesture.key (funcționează numai pentru blocarea cu o cheie grafică)

Deblocarea unui telefon sau tabletă Android folosind această metodă este imposibilă fără drepturi de root și. Dacă nu îndepliniți aceste condiții, atunci alegeți o altă metodă pentru a ocoli protecția. Cheie grafică este resetat după cum urmează:


Multe dintre metodele descrise mai sus sunt imposibile fără deblocarea bootloader-ului. După ce ați făcut acest lucru, veți primi drepturi de root și veți putea instala propria versiune firmware sau recuperare personalizată, prin urmare, înainte de a sparge blocarea Android, trebuie să eliminați protecția bootloader-ului. Este recomandat să faceți acest lucru imediat pentru a fi pe deplin pregătit în situațiile în care ați uitat codul/modelul PIN.

Algoritm de deblocare:


După aceasta, începe procesul de activare a bootloaderului și apare pe ecranul dispozitivului. Așteptați finalizarea procesului, apoi pur și simplu reporniți dispozitivul. Deblocarea bootloaderului este completă. Sfaturile descrise mai sus sunt potrivite pentru aproape toate ocaziile, deoarece fiecare poate avea propria situație problematică. Sperăm că sfaturile noastre vă vor ajuta să scăpați rapid și corect de problemă.



 


Citit:



Cum să partiționați corect un hard disk utilizând Acronis Disk Director Suite Partiționarea discului folosind acronis

Cum să partiționați corect un hard disk utilizând Acronis Disk Director Suite Partiționarea discului folosind acronis

Salutări, dragi cititori! În acest articol aș dori să continui conversația despre dispozitivul de stocare a datelor și anume hard disk-ul...

Super zero MTS: descrierea tarifului

Super zero MTS: descrierea tarifului

Numărul de abonați crește în fiecare zi cu mii pe zi. Au trecut de mult vremurile în care într-un minut de conversație chiar și cu operatorul nostru...

Cazuri (situații de interacțiune între un copil și un adult) Situații pedagogice, metode de predare a conducerii

Cazuri (situații de interacțiune între un copil și un adult) Situații pedagogice, metode de predare a conducerii

Astăzi este cel mai important mecanism de dezvoltare a fiecărei persoane. În acest sens, sarcina principală este de a oferi condiții pentru...

Ce să faci dacă un virus intră pe dispozitivul tău?

Ce să faci dacă un virus intră pe dispozitivul tău?

Din păcate, uneori se întâmplă ca antivirusul instalat pe sistem cu cele mai recente actualizări să nu poată detecta un virus nou...

imagine-alimentare RSS