Koks yra kodas norint apeiti „Android“ apsaugą. Baidu Root (rusiška versija)

Supervartotojo teisių gavimas be kompiuterio, naudojant nexus7_2013 pavyzdį.

nurodymus

  • 1. Atsisiųskite „Towelroot“ programą.
  • 2. Įsitikinkite, kad nustatymų/saugos skiltyje pažymėtas langelis, leidžiantis diegti iš nežinomų šaltinių.
  • 3. Įdiekite nekreipdami dėmesio į šį įspėjimą:
  • {
    Nerekomenduojame įdiegti šios programos:
    rankšluosčio šaknis
    Jame yra kodas, skirtas apeiti „Android“ saugumą.
    (žymimasis laukelis) Vis tiek įdiegti (nepažymėta)
    (mygtukas) Neįdiegti
    (mygtukas) Vis tiek įdiekite
    }
  • 4. Pažymėkite atitinkamą langelį ir spustelėkite atitinkamą mygtuką.
  • 5. Atidarykite programą ir raskite mygtuką pavadinimu:
    "Make it ra1n"
  • 6. Atidžiai prisimename jo vietą, nuo tada turėsime pristabdyti „Talkback“, kitaip gausime klaidą.
  • 7. Laikinai iškelkite „TalkBack“ per visuotinį kontekstinį meniu.
  • 8. Suaktyviname vietą, kurią prisiminėme (5 ir 6) punktuose.
  • Čia nereikia dvigubo skirtuko, užtenka vieno bakstelėjimo.
  • Jei po ranka turite matantį žmogų, optimaliausia būtų jo paprašyti atlikti šį paprastą veiksmą.
  • 9. Palaukiame šiek tiek laiko, maždaug 10-15 sekundžių, jei įrenginys neperkrauna, tai darome patys.
  • 10. Įdiekite programą supersu.
  • 11. Paleiskite supersu. ir į pasiūlymą atnaujinti dvejetainis failas Mes sutinkame.
  • 12. Jei visi veiksmai bus atlikti teisingai, telefonas dabar gali naudotis supervartotojo teisėmis.

Pastabos:

  • Palaikomų „Towelroot“ įrenginių sąrašas. esančios
  • Jei paleidus supersu. gausi žinutę -
    "nepavyko atnaujinti dvejetainio failo"
    tada iš naujo paleiskite įrenginį ir bandykite dar kartą.
  • Jei tai jums nepadeda, greičiausiai nesate įgiję supervartotojo teisių; norėdami tai padaryti, bandykite dar kartą, naudodamiesi reginčiojo pagalba, suaktyvindami mygtuką „Make it ra1n“.
  • Prieš diegdami supervartotojo teises, atidžiai išstudijuokite visas susijusias problemas, susijusias su netinkamu naudojimu ir įrenginio garantijos panaikinimu...


Čia yra vienas geriausių sprendimų gauti šaknį teises išmaniuosiuose telefonuose ir planšetiniuose kompiuteriuose nenaudojant kompiuterio. Šiandien su šia programa gavau Root teisus ir mano bandyme išmanusis Samsung Galaxy Nexus ir Kiniška tabletė Freelanderis. Vienas iš šios konkrečios Kinijos kūrėjų programos versijos pranašumų yra tai, kad programos sąsaja yra visiškai išversta į rusų kalbą. Perskaitykite toliau pateiktas instrukcijas, kaip gauti root teises.

1. Atsisiųskite „Baidu“ programą ir įdiekite ją savo įrenginyje.
(Dėmesio!!! Diegdama „Android“ gali jums parašyti, kad programa „Sudėtyje yra kodas, skirtas apeiti Android apsaugą“. Pažymėkite langelį ir spustelėkite „Įdiegti vis tiek“). Diegimo lauką, paleiskite programą ir peržiūrėkite autoriaus sutartį kinų. Spustelėkite mygtuką Priimti, kaip parodyta žemiau.


2. Jei šiuo metu esate prisijungę prie interneto ir programa savo serveryje rado atnaujintą versiją, būsite paraginti atnaujinti programos versiją į dabartinę. Daryčiau taip. Kol kas aš spustelėjau Atšaukti ir bandžiau gauti root [ir jei root nebuvo gautas, iš naujo paleisčiau programą ir ją atnaujinčiau, o tada vėl bandyčiau gauti root. (Žemiau pateiksiu tą pačią diagramą tik su vietine kinų programos sąsaja, kad suprasčiau, kaip elgtis, jei viskas yra kinų kalba)

3. Dabar spustelėkite mygtuką „Get root“ ir palaukite, kol programa bus baigta. Mano „Nexus“ jis veikė apie 1 minutę, „Freelander“ planšetiniame kompiuteryje šiek tiek ilgiau.

Voila. Matome, kad buvo gautos pagrindinės teisės.

Ir dabar, kaip žadėjau aukščiau, paskelbsiu trumpą vadovą, kaip gauti tas pačias šaknines teises, tačiau tikiuosi, kad programos sąsaja Baidu šaknis visiškai kinų kalba:

1. Diegimo laukas: paleiskite programą ir peržiūrėkite autoriaus sutartį kinų kalba. Spustelėkite dešinįjį mygtuką, apjuostą toliau esančiame paveikslėlyje.

2. Jei šiuo metu esate prisijungę prie interneto ir programa savo serveryje rado atnaujintą versiją, būsite paraginti atnaujinti programos versiją į dabartinę. Norėdami atnaujinti versiją, spustelėkite dešinįjį mygtuką, o ne atnaujinti, spustelėkite kairįjį mygtuką. Paprastai kinų sąsaja pasirodo po atnaujinimo.

Supažindinome jus su daugybe straipsnių, kurie aiškiai parodė, kokios paprastos iš tikrųjų yra „Android“ programos. Tam net nereikia išmontuotojo, užtenka paviršutiniškų Java ir Smali kalbos žinių. Todėl, jei jūsų aplikacija pakankamai populiari, žinokite, kad ji bus pavogta, o mokamos funkcijos bus aktyvuotos atliekant paprastas manipuliacijas. Ir jei nuspręsite užsidirbti pinigų naudodami reklamą, jis bus išjungtas.

Apsaugoti programą sunku, bet įmanoma. Visų pirma, verta iš karto atsisakyti Pro/Lite platinimo modelio. Aplikaciją labai lengva išimti iš išmaniojo telefono, todėl vagiui aplikaciją reikės įsigyti tik vieną kartą, o tada ją bus galima platinti tokią, kokia yra. Antra, reikia rūpintis kodo apsauga nuo atvirkštinio. Dekompiliuoti Java kodą paprasta, o dvejetainio kodo keitimas nereikalauja jokių specialių įgūdžių ar įrankių. Trečia, turite įsitikinti, kad net sėkmingo įsilaužimo atveju programa tiesiog neveikia. Tada įsilaužėlis turės išspręsti dvi problemas vienu metu: nulaužti programą ir priversti nulaužtą versiją veikti.

Taigi, mes atsisakome Pro versijos ir pradedame kovą.

Kodo slėpimas ir užmaskavimas

Geriausias būdas apsaugoti programos kodą nuo atvirkštinio užtemimas, kitaip tariant, baito kodo užtemdymas, kad reversininkui būtų nepakeliamai sunku jį suprasti. Yra keletas įrankių, kurie gali tai padaryti. Paprasčiausias, bet vis tiek efektyvus yra įtrauktas į „Android Studio“. Tai ProGuard.

Norėdami jį suaktyvinti, tiesiog pridėkite eilutę minifyEnabled true prie failo build.gradle skilties android → buildTypes → leidimas:

Android (

. . .

buildTypes(

paleisti (

minifyEnabled true

. . .

Po to „Android Studio“ pradės perduoti visas „leidimo“ versijas per „ProGuard“. Dėl to programa taps kompaktiškesnė (dėl nepanaudoto kodo pašalinimo), taip pat gaus tam tikrą apsaugos nuo atbulinės eigos lygį. „Kai kurie“ ta prasme, kad ProGuard pakeis visų vidinių klasių, metodų ir laukų pavadinimus vienos ar dviejų raidžių kombinacijomis. Dėl to iškompiliuotas / išardytas kodas iš tikrųjų bus daug sunkiau suprantamas.


Kitas žingsnis - eilutės šifravimas. Tai ypač naudinga, jei programoje saugote slaptus duomenis: identifikatorius, raktus, REST API galutinius taškus. Visa tai padės įsilaužėliui naršyti jūsų kodą arba iš jo išgauti svarbią informaciją.

Galite užšifruoti eilutes Skirtingi keliai, pavyzdžiui, naudojant Stringer arba DexGuard įrankius. Privalumas: visiškai automatizuotas esamo kodo modifikavimas, siekiant įgyvendinti eilučių šifravimą. Trūkumas: įmonėms prieinama kaina, bet nepriklausomam kūrėjui per didelė.

Todėl bandysime tai padaryti savo jėgomis. Paprasčiausiu atveju eilučių šifravimas naudojant „Java“ atliekamas taip:

viešas statinis baitas encryptString (Eilutės pranešimas , SecretKey paslaptis ) meta Išimtį (

Šifro šifras = null ;

šifras .init (Cipher .ENCRYPT_MODE , slaptas ) ;

return šifras .doFinal ( pranešimas . getBytes ( "UTF-8" ) );

O dekodavimas yra toks:

public static String decryptString (baitas šifruotas tekstas , SecretKey paslaptis ) meta Išimtį (

Šifro šifras = null ;

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

šifras .init (šifras. DECRYPT_MODE, slaptas);

return new String (šifras . doFinal ( cipherText ) , "UTF-8" );

Norėdami sugeneruoti raktą, pakanka vienos eilutės:

viešas statinis SecretKey generavimoKey (Eilutės slaptažodis) meta Išimtį (

return secret = naujas SecretKeySpec(password.getBytes(), "AES");

Esmė yra parašyti paprastą darbalaukio / mobiliojo kompiuterio programą „Java“, kuri paimtų visas jūsų eilutes kaip įvestį ir kaip išvestį sukurs užšifruotas jų versijas. Tada šias eilutes įterpiate į pagrindinę programą, o ne originalias, o tose vietose, kur jos pasiekiamos, iškviečiate funkciją decryptString().

Dėl to užpuolikas tiesiog negalės matyti užšifruotų eilučių, dekompiliuodamas programą. Bet, žinoma, jis gali parašyti paprastą dešifratorių, pagrįstą jūsų šifruotojo dekompiliuotu kodu. Kitaip tariant, tai nėra panacėja, tačiau eilučių šifravimas padidins dar vieną sudėtingumą.

Galite eiti dar toliau ir naudoti vieną iš išsamių „Android“ programų apsaugos įrankių, pvz., „AppSolid“. Tai vėlgi brangu, bet leidžia užšifruoti visą programą. Tai tikrai gali išgąsdinti daugelį reverserių, tačiau yra daugybė įrankių, įskaitant mokamą Java dekompiliatorių JEB, kuris gali automatiškai pašalinti tokią apsaugą.

Taip pat galite pabandyti suskaidyti savo programą į daugybę mažų modulių, kaip jau rašiau straipsnyje Modulinių programų, skirtų Android, rašymas. Tai savaime nėra apsaugos būdas ir vargu ar tai trukdys reverserio darbui. Bet nutrūks įvairiai automatizuotos sistemos aplikacijos įtrūkimai. Jie tiesiog negalės suprasti, kur modulyje ieškoti kodo.

Na, paskutinis dalykas: būtina pašalinti (komentuoti) iš kodo visus iškvietimus į loggerį, tai yra visus iškvietimus į Log.d(), Log.v() ir pan. Priešingu atveju užpuolikas galės pasinaudoti šia informacija, kad suprastų programos logiką.

Sulaužykite nulaužtą programą

Gerai, šiek tiek sugadinome reverserio gyvenimą. Atėjo laikas tai padaryti dar kartą! Bet kaip sužinoti, ar programa buvo įsilaužta? Tiksliau, kaip jis gali pats sužinoti? Juk sąvokos „nulaužta“ ir „nenulaužta“ egzistuoja tik mūsų galvose, tai yra gana aukšto laipsnio sąvokos, kurių negalima apibūdinti algoritmiškai.

Taip yra, bet ne taip. Faktas yra tas, kad APK failo viduje yra metaduomenų rinkinys, kuriame saugomos absoliučiai visų paketo failų kontrolinės sumos, o patys metaduomenys yra pasirašyti kūrėjo raktu. Jei pakeisite programą ir supakuosite ją dar kartą, paketo metaduomenys pasikeis ir paketą reikės pasirašyti dar kartą. Ir kadangi reverseris neturi ir negali turėti jūsų kūrėjo rakto, jis naudoja arba atsitiktinai sugeneruotą, arba vadinamąjį bandomąjį raktą.

Pats Android nesunkiai prarys tokią aplikaciją (nesaugo visų galimų Android kūrėjų visų skaitmeninių parašų duomenų bazės), bet mes turime savo Elektroninis parašas, ir mes galime tai patikrinti!

Skaitmeninio parašo patikrinimas

Tiesą sakant, metodas yra gana paprastas. Turite įterpti kodą į programą, kuri gaus dabartinio paketo skaitmeninio parašo rakto maišą ir palyginti jį su anksčiau išsaugotu. Jie sutampa - programa nebuvo perpakuota (ir nulaužta), ne - mes skambiname.

Norėdami pradėti, į programą įterpkite šią kodo dalį (kuo giliau jį paslėpsite, tuo geriau):

vieša statinė eilutė getSignature (konteksto kontekstas) (

Eilutė apkSignature = null ;

bandyti (

PackageInfo packageInfo = kontekstas.getPackageManager().getPackageInfo(

Context.getPackageName(),

PackageManager.GET_SIGNATURES

for (Parašo parašas : packageInfo .signatures ) (

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

md.update(signature.toByteArray());

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

Log .e ("DEBUG" , "PARAŠAS: " + apkSignature ) ;

) laimikis (e išimtis) ( )

grąžinti apkSignature ;

Sukurkite, paleiskite programą ir peržiūrėkite vykdymo žurnalą. Ten pamatysite eilutę SIGNATURE: 478uEnKQV+fMQT8Dy4AKvHkYibo=. Tai yra maiša. Jį reikia ne tik atsiminti, bet ir įrašyti į programos kodą kaip konstantą, pavyzdžiui, pavadinimu SIGNATURE. Dabar pašalinkite eilutę Log.e... iš kodo ir pridėkite kitas metodas:

viešas statinis loginis patikrinimasParašas (konteksto kontekstas) (

return SIGNATURE .equals ( getSignature ( kontekstas ) ) ;

Jis tiesiog patikrins išsaugotą maišą naudodamas rakto maišą, kuris yra Šis momentas paraiška pasirašyta. Funkcija grąžina „true“, jei skaitmeninis parašas priklauso jūsų (programa nebuvo perkurta), ir „false“, jei ji buvo pakeista. Ką daryti antruoju atveju, priklauso nuo jūsų. Galite tiesiog nutraukti programą naudodami os.exit(0) arba galite ją sugadinti, pavyzdžiui, iškviesdami metodą neinicijuotame objekte arba pasiekdami neegzistuojančią masyvo reikšmę.

Tačiau atminkite: užpuolikas gali tiesiog iškirpti jūsų skaitmeninio parašo patvirtinimo kodą ir jis niekada neveiks (tai galioja ir toliau pateiktam kodui). Todėl paslėpkite jį neaiškioje vietoje ir užšifruokite pradinio rakto maišą, kaip parodyta aukščiau.


Diegimo šaltinio tikrinimas

Kitas apsaugos būdas – išsiaiškinti, iš kur programa buvo įdiegta. Logika čia paprasta: jei diegimo šaltinis yra „Play Store“, tada viskas gerai, tai originali, nesupakuota programa. Jei ne, Varez atsisiuntė iš forumo ir įdiegė iš atminties kortelės arba iš juodosios rinkos.

Vienoje eilutėje galite sužinoti, iš kur programa buvo įdiegta, o pati tai atliekanti funkcija gali atrodyti taip:

viešas statinis loginis patikrinimasInstaller(konteksto kontekstas) (

final String diegimo programa = kontekstas .getPackageManager() .getInstallerPackageName(context .getPackageName()) ;

grąžinti diegimo programą != null & stiprintuvas; & stiprintuvas; installer.startsWith("com.android.vending");

Kaip įprasta: tiesa – viskas gerai, klaidinga – Hiustonas, turime problemų.

Emuliatoriaus nustatymas

Kai kurie taikymo atvirkštiniai metodai apima emuliatoriaus naudojimą. Todėl būtų naudinga prie programos pridėti kodą, kuris tikrina, ar ji veikia virtualioje aplinkoje. Tai galima padaryti nuskaitant kai kurių sistemos kintamųjų reikšmes. Pavyzdžiui, standartinis Android emuliatorius„Studio“ nustato šiuos kintamuosius ir reikšmes:

ro .aparatūra = auksinė žuvelė

ro .kernel .qemu = 1

ro .produktas .modelis = sdk

Todėl, perskaitę šių kintamųjų reikšmes, galime manyti, kad kodas vykdomas emuliatoriuje:

viešas statinis loginis patikrinimasEmuliatorius() (

bandyti (

boolean auksinė žuvelė = getSystemProperty ( "ro.hardware" ) ​​.contains ( "goldfish" );

„Android“ šakninių teisių gavimas nenaudojant kompiuterio ir būtinybė naudoti sunkiai išmokstamus programinės įrangos įrankius yra visiškai prieinama galimybė. Šiame straipsnyje mes jums pasakysime, kaip gauti Superuser teises tik dviem paprastais veiksmais naudojant Framaroot Android programą.

Pagrindinis aprašyto šakninių teisių gavimo metodo pranašumas visų pirma yra jo paprastumas, taip pat trumpam laikui kurio metu šis procesas gali būti atliktas. Vykdome instrukcijas, bet pirmiausia yra svarbus įspėjimas.

Svarbu! Toliau aprašytos manipuliacijos kelia tam tikrą pavojų! Kiekvieną veiksmą, įskaitant toliau pateiktų instrukcijų vykdymą, vartotojas atlieka savo rizika ir rizika. Galimas išteklių administravimas Neigiamos pasekmės nėra atsakingas.

„Framarut“ programa, atsisiuntus arba nukopijavus į įrenginio atmintį ar atminties kortelę, yra visiškai įprastas apk failas. Montavimas nereikalauja jokių specialių veiksmų, viskas yra standartinė.

2 veiksmas: šakninių teisių gavimas

Kaip ir diegimas, šakninių teisių gavimas naudojant Framarut nereikalauja daug veiksmų. Mes tiesiog atliekame šiuos veiksmus.

Jei pamiršote slaptažodį arba šabloną „Android“ įrenginyje, tai nėra priežastis panikuoti. Yra keletas greitų ir paprasti variantai atrakinkite telefoną ar planšetinį kompiuterį Android pagrindu jei neprisimenate modelio arba PIN kodo.

Įvedami Google paskyros duomenys

Jei jūsų išmanusis telefonas ar planšetinis kompiuteris turi nuolatinį ryšį per bevielis tinklas, tada apsaugos apėjimo problemą galite išspręsti tiesiog įvesdami savo el. pašto adresą ir slaptažodį. Po 5 nesėkmingų bandymų atrakinti ekraną pasirodys pranešimas. Spustelėkite jį ir pasirodžiusiame lange įveskite savo Google paskyros vartotojo duomenis.

Ką daryti, jei pamiršote „Google“ paskyros slaptažodį? Užbaikite prieigos prie paskyros atkūrimo procedūrą tiesiogiai naudodamiesi palaikymo komanda.

Atrakinimas per Hard Reset

Naudojant šį metodą, visi asmeniniai duomenys bus ištrinti, o išmaniojo telefono sistema bus grąžinta į gamyklinius nustatymus (SD kortelės failams tai neturi įtakos). Prieš atliekant procedūrą, patartina turėti atsarginę failą, iš kurio galėsite atkurti vartotojo informaciją.

Lengviausias būdas iš naujo nustatyti yra naudoti įrankį, kuris yra jūsų įrenginio nustatymuose. Kadangi prieiga prie sistemos užblokuota, turėsite atlikti šiuos veiksmus:


Kiekvienas vartotojo veiksmas (PIN kodo, grafinio rakto sukūrimas) atsispindi sistemoje sukuriant tam tikrus failus. Galime daryti išvadą, kad jei ištrinsite slaptažodžio duomenis, galėsite atrakinti įrenginį neprarasdami vartotojo informacijos.

Daugelis vartotojų iš tikrųjų stebisi, kaip atrakinti "Android" per kompiuterį. Norėdami tai padaryti, jums reikės ADB programos, taip pat jūsų įtaiso, prijungto USB derinimo režimu. Vykdykite šį algoritmą:


adb shellrm /data/system/gesture.key

rm /data/system/locksettings.db;

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

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

Įrenginio atnaujinimas

Jei dėl kokių nors priežasčių negalite kitų būdų, kaip nulaužti „Android“, tada a. Tai galima padaryti keliais būdais:

  • Per kompiuterį, naudojant USB kabelį;
  • Per bet kurio „Android“ įrenginio atkūrimo meniu. Norėdami atsisiųsti programinės aparatinės įrangos failą tiesiai į telefono ar planšetinio kompiuterio atmintį, turite naudoti kompiuterį.

IN tokiu atveju bus galima parsisiųsti ne tik oficiali programinė įranga, bet ir įvairias pasirinktines parinktis, kuriose galima keisti dizainą, apsaugines funkcijas, tvarkykles, komunalines paslaugas ir kt.

Pašalinamas gestas.key (veikia tik užrakinant grafiniu raktu)

„Android“ telefono ar planšetinio kompiuterio atrakinimas naudojant šį metodą neįmanomas be „Root“ teisių ir. Jei neatitinkate šių sąlygų, pasirinkite kitą būdą, kaip apeiti apsaugą. Šablono klavišas iš naujo nustatomas taip:


Daugelis aukščiau aprašytų metodų neįmanomi neatrakinus įkrovos tvarkyklės. Tai darydami gausite root teises ir galėsite įdiegti savo programinės įrangos versiją arba pasirinktinį atkūrimą, todėl prieš nulauždami „Android“ užraktą turite pašalinti įkrovos įkrovos apsaugą. Rekomenduojama tai padaryti nedelsiant, kad būtumėte visiškai pasiruošę situacijose, kai pamiršote savo PIN kodą/piešinį.

Atrakinimo algoritmas:


Po to prasideda įkrovos įkrovos aktyvinimo procesas ir pasirodo įrenginio ekrane. Palaukite, kol procesas bus baigtas, tada tiesiog iš naujo paleiskite įrenginį. Įkrovos tvarkyklės atrakinimas baigtas. Aukščiau aprašyti patarimai tinka praktiškai visoms progoms, nes kiekvienas gali turėti savo probleminę situaciją. Tikimės, kad mūsų patarimai padės greitai ir teisingai atsikratyti problemos.

Panašūs straipsniai