Uneori, vrea să vadă, și ce fel de umplere într-un program specific? Apoi, el trebuie să utilizeze un revers-inginerie. Ce este? Cum funcționează? Cum este acest proces? Toate acestea vă vor învăța de la acest articol.
Ce este un programe de inginerie inversă?
Asa numita analiza de proces de aplicare, în scopul de a înțelege cum funcționează, astfel încât, în viitor, pentru a recrea acest proces prin efectuarea modificărilor necesare. De obicei, utilizate în acest scop debugger și de asamblare. În funcție de calitatea software-ului utilizat va fi diferit, iar rezultatul este cantitatea de timp pe care ar trebui să fie cheltuite pe ea pentru a aduce într-o formă normală. Explicați-inginerie inversă pentru începători cel mai bun exemplu. Ca acestora să efectueze o cerere scrisă pentru Android. Acum, să fie pentru a afla ce și cum.
Lucrul cu Android-aplicații
Mai întâi trebuie să clarificăm câteva aspecte. Aplicația utilizează bytecode și Logcat. Acest omologii locale depanator și asamblare menționat anterior. De asemenea, este necesar să se înțeleagă structura aplicațiilor în sine. Astfel, fiecare program este un fișier cu extensia .apk. El ambalate zip'om. Suntem interesați de conținutul său - resurse pentru aplicații, classes.dex și AndroidManifest.xml. Dacă faci programare pe Android, problemele cu fostul și acesta din urmă nu ar trebui să fie. Dar classes.dex - acest program de cod de octet, care este compilat în mod specific pentru mașina virtuală. Extras din Java codul său sursă disponibile pe internet nu primesc fonduri. Dar este posibil să se obțină Opcodes Dalvik - un set special de comenzi care sunt utilizate pentru mașina virtuală. Pentru o analogie putem spune că acest ansamblu de inundații locale. Classes.dex, de asemenea, poate fi transformat într-un fișier cu borcanul. Chiar și într-un astfel de caz, puteți obține un java-cod după decompilarea, care va fi mai mult sau mai puțin ușor de citit. Aceasta este calea pe care mergem.
decompilare
Acest proces va fi realizat cu ajutorul programului Apk Manger. Înainte de a începe, asigurați-vă că există driverul corect pentru devaysa si modul de functionare a USB-depanare. Inițial, vom avea nevoie pentru a muta fișierul care va fi analizat într-o apk_manager \ directivă-loc-apk aici-pentru-modding. După aceea, ar trebui să rulați Script.bat. Dacă nu există nici o problemă, apoi începe consola, care va fi cu litere verzi. Selectați numărul punctului nouă - „decompilarea“. Odată ce procesul este pornit, este necesar să nu se închidă consola. Apoi, interesul deschis-apk fișier folosind arhivator și se extrage din ea classes.dex, pentru a fi prelucrate dex2jar programului. Pentru noi rezultatul dorit este necesar să se mute un obiect cu extensia .bat. Veți vedea fișierul, care se va încheia în .jar. Până în prezent, fereastra nu se închide.
vom analiza datele
Pentru a obține informații despre aplicație, trebuie să deschideți-l manifeste. Potrivit acestuia, determinăm care acționează ca activitate principală. Era ea, care prezintă acum cea mai mare importanță pentru noi. De asemenea, este de dorit să se uite la partea de jos a programului. În cazul în care partea de jos este informația despre managerul de licență, este semnificativ mai dificil de a efectua inginerie inversă. Dacă comutați la jd-gui și extinde copac, putem vedea mai multe namespace. Să presupunem că trei dintre ele. În prima sunt fișierele asociate cu publicitatea. Al doilea va fi clasele de manager de licență. In al treilea rand, sunt datele necesare. Este atunci când vom merge. Nu va trebui să găsească și să scoateți cheia, iar apoi restul liniilor care verifică dacă licențiat versiune de lucru. Toate acestea trebuie să fie curățate. Apoi, în Apk Managerul nostru în căutarea unui loc în care locul specificat bytecode. Acum, să ne facă o mică digresiune și comentați echipa, ceea ce poate cauza probleme. După aceea, trebuie doar să compila programul.
Construiți aplicații
Acest lucru ne va ajuta pe toți același manager Apk. În consola, pe care nu le-am blocat, selectați elementul №14. Urmatorul truc. În cazul în care cererea este destul de complicată, atunci când începe, ar putea pierde parțial sau complet eficiența acestuia. Nu-ți face griji, înseamnă că suntem doar la jumătatea drumului acolo și în altă parte pentru a merge. Vom continua să efectueze reverse engineering-Toate aplicațiile Android. Spune, ce să facă într-un caz particular, în termeni generali, din păcate, este imposibil. Prin urmare, uita-te pentru zonele cu probleme vor avea propria lor. De exemplu, în cazul în care o fereastră de aplicație este blocată fereastra pop - up, ar trebui să vedeți codul și scoateți partea care este responsabil pentru acest dialog. Pentru a ajuta cu acest lucru poate jd-gui. Dupa cum se poate vedea, de inginerie inversă nu este o afacere ușoară, și necesită un magazin considerabil de cunoștințe. Chiar dacă totul se execută fără probleme, va fi necesar pentru a testa performanța aplicațiilor. Aceasta este, reverse engineering este mai activitate consumatoare de timp. Vom continua să lucreze până când sunt identificate toate problemele.
siguranță
Ce se întâmplă dacă avem nevoie de o protecție All Android-aplicație de inginerie inversă? În acest caz, există două opțiuni: utilizarea unor programe specifice sau crearea unei structuri de cod care va interveni pentru a face parsarea în scris. Această din urmă opțiune este potrivită doar profesioniștii cu experiență, așa că vom lua în considerare doar prima metodă de protecție. Ca specializat ProGuard utilizarea software-ului. Această aplicație, care este utilizat pentru a reduce, de optimizare a codului și confuzie. În cazul în care programul „urmărire“, prin ea, vom obține un fișier cu extensia * .apk mai mică decât el. Într-un astfel de caz, ar fi mult mai dificil de demontat. Iar avantajul acestui program este faptul că acesta a fost introdus chiar și în aplicațiile Android construi cu actualizări R9. Prin urmare, să profite de acesta este orice dezvoltator care are instrumente standard de creare și dezvoltare.
concluzie
Nu putem spune că revers-inginerie pot fi reprezentate ca ceva uniform bun sau rău. Desigur, din punct de vedere al dezvoltatorilor, care au creat o cerere, acesta nu este un eveniment fericit. Dar, pe de altă parte, în multe cazuri, cu experiență programatori scris fișierele necesare pot fi un moment mai puțin costisitoare decât utilizarea unor astfel de instrumente. Deși pentru dezvoltatorii novice reverse engineering poate face un serviciu bun în cazul în care nu există nici o idee despre cum să pună în aplicare ceva, chiar exemplar, și nu destul de clar contur poate ajuta cu atingerea acestui obiectiv.