Construiește un mod cu o semnătură originală. Deschidem, modificăm și ambalăm aplicații Android


Ultimul război de supraviețuire: Apocalipsa- împușcător de zombi cu vedere de sus în jos.

Supraviețuiește într-o lume post-apocaliptică dură, luptă cu mii de zombi mutanți, adună provizii și dezvoltă-ți baza. Last Survival War este un nou reprezentant al genului deja bine uzat „survival-action”, în care echilibrul este deplasat în favoarea bătăliilor mai degrabă decât în ​​direcția elementelor strategice. Poți să participi la certuri singur sau cu un prieten, să supraviețuiești în lumea PvE sau să participi la dueluri PvP și, desigur, să-ți îmbunătățești caracterul în toate modurile posibile.

Ce este nou:

Adăugat mod.


Informații despre modă:

  • crafting gratuit (crafting nu necesită resurse);
  • Toate obiectele sunt disponibile pentru fabricare, indiferent de nivelul actual;
  • Atacul și apărarea maximă a personajului principal.
Pentru a instala o versiune modificată a unui fișier APK, trebuie să eliminați versiunea anterioară (originală). Aceasta vă șterge toate datele (nivelul de dezvoltare, salvările și progresul general al jocului).

De regulă, majoritatea programelor și jocurilor au un cod standard atunci când interacționează cu Google Market. Cu toate acestea, adesea instrumentul programului este foarte bine protejat de modificări. Pentru a nu deruta și a nu pierde timp suplimentar, am găsit un program excelent numit Lucky Patcher, a cărui utilizare o voi discuta mai detaliat mai jos.

Aplicația Lucky Patcher vă scanează dispozitivul pentru toate programele pe care le-ați instalat. În continuare, se face sortarea în posibilitatea sau imposibilitatea unui patch, apoi sunt afișate aplicațiile în care patch-ul este cel mai util și informațiile sunt afișate în partea de sus a listei. Apoi puteți aplica acest patch programului dorit. Dacă aveți succes, veți primi o cerere complet înregistrată.

În versiunile ulterioare ale Lucky Patcher, este posibil să blocați bannere și reclame enervante. Înainte de a utiliza patch-ul, se recomandă să faceți o copie de rezervă a aplicației.

Instrucțiuni: cum să utilizați Lucky Patcher

  1. Instalați programul sau jocul de care aveți nevoie.
  2. Instalați Lucky Patcher în sine.
  3. Lansați Lucky Patcher, apoi apăsați și mențineți apăsat butonul de pe aplicația dorită. Apoi, selectați Lucky Market Google Patch (sau „faceți licențiat”) - elementul din meniul de sus.
  4. După finalizarea cu succes a procesului, puteți juca. Apropo, merită să ne amintim că utilizarea Lucky Patcher vă permite adesea să lansați aplicații fără a vă conecta la rețea după utilizare, chiar dacă acest lucru a fost inițial interzis de dezvoltator!

După cum puteți vedea, în general, folosirea Lucky Patcher este simplă, dar nu strica să cunoașteți câteva detalii și planuri de acțiune în anumite situații.

În primul rând, dacă nu a fost posibil să găsiți și să eliminați automat licența, atunci puteți încerca să o faceți manual.

La lansarea modului manual, Lucky Patcher va detecta absolut toate obiectele similare cu licența (control apăsare taste, tabele de culori, rezoluție etc.) În lista care apare, va trebui să găsiți cheia de licență corectă. Acest lucru se face prin simplă forță brută: mai întâi selectați primul obiect și faceți clic pe butonul „Correcție”, când procesul este finalizat, încercați să lansați aplicația folosind „Launch”.

Utilizarea programului Lucky Patcher nu este dificilă, trebuie doar să parcurgeți instrucțiunile de câteva ori și să învățați caracteristicile de bază.

Dacă nu ați ghicit corect - adică Dacă nu a funcționat, faceți clic pe „Restaurare” - și totul va fi revenit la starea inițială fără probleme. După aceasta, repetăm ​​procedura cu următorul obiect și așa mai departe până când obținem succesul.

Există, de asemenea, un astfel de concept ca Patch personalizat- un patch specific pentru o anumită aplicație care poate schimba orice. Acestea se află în folderul /sdcard/Luckypatcher/ - acestea sunt fișiere cu extensia .txt. Pentru a aplica un astfel de patch, trebuie doar să descărcați un fișier text și să îl copiați într-un folder. Data viitoare când lansați Lucky Patcher, aplicația va fi marcată cu galben și pentru a aplica Patch-ul personalizat, trebuie doar să faceți clic pe „Correcție pentru acest program!”

În concluzie, voi menționa funcția Patch la repornire. Funcția este concepută pentru a vă permite să adăugați un patch specific la BootList. Este necesar atunci când, din anumite motive, „Remedierea modificărilor” nu funcționează și nu puteți salva poziția patch-ului (fapt este că patch-ul încearcă să schimbe biblioteca). Pentru a preveni acest lucru, trebuie să faceți clic pe „patch on reboot” și să selectați un patch personalizat, permițând astfel bibliotecii dvs. să fie corecţionate de fiecare dată când dispozitivul porneşte. Dacă acest lucru nu funcționează, atunci puteți adăuga un patch aplicațiilor cu publicitate și o licență eliminată.

Lucky Patcher este un aplicație de corecție care vă permite să obțineți funcții suplimentare în jocuri și aplicații Android, de exemplu: puteți dezactiva verificarea licenței, puteți cumpăra gratuit în magazinele din joc și chiar puteți bloca reclamele. Ca un plus frumos, există patch-uri personalizate, acestea au un efect pozitiv asupra funcționalității aplicațiilor și deschid funcții blocate.


Cele mai populare funcții și aplicațiile lor sunt descrise mai jos. Dacă, după ce le-ați citit, nu ați putut face față problemei dvs., descrieți-o în detaliu în comentarii, vă vom sfătui și completa instrucțiunile pentru dvs. :)


Pentru ca majoritatea funcțiilor să funcționeze, veți avea nevoie de:

  • Instalat

Cum să dezactivați notificarea din Play Store despre necesitatea de a elimina Lucky Patcher

De regulă, magazinul de aplicații Play Store identifică Lucky Patcher ca fiind un virus, după care va apărea un mesaj care nu poate fi închis în nuanța de notificare: „Dezinstalați o aplicație periculoasă, aplicația Lucky Patcher poate interfera cu funcționarea dispozitivului”. Pentru a scăpa de această notificare enervantă trebuie să faceți câțiva pași simpli.


Aceste instrucțiuni vor fi la fel de utile atât pentru cei care vor să scape de mesajul enervant, cât și pentru cei care nu pot instala Lucky Patcher pe dispozitivul lor din cauza Magazinului Play.

Instrucțiuni video


  1. Deschideți Play Store – Faceți clic pe meniu (colțul din stânga sus) – Selectați Play Protection – Debifați opțiunea „Verificați amenințările de securitate” și faceți clic pe „OK”.
  2. Dacă vedeți un mesaj în bara de notificări, ca în captura de ecran de mai jos, atunci ar trebui să ștergeți toate datele din Play Store, pentru care ar trebui să faceți următoarele: Accesați „Setări” - Deschideți „Aplicații” - În lista de aplicații instalate , găsiți Google Play Store și faceți clic pe el – Selectați „Ștergeți datele” și apoi faceți clic pe „Ok”. Mesajul va dispărea și puteți utiliza în siguranță Lucky Patcher.







Eliminarea verificării licenței în aplicații

Verificarea licenței - în mod implicit, încorporată în toate jocurile și aplicațiile plătite, această verificare va afla dacă ați achiziționat aplicația sau nu. Dacă încercați să instalați un joc sau un program plătit fără a verifica, veți întâlni o eroare care vă spune că descărcați aplicația de pe piață. Lucky patcher poate elimina această verificare, astfel încât să puteți instala cu ușurință aplicația dorită.


Blocarea anunțurilor

Publicitatea intruzivă în jocuri și aplicații este foarte enervantă și, uneori, interferează și cu jocul normal. În astfel de situații, singura cale de ieșire sigură este blocarea reclamelor! Din fericire, patch-ul norocos poate elimina reclamele (dar există și) folosind mai mulți algoritmi, iar instrucțiunile sunt mai jos:

Instrucțiuni video

Achiziții gratuite în magazinele din joc

Lucky patcher face minuni, vă va permite să faceți achiziții gratuite în magazinele din joc, adică puteți obține o mulțime de monede sau chiar să le faceți nesfârșite, să cumpărați tot conținutul plătit din joc - gratuit!


Instrucțiuni video


Patch-uri personalizate

Patch-urile utilizatorului sunt extensii pentru o anumită aplicație sau joc, pot adăuga noi funcții la acesta sau debloca conținut închis/plătit.


Cum să construiți o versiune modificată a aplicației

Instrucțiuni video

  1. În meniul contextual, trebuie să selectați „Meniu Patch” și apoi să faceți clic pe elementul „Creați apk modificat”.
  2. Ni se cere să selectăm patch-ul pe care vrem să îl aplicăm aplicației noastre (eliminați verificarea licenței, eliminați publicitatea, faceți achiziții gratuite sau schimbați componentele aplicației), puteți selecta unul dintre patch-uri sau mai multe simultan (doar faceți clic pe primul rând „Apk cu multi-patch” și apoi bifați casetele de lângă elementele necesare). După aceea, tot ce trebuie să faceți este să faceți clic pe butonul „Reconstruiți aplicația”.
  3. Când fișierul apk este asamblat, îl puteți deschide și instala sau îl puteți oferi prietenului dvs.

Cum se creează o clonă a aplicației (.apk)

Funcția de clonare a apărut recent oficial în firmware-ul unor dezvoltatori chinezi. De exemplu, în MIUI, după instalarea aplicației, puteți face o copie completă a acesteia. De ce este necesar acest lucru? De exemplu, făcând o clonă a aplicației Sberbank Online, puteți folosi două cărți, același lucru este valabil și pentru jocurile online în care este creat un cont, sau mesagerie instant și rețelele sociale. Nu mai trebuie să vă reconectați de la un cont la altul de o sută de ori pe zi, tot ce trebuie să faceți este să faceți o clonă a aplicației și să vă conectați la ea;

Instrucțiuni video

  1. După ce lansați Lucky Patcher, trebuie să găsiți aplicația a cărei clonă doriți să o clonați și să faceți clic pe ea.
  2. În meniul contextual care apare, selectați „Instrumente” și faceți clic pe elementul „Clonare aplicație”.
  3. În următoarea fereastră, nu trebuie să modificați nimic (ar trebui să existe o bifă lângă elementul „Schimbați AndroidManifest.xml, resurse și classes.dex”), doar faceți clic pe butonul „Reconstruiți aplicația”.
  4. Odată ce Lucky Patcher a terminat de creat o clonă a aplicației selectate de noi, va trebui să o instalați. Faceți clic pe butonul „Instalați clona”, apoi faceți clic pe „Da” și așteptați ca programul să fie instalat.
  5. Dacă reușește (da, nu este întotdeauna posibilă crearea unei clone funcționale), pe desktop va apărea o a doua pictogramă din aplicația clonata și le vei putea lansa împreună și le vei folosi în același timp.

Cum se schimbă permisiunile aplicației

Dacă doriți să gestionați manual permisiunile aplicațiilor instalate pe dispozitivul dvs. și anume: interziceți/permiteți accesul la Internet, citiți datele de pe cardul SD, adăugați aplicații la pornire, faceți achiziții în aplicație, verificați o licență și multe altele.

  1. Lansăm Lucky Patcher și găsim aplicația de care avem nevoie, apoi facem clic pe ea.
  2. În meniul contextual, trebuie să selectați „Meniu Patch” și apoi faceți clic pe elementul „Schimbați componentele aplicației”.
  3. În următoarea fereastră trebuie să selectăm a 3-a opțiune (Schimbați permisiunile și activitățile păstrând semnătura originală). Potrivit dezvoltatorilor, această metodă este cea mai sigură.
  4. Acum putem selecta permisiunile care vor fi lăsate aplicației și pe care am dori să le dezactivăm, doar atingeți elementele necesare și apoi faceți clic pe butonul „Reconstruiți și instalați”.

Backup-uri

Puteți salva fișierul .apk al aplicației instalate, cu toate modificările și configurațiile aduse acesteia. Cu alte cuvinte, Lucky Patcher poate salva .apk din aplicațiile instalate de pe Google Play, precum și le poate clona în cazul în care trebuie să lansați aplicații de două ori.


Acum știi cum să folosești Lucky Patcher! Dar dacă ceva nu a funcționat pentru tine sau ai întrebări, scrie în comentarii la această pagină și te vom ajuta :)

  • 1 iulie 2017
  • 49.133 de vizualizări

Ți-a plăcut?

Evaluări: 17

Uneori, unele aplicații de pe Android nu se potrivesc într-un fel utilizatorului. Un exemplu este publicitatea intruzivă. Și se întâmplă, de asemenea, că programul este bun pentru toată lumea, dar traducerea din el este fie strâmbă, fie complet absentă. Sau, de exemplu, programul este o versiune de încercare, dar nu există nicio modalitate de a obține versiunea completă. Cum să schimbi situația?

Introducere

În acest articol, vom vorbi despre cum să dezasamblam un pachet APK cu o aplicație, să ne uităm la structura sa internă, să dezasamblam și să decompilăm bytecode și, de asemenea, vom încerca să facem mai multe modificări aplicațiilor care ne pot aduce un beneficiu sau altul.

Pentru a face toate acestea singur, veți avea nevoie de cel puțin cunoștințe de bază despre limbajul Java, în care sunt scrise aplicațiile Android, și limbajul XML, care este folosit peste tot în Android - de la descrierea aplicației în sine și drepturile sale de acces până la stocarea șirurilor care va fi afișat pe ecran. De asemenea, veți avea nevoie de capacitatea de a utiliza software specializat pentru consolă.

Deci, ce este un pachet APK în care este distribuit absolut tot software-ul Android?

Decompilarea aplicației

În acest articol, am lucrat doar cu codul de aplicație dezasamblat, dar dacă se fac modificări mai serioase aplicațiilor mari, înțelegerea codului smali va fi mult mai dificilă. Din fericire, putem decompila codul dex în cod Java, care, deși nu este original și nu este compilat înapoi, este mult mai ușor de citit și de înțeles logica aplicației. Pentru a face acest lucru, vom avea nevoie de două instrumente:

  • dex2jar este un traducător al bytecode Dalvik în bytecode JVM, pe baza căruia putem obține cod în limbajul Java;
  • jd-gui este un decompilator în sine care vă permite să obțineți cod Java lizibil din bytecode JVM. Ca alternativă, puteți utiliza Jad (www.varaneckas.com/jad); Deși este destul de vechi, în unele cazuri generează cod mai ușor de citit decât Jd-gui.

Așa ar trebui să fie folosite. Mai întâi, lansăm dex2jar, specificând calea către pachetul apk ca argument:

% dex2jar.sh mail.apk

Ca rezultat, pachetul Java mail.jar va apărea în directorul curent, care poate fi deja deschis în jd-gui pentru a vizualiza codul Java.

Aranjarea pachetelor APK și primirea acestora

Un pachet de aplicații Android este în esență un fișier ZIP obișnuit care nu necesită instrumente speciale pentru a-și vizualiza conținutul sau pentru a-l extrage. Este suficient să aveți un arhivator - 7zip pentru Windows sau dezarhivare pe consolă pe Linux. Dar asta e vorba de ambalaj. Ce este înăuntru? În general, avem următoarea structură în interior:

  • META-INF/- conține un certificat digital al aplicației, care identifică creatorul acesteia și sume de control ale fișierelor pachetului;
  • res/ - diverse resurse pe care aplicația le folosește în activitatea sa, precum imagini, descrierea declarativă a interfeței, precum și alte date;
  • AndroidManifest.xml- descrierea aplicatiei. Aceasta include, de exemplu, o listă a permisiunilor necesare, versiunea Android necesară și rezoluția necesară a ecranului;
  • clase.dex- codul octet al aplicației compilat pentru mașina virtuală Dalvik;
  • resurse.arsc- de asemenea resurse, dar de alt fel - în special, șiruri (da, acest fișier poate fi folosit pentru rusificare!).

Fișierele și directoarele enumerate sunt, dacă nu în toate, atunci, poate, în marea majoritate a APK-urilor. Cu toate acestea, mai există câteva fișiere/directoare care nu sunt atât de comune care merită menționate:

  • active- analog de resurse. Principala diferență este că pentru a accesa o resursă trebuie să cunoști identificatorul acesteia, dar lista de active poate fi obținută dinamic folosind metoda AssetManager.list() din codul aplicației;
  • lib- biblioteci native Linux scrise folosind NDK (Native Development Kit).

Acest director este folosit de producătorii de jocuri care își plasează acolo motoarele de joc scrise în C/C++, precum și de creatorii de aplicații de înaltă performanță (de exemplu, Google Chrome). Ne-am dat seama de dispozitiv. Dar cum obții fișierul pachet al aplicației care te interesează? Deoarece nu este posibil să ridicați fișiere APK de pe dispozitiv fără root (acestea sunt situate în directorul /data/app), iar rootarea nu este întotdeauna recomandabilă, există cel puțin trei moduri de a aduce fișierul aplicației pe computer:

  • Extensie APK Downloader pentru Chrome;
  • Aplicația Leecher APK reală;
  • diverse găzduire de fișiere și Varezniks.

Care să folosești este o chestiune de gust; preferăm să folosim aplicații separate, așa că vom descrie utilizarea Real APK Leecher, mai ales că este scris în Java și, în consecință, va funcționa fie în Windows, fie în Nix.

După pornirea programului, trebuie să completați trei câmpuri: E-mail, Parolă și ID dispozitiv - și selectați o limbă. Primele două sunt adresa de e-mail și parola contului dvs. Google pe care le utilizați pe dispozitiv. Al treilea este identificatorul dispozitivului și poate fi obținut prin tastarea codului pe dialer # #8255## și apoi găsiți linia ID dispozitiv. Când completați, trebuie doar să introduceți ID-ul fără prefixul android.

După completare și salvare, apare adesea mesajul „Eroare la conectarea la server”. Nu are nicio legătură cu Google Play, așa că nu ezitați să îl ignorați și să căutați pachete care vă interesează.

Vizualizați și modificați

Să presupunem că ați găsit un pachet care vă interesează, l-ați descărcat, l-ați despachetat... iar când ați încercat să vizualizați un fișier XML, ați fost surprins să descoperiți că fișierul nu era text. Cum să-l decompilați și cum să lucrați cu pachetele în general? Este cu adevărat necesar să instalați SDK-ul? Nu, nu este deloc necesar să instalați SDK-ul. De fapt, toți pașii pentru extragerea, modificarea și împachetarea pachetelor APK necesită următoarele instrumente:

  • Arhivator ZIP pentru despachetare și ambalare;
  • smali- mașină virtuală Dalvik bytecode assembler/disassembler (code.google.com/p/smali);
  • apt- un instrument pentru ambalarea resurselor (în mod implicit, resursele sunt stocate în formă binară pentru a optimiza performanța aplicației). Inclus în Android SDK, dar poate fi obținut separat;
  • semnatar- un instrument pentru semnarea digitală a unui pachet modificat (bit.ly/Rmrv4M).

Puteți utiliza toate aceste instrumente separat, dar acest lucru este incomod, deci este mai bine să utilizați software de nivel superior construit pe baza lor. Dacă lucrați pe Linux sau Mac OS X, există un instrument numit apktool. Vă permite să despachetați resurse în forma lor originală (inclusiv fișiere XML binare și arsc), să reconstruiți un pachet cu resurse modificate, dar nu știe cum să semneze pachetele, așa că va trebui să rulați manual utilitarul de semnare. În ciuda faptului că utilitarul este scris în Java, instalarea sa este destul de nestandard. Mai întâi trebuie să obțineți fișierul jar în sine:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH

Dacă lucrați pe Windows, atunci există un instrument excelent pentru acesta numit Virtuous Ten Studio, care acumulează și toate aceste instrumente (inclusiv apktool în sine), dar în loc de o interfață CLI oferă utilizatorului o interfață grafică intuitivă cu care puteți efectuați operațiuni de despachetare, dezasamblare și decompilare în câteva clicuri. Acest instrument este Donation-ware, adică uneori apar ferestre care vă cer să obțineți o licență, dar în final acest lucru poate fi tolerat. Nu are rost să-l descrii, pentru că poți înțelege interfața în câteva minute. Dar apktool, datorită naturii sale de consolă, ar trebui discutat mai detaliat.


Să ne uităm la opțiunile apktool. Pe scurt, există trei comenzi de bază: d (decodificare), b (build) și if (install framework). Dacă totul este clar cu primele două comenzi, atunci ce face a treia declarație condiționată? Dezambalează cadrul specificat de UI, care este necesar în cazurile în care disecați orice pachet de sistem.

Să ne uităm la cele mai interesante opțiuni ale primei comenzi:

  • -s- nu dezasamblați fișierele dex;
  • -r- nu despachetați resurse;
  • -b- nu introduceți informații de depanare în rezultatele dezasamblarii fișierului dex;
  • --cadru-cadru- utilizați cadrul specificat de UI în loc de cel încorporat în apktool. Acum să ne uităm la câteva opțiuni pentru comanda b:
  • -f- asamblare fortata fara verificarea modificarilor;
  • -o- indicați calea către aapt (un instrument pentru construirea unei arhive APK), dacă dintr-un motiv oarecare doriți să o utilizați dintr-o altă sursă.

Utilizarea apktool este foarte simplă pentru a face acest lucru, trebuie doar să specificați una dintre comenzi și calea către APK, de exemplu:

$ apktool d mail.apk

După aceasta, toate fișierele extrase și dezasamblate ale pachetului vor apărea în directorul de e-mail.

Pregătirea. Dezactivarea publicității

Teoria este, desigur, bună, dar de ce este necesară dacă nu știm ce să facem cu pachetul despachetat? Să încercăm să aplicăm teoria în beneficiul nostru, și anume, să modificăm niște softuri astfel încât să nu ne arate reclamă. De exemplu, să fie Virtual Torch - o torță virtuală. Acest software este ideal pentru noi, deoarece este plin de reclame enervante și, în plus, este suficient de simplu pentru a nu se pierde în jungla codului.


Deci, folosind una dintre metodele de mai sus, descărcați aplicația de pe piață. Dacă decideți să utilizați Virtuous Ten Studio, deschideți pur și simplu fișierul APK în aplicație și despachetați-l, creați un proiect (Fișier -> Proiect nou), apoi selectați Import File în meniul contextual al proiectului. Dacă alegerea ta a căzut pe apktool, atunci rulează doar o comandă:

$ apktool d com.kauf.particle.virtualtorch.apk

După aceasta, un arbore de fișiere similar cu cel descris în secțiunea anterioară va apărea în directorul com.kauf.particle.virtualtorch, dar cu un director smali suplimentar în loc de fișiere dex și un fișier apktool.yml. Primul conține codul dezasamblat al fișierului executabil dex al aplicației, cel de-al doilea conține informațiile de service necesare pentru ca apktool să asambla pachetul înapoi.

Primul loc pe care ar trebui să ne uităm este, desigur, AndroidManifest.xml. Și aici întâlnim imediat următoarea linie:

Nu este greu de ghicit că este responsabil pentru acordarea permisiunilor aplicației de a utiliza conexiunea la Internet. De fapt, dacă vrem doar să scăpăm de publicitate, cel mai probabil va trebui doar să blocăm aplicația de pe Internet. Să încercăm să facem asta. Ștergem linia specificată și încercăm să construim software-ul folosind apktool:

$ apktool b com.kauf.particle.virtualtorch

Fișierul APK rezultat va apărea în directorul com.kauf.particle.virtualtorch/build/. Totuși, nu va fi posibil să-l instalezi, deoarece nu are semnătură digitală și sume de verificare a fișierelor (pur și simplu nu are un director META-INF/). Trebuie să semnăm pachetul folosind utilitarul apk-signer. Lansat. Interfața este formată din două file - pe prima (Key Generator) creăm chei, pe a doua (APK Signer) semnăm. Pentru a crea cheia noastră privată, completați următoarele câmpuri:

  • Fișierul țintă- fișier de ieșire keystore; de obicei stochează o pereche de chei;
  • ParolăŞi Confirma- parola pentru stocare;
  • Alias- numele cheii din depozit;
  • Parola aliasŞi Confirma- parola cheie secretă;
  • Valabilitate- perioada de valabilitate (în ani). Valoarea implicită este optimă.

Câmpurile rămase sunt, în general, opționale - dar cel puțin unul trebuie completat.


AVERTIZARE

Pentru a semna o aplicație folosind apk-signer, trebuie să instalați Android SDK și să specificați calea completă către acesta în setările aplicației.

Toate informațiile sunt furnizate doar în scop informativ. Nici editorii, nici autorul nu sunt responsabili pentru eventualele daune cauzate de materialele acestui articol.

Acum puteți semna APK-ul cu această cheie. În fila APK Signer, selectați fișierul nou generat, introduceți parola, aliasul cheii și parola, apoi găsiți fișierul APK și faceți clic cu îndrăzneală pe butonul „Semnați”. Daca totul merge bine, pachetul va fi semnat.

INFO

Deoarece am semnat pachetul cu propria noastră cheie, acesta va intra în conflict cu aplicația originală, ceea ce înseamnă că atunci când vom încerca să actualizăm software-ul prin piață, vom primi o eroare.

O semnătură digitală este necesară doar pentru software-ul terță parte, așa că dacă modificați aplicațiile de sistem care sunt instalate prin copierea lor în directorul /system/app/, atunci nu trebuie să le semnați.

După aceea, descărcați pachetul pe smartphone, instalați-l și lansați-l. Voila, reclama a dispărut! În schimb, a apărut însă un mesaj că nu avem internet sau nu avem permisiunile corespunzătoare. În teorie, acest lucru ar putea fi suficient, dar mesajul pare enervant și, să fiu sincer, tocmai am avut noroc cu o aplicație stupidă. Cel mai probabil, software-ul scris în mod normal își va clarifica acreditările sau va verifica o conexiune la Internet și, în caz contrar, va refuza pur și simplu lansarea. Ce să faci în acest caz? Desigur, editați codul.

De obicei, autorii aplicației creează clase speciale pentru afișarea reclamelor și a metodelor de apel ale acestor clase atunci când aplicația sau una dintre „activitățile” acesteia (în termeni simpli, ecranele aplicației) este lansată. Să încercăm să găsim aceste clase. Mergem la directorul smali, apoi com (org conține doar biblioteca grafică deschisă cocos2d), apoi kauf (aici este, pentru că acesta este numele dezvoltatorului și tot codul său este acolo) - și aici este, directorul de marketing. În interior găsim o grămadă de fișiere cu extensia smali. Acestea sunt clase, iar cea mai notabilă dintre ele este clasa Ad.smali, după denumirea căreia este ușor de ghicit că este cea care afișează reclamă.

Am putea schimba logica funcționării sale, dar ar fi mult mai ușor să eliminați pur și simplu apelurile la oricare dintre metodele sale din aplicația în sine. Prin urmare, părăsim directorul de marketing și mergem la directorul de particule adiacent și apoi la virtualtorch. Fișierul MainActivity.smali merită o atenție specială aici. Aceasta este o clasă Android standard care este creată de SDK-ul Android și instalată ca punct de intrare în aplicație (analog cu funcția principală din C). Deschideți fișierul pentru editare.

Înăuntru există cod smali (asambler local). Este destul de confuz și dificil de citit din cauza naturii sale de nivel scăzut, așa că nu îl vom studia, ci pur și simplu vom găsi toate referințele la clasa Ad în cod și le vom comenta. Introducem linia „Ad” în căutare și ajungem la rândul 25:

Câmp anunț privat:Lcom/kauf/marketing/Ad;

Aici este creat un câmp de anunț pentru a stoca un obiect de clasă de anunțuri. Comentăm punând un semn ### în fața liniei. Continuăm căutarea. Linia 423:

Noua instanță v3, Lcom/kauf/marketing/Ad;

Aici are loc crearea obiectului. Hai sa comentam. Continuăm căutarea și găsim în rândurile 433, 435, 466, 468, 738, 740, 800 și 802 apeluri la metodele clasei Ad. Hai sa comentam. Asta pare să fie. Salva. Acum pachetul trebuie pus la loc și verificat pentru funcționalitate și prezența reclamei. Pentru puritatea experimentului, returnăm linia eliminată din AndroidManifest.xml, asamblam pachetul, semnăm și instalăm.

Cobaiul nostru. Publicitate vizibilă

Hopa! Publicitatea a dispărut doar în timp ce aplicația rula, dar a rămas în meniul principal, pe care îl vedem când lansăm software-ul. Așadar, așteptați, dar punctul de intrare este clasa MainActivity, iar reclama a dispărut în timp ce aplicația rula, dar a rămas în meniul principal, deci punctul de intrare este diferit? Pentru a identifica adevăratul punct de intrare, redeschideți fișierul AndroidManifest.xml. Și da, conține următoarele rânduri:

Ei ne spun (și, mai important, Android) că o activitate numită Start ar trebui să fie lansată ca răspuns la generarea unui intent (eveniment) android.intent.action.MAIN din categoria android.intent.category.LAUNCHER. Acest eveniment este generat atunci când atingeți pictograma aplicației din launcher, deci determină punctul de intrare, și anume clasa Start. Cel mai probabil, programatorul a scris mai întâi o aplicație fără meniu principal, punctul de intrare în care era clasa standard MainActivity, apoi a adăugat o nouă fereastră (activitate) care conține meniul și descrisă în clasa Start și a făcut-o manual intrarea. punct.

Deschideți fișierul Start.smali și căutați din nou linia „Ad”, găsim în rândurile 153 și 155 o mențiune a clasei FirstAd. Se află și în codul sursă și, judecând după nume, este responsabil pentru afișarea reclamelor pe ecranul principal. Să privim mai departe, există crearea unei instanțe a clasei FirstAd și a unei intenții, care în context este legată de această instanță, și apoi eticheta cond_10, tranziția condiționată la care se realizează exact înainte de a crea o instanță a clasei. :

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

Cel mai probabil, programul calculează cumva aleatoriu dacă publicitatea ar trebui să fie afișată pe ecranul principal și, dacă nu, sare direct la cond_10. Ok, să-i simplificăm sarcina și să înlocuim tranziția condiționată cu una necondiționată:

#if-ne p1, v0, :cond_10 goto:cond_10

Nu mai există mențiuni despre FirstAd în cod, așa că închidem fișierul și reasamblam lanterna noastră virtuală folosind apktool. Copiați-l pe smartphone, instalați-l, lansați-l. Voila, toate reclamele au dispărut, pentru care ne felicităm pe toți.

Rezultate

Acest articol este doar o scurtă introducere în metodele de hacking și modificare a aplicațiilor Android. Multe probleme au rămas în spatele scenei, cum ar fi eliminarea protecției, analiza codului ofuscat, traducerea și înlocuirea resurselor aplicației, precum și modificarea aplicațiilor scrise folosind Android NDK. Cu toate acestea, având cunoștințe de bază, este doar o chestiune de timp să-ți dai seama de toate.