Usahay ang usa ka gusto nga sa pagtan-aw, ug unsa nga matang sa pagpuno sa usa ka piho nga programa? Unya siya sa paggamit sa usa ka reverse-engineering. Unsa kini? Unsang paagi kini sa trabaho? Sa unsang paagi nga ang niini nga proseso? Ang tanan nga kini makakat-on kamo gikan sa niini nga artikulo.
Unsa ang usa ka reverse-engineering nga mga programa?
Busa gitawag proseso sa application pagtuki aron makasabut sa unsa nga paagi kini sa mga buhat, aron nga sa umaabot nga recreate niini nga proseso pinaagi sa paghimo sa gikinahanglan nga mga kausaban. Kasagaran gigamit alang niini nga katuyoan debugger ug assembler. Depende sa kalidad sa mga software nga gigamit mahimong lahi ug ang resulta mao ang kantidad sa panahon nga kinahanglan nga migahin sa ibabaw niini sa pagdala sa usa ka normal nga nga porma. Ipasabut reverse-engineering alang sa mga magsusugod sa labing maayo nga panig-ingnan. Ingon sa niini sa pagbuhat sa usa ka aplikasyon nga gisulat alang sa Android. Karon ni nga sa pagpangita sa unsa ang ug sa unsa nga paagi himoa.
Ang pagtrabaho uban sa Android-aplikasyon
Una kita kinahanglan nga pagpatin-aw sa pipila ka mga puntos. Ang aplikasyon naggamit sa bytecode ug LogCat. Kini nga lokal nga mga katugbang nga sa miagi gihisgutan debugger ug assembler. Kini usab gikinahanglan sa pagsabut sa istruktura sa mga aplikasyon sa ilang mga kaugalingon. Busa, ang matag programa mao ang usa ka file uban sa extension APK. Siya packed zip'om. Kami mga interesado sa sulod niini - mga kapanguhaan aplikasyon, classes.dex ug AndroidManifest.xml. Kon imong buhaton programa sa Android, ang mga isyu uban sa sa kaniadto ug sa ulahing kinahanglan nga dili. Apan classes.dex - kini nga programa sa Byte code nga gihiusa ilabi alang sa mga virtual makina. Kinuha gikan sa iyang java source code nga anaa sa ibabaw sa Internet dili sa pagkuha sa mga pundo. Apan kini nga posible nga sa makabaton dalvik opcodes - sa usa ka espesyal nga hugpong sa mga sugo nga gigamit alang sa virtual makina. Alang sa usa ka analohiya makaingon kita nga kini nga katilingban sa mga lokal nga lunop. Classes.dex usab mahimong makabig ngadto sa usa ka file uban sa banga. Bisan sa maong kahimtang, nga imong mahimo og usa ka java-code human sa decompilation, nga mahimong mas o dili kaayo mabasa. Nga mao ang dalan kita moadto.
decompilation
Kini nga proseso nga gidala sa gawas sa paggamit sa APK Pasungan programa. Sa wala pa ikaw nagsugod, sa pagsiguro nga anaa ang husto nga drayber alang sa devaysa ug naglihok sa USB-debugging mode. Sa sinugdan, kita kinahanglan nga mobalhin sa mga file nga gianalisar ngadto sa usa ka direktiba apk_manager \ dapit-APK-dinhi-sa-modding. Human nga kamo kinahanglan nga modagan Script.bat. Kon walay problema, unya magsugod sa console, nga mahimong lunhaw nga letra. Pagpili sa punto nga gidaghanon siyam - "Decompile". Sa higayon nga ang proseso nagsugod, kini mao ang gikinahanglan nga dili sa pagsira sa console. Unya, bukas nga interes APK-file sa paggamit sa mga archiver ug kinuha gikan niini classes.dex, nga proseso dex2jar programa. Alang kanato sa gikinahanglan nga resulta kini mao ang gikinahanglan sa paglihok sa usa ka butang uban sa extension .bat. Ikaw tan-awa ang file, nga matapos sa .jar. Busa sa halayo, ang bintana dili pagsira.
analisar kita data
Aron sa pagkuha sa impormasyon mahitungod sa aplikasyon, kamo kinahanglan gayud nga-abli niini. Sumala niini, pagtino kita nga molihok ingon nga ang mga nag-unang kalihokan. Kini mao siya nga karon nagpresentar sa labing dako nga importansya sa aton. Kini usab madanihon sa pagtan-aw sa ubos sa programa. Kon ang ubos mao ang impormasyon bahin sa lisensya manager, kini mao ang kamahinungdanon sa lisud nga sa pagdala sa Reverse engineering. Kon switch kanimo sa jd-gui ug pagpalapad sa kahoy, atong makita sa pipila Tan. Maghunahuna nga ang tulo ka kanila. Sa unang ang mga files nga nalangkit sa advertising. Ang ikaduha mao ang lisensya manager klase. Sa ikatulo, kita sa gikinahanglan nga data. Kini sa diha nga kita moadto. Adunay kinahanglan sa pagpangita ug sa pagtangtang sa mga yawe, ug dayon ang uban nga mga linya nga check kon lisensyado sa pagtrabaho nga bersyon. Ang tanan niini nga kinahanglan nga gilimpyohan. Unya sa atong APK Manager sa pagtan-aw alang sa usa ka dapit diin ang dapit nga bungat bytecode. Karon atong paghimo sa usa ka gamay nga digression ug mokomentaryo sa team, nga kalagmitan hinungdan sa mga problema. Human nga, kita lang sa pagtipon sa mga programa.
pagtukod aplikasyon
Kini makatabang kanato sa tanan sa mao usab nga APK Manager. Sa console, nga wala kita giyawihan, pagpili sa mga butang №14. Sunod limbong, tikas. Kon ang aplikasyon mao ang hinoon komplikado, sa diha nga kamo magsugod, aron kini partially o sa bug-os nga mawad-an sa iyang efficiency. Ayaw kabalaka, kini nagpasabot nga kita lamang halfway didto ug sa ubang dapit sa pag-adto. Kita nagpadayon sa pagtuman sa Reverse-engineering-tanan Android apps. Ingna, unsa ang buhaton sa usa ka partikular nga kaso, sa kinatibuk-ang termino, alaut, ang imposible. Busa, tan-awon alang sa problema nga mga dapit makabaton sa ilang kaugalingon. Pananglitan, kon ang usa ka aplikasyon bintana ang gibabagan pop-up bintana, kamo kinahanglan nga tan-awa ang code ug kuhaon ang bahin nga mao ang responsable sa dialogue niini. Aron sa pagtabang sa uban sa niini nga mahimo jd-gui. Samtang kamo mahimo tan-awa, ang gibali engineering mao ang dili usa ka sayon nga negosyo, ug nagkinahanglan kini nga usa ka dakong tindahan sa kahibalo. Bisan kon ang tanan nga mga butang nga modagan nga walay bisan unsa nga mga problema, kini mahimong gikinahanglan sa pagsulay sa paghimo sa mga aplikasyon. Nga mao, ang mga Reverse-engineering mao ang dugang nga panahon-nga nagaut-ut nga kalihokan. Kita nagpadayon sa pagtrabaho hangtud nga ang tanang mga problema giila.
kaluwasan
Unsa kon kita kinahanglan nga panalipod tanan Android-aplikasyon gikan sa reverse engineering? Sa kini nga kaso, adunay duha ka mga kapilian: ang paggamit sa piho nga mga programa o sa paglalang sa usa ka code nga gambalay nga makabalda sa paghimo sa parsing gisulat. Ang ulahing kapilian mao ang angay lamang nasinati propesyonal, mao nga atong hisgotan lamang ang unang pamaagi sa panalipod. Ingon sa usa ka espesyalista nga software sa paggamit ProGuard. Kini nga aplikasyon, nga gigamit sa pagpakunhod, obfuscation ug code pagkamalaumon. Kon ang programa "paggukod" pinaagi niini, kita sa usa ka file uban sa extension * .apk mas gamay pa kay sa siya. Sa maong kahimtang kini mahimong mas lisud nga sa disassemble. Ug ang pagpahimulos sa niini nga programa mao nga kini bisan pa nga gipaila-ila sa pagtukod sa Android aplikasyon sa r9 updates. Busa, pagpahimulos sa kini mao ang bisan unsa nga developer nga adunay standard himan sa paglalang ug kalamboan.
konklusyon
dili kita makaingon nga ang Reverse-engineering mahimong girepresentahan ingon nga usa ka butang nga uniformly maayo o daotan. Siyempre, gikan sa punto sa panglantaw sa mga developers, nga gibuhat sa usa ka aplikasyon, kini dili usa ka malipayon nga hitabo. Apan sa laing bahin, sa daghang mga kaso nga nasinati programmers pagsulat sa gikinahanglan nga files mahimong usa ka panahon nga dili kaayo mahal kay sa paggamit sa maong mga himan. Bisan tuod alang sa novice developers Reverse-engineering nakahatag ug usa ka maayo nga pag-alagad kon walay ideya kon sa unsang paagi sa pag-implementar sa usa ka butang, bisan sulundon, ug dili na tin-aw nga latid makatabang sa kalampusan sa tumong niini.