Dekompilyatsiya dasturi apk. Android APK dasturlarini dekompilyatsiya va kompilyatsiya qilish

Golovna / Google Play

Buvaê yoga dasturi chiqqandan so'ng, qaerga borishga boraylik. Adzhe haqiqat, shuning uchun postiyno trapleyaetsya? Va kremni dekompilyatsiya qilish yoga va bir necha yuz qator kodlarni tuzatishdan hech narsa qolmaydi va hamma narsani imkon qadar tezroq qilish kerak.

Axis i menda yogo apk dan kamroq bo'lishi mumkin bo'lgan qo'shimchani o'zgartirish vazifasi bor edi. Qo'shimchalarni dekompilyatsiya qilish bilan shug'ullanadiganlar, uni tuzish qanchalik muhimligini bilishadi.

Dekompilyatsiya

Android uchun quyidagi yordamchi dasturlardan foydalaning:
  • Resurslarni dekompilyatsiya qilish uchun ApkTool.
  • Dexni jarga aylantirish uchun Dex2Jar.
  • Dam olish kunlari bankalarini boshqarish uchun JD-GUI.
  • Men JAD-ni ko'proq tavsiya qilaman, JD-GUI-ni dekompilyatsiya qilish osonroq.
Internetda yetarlicha ma'lumot mavjud.

Agar siz dekompilyatsiyadan so'ng dasturni tanlashga harakat qilsangiz, unda siz uni kechirish orqali kompilyatsiya qila olmaysiz, ayniqsa sikllarni dekompilyatsiya qilish va uni yuvish juda muhimdir. Deyaki kechirimlar osonlik bilan tuzatiladi, lekin yana, shaxssiz ruhiy o'tishlarda o'sish oson bo'lmaydi, lekin agar yuzdan ortiq yoki mingdan ortiq bo'lsa, dasturni tiklashning bunday usuli samarali bo'ladi, yaxshisi. hammasini qaytadan yozing.

Unda siz eksperimentlarni dekompilyatsiya bilan yakunlashingiz mumkin, ammo baribir taraqqiyotni siljiting va yangi yo'l tug'iladi.

Sinfni o'zgartirish

Otzhe, jar tse kutubxonasi, nima uchun uni faqat yangi loyihaga ulab bo'lmaydi? Biz uni libs papkasiga joylashtiramiz, asosiy faoliyatga o'tamiz va uni kompilyatsiya qilamiz. Barcha pratsyuê, smut, schob emas zbígali _sinflar nomlari, shuning uchun paketlar ochiq-oydin oqladi ínakshe nomi, kamida, zbígayutsya hosil BuildConfig va R.

Shunday qilib, siz Activity, Service, BroadcastReceiver va, ehtimol, manifestda kar bo'lgan boshqa sinflarga tushishingiz mumkin, shuning uchun manifestda yangi sinf nomlarini ko'rsatish kerak bo'ladi, aks holda ular kaltaklanmaydi.

Endi siz virtual funktsiyalarni qayta ko'rib chiqishingiz mumkin, biroz ko'proq kalit so'z final tse robiti va pasayish tezh ruxsat yo'q, unga berilgan edi.

Sinfni almashtirish

Jar kutubxonasini arxivdan chiqargandan so'ng, sinf fayllari olinadi, shuning uchun sinf tuziladi, hurmat bilan loyihani bin/sinflar papkasida yig'ishda o'sha sinf fayllari mavjud va kutubxonadan fayllarni qo'shish uchun ...

Hamma narsa juda oddiy emas, loyihani bir qarashda kompilyatsiya qilish kerak. Bepul qo'shimcha sinfini yutib olish uchun loyihaga kelish kerak, lekin uni eksport qilmaslik kerak. Jang qilish oson: libs papkasidan Eclipse o'zi kutubxonani eksport qiladi, keyin biz jar kutubxonasini lib jildiga o'tkazamiz va uni loyihaga qo'shamiz, Eclipse Project->Preferences->Java Build Path->Libraries->Qo'shish. Kavanozlar... Buyurtma va eksport yorlig'ida berilgan Buni qayta ko'rib chiqish kerak, katakchani o'rnatmaslik uchun kutubxonani eksport qilishimiz kerak emas, hamma narsa sinf fayllarida bo'ladi.

Endi biz tashqi dasturlarni dekompilyatsiya qilish sinfini olamiz, biz uni yangi kompilyatsiya kechirishda tuzatamiz, masalan, yangi sinfning o'zi g'alaba qozonishi uchun qayta ko'rib chiqish uchun dialog shousini qo'shamiz. Biz loyihani tozaladik, Eclipse Project->Clean-da, sinf fayllarini bin/sinflar jildiga ko'chirdik, loyihani tanladik va hammasi ishladi!

Kelgusi yig'ilishlarda loyihani tozalash, qo'lda qilishning bunday usulini yutib olishning hojati yo'q. Dekompilyatsiyadan so'ng kechirimlarni tuzatishni osonlashtirish uchun men JD-GUI va JAD chiqishini o'zgartirdim, bu etarli darajada eshitildi.

Ammo nashr versiyasini olish vaqti keldi va uning uchun, shubhasiz, obfuscator g'alaba qozondi va siz sinflarning katta nomlari va xabarning daxlsizligi uchun yuzlab kechirimlarni ko'rasiz. Endi yig'ilgan sinf fayllarini tartibga solish, ularni xuddi almashtirilgandek tasniflash vaqti keldi, shundan keyin kechirimchilar aybdor emas. Chiqarishning qanday qilib yig'ilishining yana bir qabul qilib bo'lmaydigan o'ziga xos xususiyati bor - loyihani tozalash va sinf fayllarini nusxalash kerak, aks holda hid yo'qoladi.

Visnovok

Shu tarzda, faqat o'zgartirilgan fayllar dekompilyatsiya qilinadi, bu esa barcha chiqishlardagi kechirimlarni yaxshilaydi va qo'shimcha xarajatlarni yaxshilaydi, shuning uchun kodning butun qismini kompilyatsiya qilish - tuzatish - kompilyatsiya qilish mumkin.

Zto velikoyu ymovirnistyu ne vdassya prixovati vsi slidi vіd originalnoí̈ programi, nazvi neobfustsovanix klasív takix bir Activity í Service, a takoja nazvi í̈x paketív zberejutsya va bu erda dasturiy ta'minot, turli xil muammolar mavjud zahistu o'xshash boshqa yo'llar bilan zahistu vyd kodni o'zgartirish.

Tahrir qilish uchun APK dasturiy ta'minot. Biz ularni dekompilyatsiya qilishimiz kerak, keyin esa ularni tuzamiz! Qayerdan bilasan va nimani taniysan o'sha urokdan.

2. Tayyorlangan qo'shimchani paketdan chiqarilgan Sign Android bilan jildga nusxalash

3. Dasturni faylga torting Sign_APK.bat shundan so'ng qo'shimcha imzolanadi


Nomi ko'rsatilgan qo'shimchani imzolashga tayyormiz apk_signed.apk

Qo'shimcha imzolandi!

Tizim APK bilan robot

Tizim dasturlarini o'zgartirish uchun siz avval APKTOOL tizim faylini o'rnatishingiz kerak framework-res.apk Qaysi biri Android tizimi bo'limida:

/system/framework/framework-res.apk

Apktoolni xursand qilish uchun dani fayl kerak bo'lsa, buyruqni kiriting:

apktool if framework -res.apk

Roztashuvannya yo'lini kiritishingiz kerak bo'lgan buyruqni tekshiring, shunda u fayldir framework-res.apk C:\primer papkasida perebuvat qiling, keyin buyruq bosqichma-bosqich ko'rinishda ko'rinadi:

apktool agar W:\primer\framework -res.apk

Bundan tashqari, tizim fayllarini o'zgartirish imkoniyatiga ega bo'lish uchun proshivka Deodex-ovana uchun aybdor.

Endi siz hamma narsani so'rashingiz mumkin! (buyruqlar qatorini almashtirmang)




22.07.2015

Koristuvachning qo'shimcha binolarida juda kam uchraydi Android tizimi O'zingiz uchun dasturni o'zgartirish zarurligini ayblang. Dodati schos, chi navpaki tartibga keltir. Masalan, reklamadan yomon banner. Abo, afsuski, qayta litsenziyalash. Aje dasturlari kupuvati bo'lishi kerak, lekin chi lamati emas! Ammo endi biz tse haqida emas, balki ular haqida, qanday yo'llar bilan va Android-dagi dasturlarning dekompilyatsiyasiga kirsak, gaplashamiz.

Kimga kerak

Qoida tariqasida, pochatkívtsam reversers yoki doslidnikam. Tsim odamlar tsíkavo kolupati dodatki ríznih maqsadlarda uchinchi tomon chakana sotuvchilari. Oddiy qiziqishni hisobga olgan holda, bu qo'shimchada qiziquvchanlik darajasiga qadar amalga oshirildi. Shunday qilib, to'g'ridan-to'g'ri, pastroq manfaatlar mavjud, bundan tashqari, bu manfaatlar eng keng ko'lamli: sotib olmasdan yoki aldash usuli bilan vikoristannya uchun qo'shimchaning yomonligi.

nazariya

Ko'pgina dekompilyatsiya dasturlari hech qanday muammo tug'dirmaydi. Terini parvarish qilish uchun, kerak bo'lganda, Java Runtime o'rnatishingiz mumkin bo'lgan har qanday platformada ishlaydigan yozma dasturlar. Shunga qaramay, dekompilyatsiyaning mohiyati tajovuzkorlikda: siz dekompilyatsiya kodiga qarashingiz mumkin virtual mashina Dalvik, shuningdek, dasturning barcha resurs fayllari (manifest, belgilash va boshqalar). Yoki Dalvik kodini Java kodiga aylantirishingiz mumkin. Birinchi bosqichda dastur apk-fayl yo'liga o'tkaziladi. Boshqa apk-fayl (bu haqiqatan ham oddiy arxiv) faylni chiqarib olishi kerak. Ushbu faylda barcha Dalvik o'rash kodlari mavjud (shuning uchun barcha o'rash kodlari bitta faylga). Maxsus dastur Men Dalvik kodini Java kodiga aylantiraman, undan keyin java dekompilyatori sifatida foydalanish mumkin. Boshqa yaxshiroq yo'l bo'lsa yaxshi bo'lardi, lekin bitta hiyla bor. Menimcha, kodni kodga aylantirishning iloji yo'qligi va kodning mantig'i chakana sotuvchini yozish kabi bundan uzoqlashadi. Uchun oddiy dasturlar Bu juda etarli, ammo butun kodni tushunish uchun Java va Dalvikdagi kodlarga rioya qiling. Keling, Android qo'shimchalarini dekompilyatsiya qilish uchun o'zimiz ishlashimiz kerak bo'lgan narsalar haqida gapiraylik.

Yechim

Keling, dasturning to'liq dekompilyatsiyasi haqida gapiraylik. Tobto, apk xml-fayllardagi barcha qo'shimchalarni birdaniga ochishdan. Kimga apktool yordam dasturi kerak. Sizga kerak bo'lgan yagona narsa yordam dasturini to'g'ri parametrlar bilan ishga tushirishdir: java -jar apktool.jar d app.apk. d bayrog'i dastur dekompilyatsiya qilinishini bildiradi. Qolgan parametr apk fayliga yo'ldir. Aniqlik uchun men bat-skript yaratdim va uni dasturga mas'ul qildim.

Shell

java -jar apktool.jar d app.apk pauzasi

jdgui. Huquqbuzarlikning hidi ham qimmatga tushmaydi kod bilan. Siz apk faylini arxivator (masalan, 7zip) yordamida ochishingiz va uni dex2jar fayli bilan jildga chiqarib olishingiz kerak. classes.dex.


Nima uchun yordam dasturini tajovuzkor buyruq bilan ishlating. Men Dalvik mashina kodini Java kodiga aylantiryapman. Agar konvertatsiya muvaffaqiyatli bo'lsa, faylni qabul qilishingiz mumkin sinflar.jar. Ushbu fayl jdgui tomonidan ko'rsatiladi.


Viconny interfeysli dastur, faylni reverser tomonidan o'qilishi bilan bog'liq muammolar, uni qo'yib yuboring va uni ishga tushiring, bu sizning aybingiz emas. Uni panelda ko'rganingizda, dastur va paketlar uchun tarqatishdan oldin kiritilgan barcha sinflar ko'rsatiladi.

O'ng tomonda, u kichik uchun orqada qoladi: dastur kodini tugating. Dekompilyatsiya usuli sifatida, apk-da tanlangan barcha kerakli fayllardan so'ng dasturga har qanday o'zgartirishlar kiritish va unga imzo qo'yish mumkin edi. Ular haqida, qanday qilib tse robiti, davomini o'qing.

Android-dagi ba'zi boshqa dasturlar, koristuvach kuchidan tashqari. Ko't sifatida siz zerikarli reklama qo'yishingiz mumkin. Va keyin buvaê va shunga o'xshash - bizda yaxshi dastur bor, faqat tarjima yo qiyshiq, yoki kundalik zovsim. Abo, masalan, dastur sinov, lekin oling yangi versiya hech qanday imkoniyat yo'q. Vaziyatni qanday o'zgartirish mumkin?

Kirish

Ushbu maqolalarda biz APK paketini qanday qilib qo'shimcha bilan kengaytirish, uning ichki tuzilishini ko'rib chiqish, bayt kodini qismlarga ajratish va dekompilyatsiya qilish, shuningdek, qo'shimchaga o'zgartirishlar kiritishga harakat qilamiz, bu bizga boshqa foyda keltirishi mumkin.

Hamma narsani mustaqil o'rganish uchun men bilimga ko'nikishni xohlayman Java kino, Android uchun qaysi dasturlar yozilgan bo'lsa, ko'chma XML mavjud bo'lib, u Android-da hamma joyda yozilgan - ilovaning o'zi tavsifida, qatorlarni saqlashga kirish huquqi, chunki ular ekranda ko'rsatiladi. Bundan tashqari, siz o'zingizni maxsus konsol dasturlari bilan olib borishingiz kerak.

Otzhe, Android uchun mutlaqo barcha dasturiy ta'minot mavjud APK to'plami nima?

Qo'shimchalarni dekompilyatsiya qilish

Shu bilan birga, biz dasturning faqat qismlarga ajratilgan kodi bilan ishladik, shu bilan birga, ajoyib dasturlarda jiddiy o'zgarishlar kiritildi, smali kodiga kengaytma yanada boyroq bo'ladi. Yaxshiyamki, biz dex Java kodini dekompilyatsiya qilishimiz mumkin, u na asl, na orqaga kompilyatsiya qilinadi, lekin robot dasturlari mantiqini o'qish va tushunish oson. Boshlash uchun bizga ikkita vosita kerak bo'ladi:

  • dex2jar - Java-ning kodini olishimiz mumkin bo'lgan narsaga asoslanib, Dalvik baytekodini JVM baytekodiga tarjimon;
  • jd-gui - dekompilyatorning o'zi, bu sizga JVM baytkodidan o'qilayotgan Java kodini chiqarish imkonini beradi. Shu bilan bir qatorda, siz Jadni qamchilashingiz mumkin (www.varaneckas.com/jad); g'alaba qozonishni va eskisini tugatishni xohlayman, lekin qaysidir ma'noda ko'proq o'qilishi mumkin bo'lgan kodni ishlab chiqaradi, Jd-gui pastroq.

Vykoristovuvaty í̈x síd shunday. Argumentning apk paketiga qanday o'tishini ko'rsatib, boshida dex2jar ni boshlaymiz:

%dex2jar.sh mail.apk

Natijada, Java kodini ko'rib chiqish uchun jd-gui ga qo'shilishi mumkin bo'lgan oqim katalogida mail.jar Java paketi paydo bo'ladi.

APK-paketlar va otrimannya biriktiring

Android dasturiy ta'minot to'plami, aslida, ajoyib ZIP fayldir, ko'rib chiqish uchun uni ochish uchun sizga hech qanday maxsus vositalar kerak emas. Windows uchun 7zip yoki Linux uchun konsolni ochish uchun ona arxivini yuklab oling. Ale tse shodo obgorki. Va o'rtada nima bor? O'rtada, bizning yovvoyi vapadkada quyidagi tuzilishga egamiz:

  • META-INF/- paket fayllari yig'indisini nazorat qiluvchi dasturning yaratuvchisini tasdiqlovchi raqamli sertifikatni olish;
  • res/ - robotingizda g'alaba qozonish uchun qo'shimcha kabi turli xil manbalar, masalan, tasvir, interfeysning deklarativ tavsifi, shuningdek, boshqa ma'lumotlar;
  • AndroidManifest.xml- Dastur tavsifi. Bu erda, masalan, zarur ruxsatnomalar ro'yxatini kiritish kerak android versiyasi ekranning bu zarur razdylna bino;
  • classes.dex- Dalvik virtual mashinasi uchun dastur bayt kodini kompilyatsiya qilish;
  • resurslar.arsc- tezh resurslari, boshqa turdagi uchun - zokrema qatorlar (shunday qilib, butun fayl Russification uchun burab mumkin!).

Ro'yxatga olingan fayllar va kataloglar, agar hammasi bo'lmasa, unda, ehtimol, asosan APK. Biroq, varto keng bo'lmagan fayllar/kataloglarning tarqalishini taxmin qiladi:

  • aktivlar- resurslarning analogi. Asosiy xususiyat - resursga kirish uchun uning identifikatorini bilishingiz kerak, aktivlar ro'yxati dastur kodidagi AssetManager.list() usuli yordamida dinamik ravishda o'zgartirilishi mumkin;
  • lib- NDK (Native Development Kit) yordamida yozilgan Native Linux kutubxonalari.

Bu vikoristovuyut vibrator igor katalogi, u erda dvigun gri yordamida, C / C ++ yozish, shuningdek, yuqori samarali qo'shimchalar yaratuvchilari (masalan, Gugl xrom). Biz uydan ajralib qoldik. Lekin dastur paketi faylining o'zini qanday olib tashlashim mumkin, nimani bosishim kerak? APK fayllarini ilovadan ildizsiz olish mumkin emas (xush hid /data/app katalogida yotadi) va rooting ildizga ega emas, dastur faylini kompyuterga olishning kamida uchta usuli mavjud:

  • Chrome uchun APK Downloader kengaytmasi;
  • Real APK Leecherni to'ldirish;
  • turli xil fayl almashtirgichlar va warezniki.

Ulardan qaysi biri vikoristovuvati - o'ng lazzatlanishda; Biz boshqa dasturlarni yozishning eng yaxshi usulini qadrlaymiz, biz Real APK Leecher usulini tasvirlaymiz, Java-da vino yozishning ko'proq usullari mavjud va aniqki, men Windows uchun pratsyuvatime istayman, men nix uchun istayman.

Dasturni ishga tushirgandan so'ng, uchta maydonni to'ldirish kerak: elektron pochta, parol va qurilma identifikatori - va movni tanlang. Birinchi ikkitasi kengaytmada imzolangan Google hisobingizning elektron pochtasi va parolidir. Uchinchisini identifikator bilan biriktiraman va siz uni teruvchidagi kodni terish orqali olib tashlashingiz mumkin # #8255## va keyin biz Device ID qatorini bilamiz. To'ldirishda siz android- prefiksisiz faqat identifikatorni kiritishingiz kerak.

Saqlash tugallangach, ko'pincha "Serverga ulanishda xato" xabari paydo bo'ladi. Vono kutib turolmaydi Google Play shuning uchun jasorat bilan e'tibor bermang va paketlarni qidiring, sizga nima qo'ng'iroq qilish kerak.

Ko'rib chiqish va o'zgartirish

Aytaylik, siz paketni bilasiz, nima bosishingiz, yuklab olishingiz, ochishingiz kerak ... va qandaydir XML faylini ko'rib chiqmoqchi bo'lganingizda, bu fayl matnli fayl emasligini ko'rsatadi. Yoga dekompilyatsiyasi nima va paketlar bilan qanday ishlash kerak? SDK ni o'rnatish kerakmi? Salom, SDK obov'yazkovo ni o'rnatmang. APK-ning qadoqlash, modifikatsiyalari va qadoqlash paketlarining barcha tafsilotlari uchun sizga quyidagi vositalar kerak bo'ladi:

  • ZIP arxivi o'rash va qadoqlash uchun;
  • smali- Dalvik virtual mashinasi baytkodi uchun assembler/disassembler (code.google.com/p/smali);
  • aapt- resurslarni qadoqlash vositasi (dastur samaradorligini optimallashtirish uchun resurslar ikkilik ko'rinishdan saqlanadi). Android SDK omboriga o'ting, lekin siz uni olib tashlashingiz ham mumkin;
  • Imzolovchi- uchun vosita raqamli imzo o'zgartirilgan paket (bit.ly/Rmrv4M).

Bu vositalarning barchasini engish mumkin va bu yaxshi, lekin bu qulay emas, ularga asoslangan yuqori sifatli dasturiy ta'minot bilan tezlashtirish yaxshiroqdir. Agar siz Linux yoki Mac OS X bilan ishlasangiz, bu erda apktool vositasi. Vin sizga resurslarni ochishga imkon beradi original ko'rinish(jumladan, ikkilik XML va arsc fayllari), o'zgartirilgan resurslar bilan paketni qayta tanlang yoki paketlarni imzolamang, shuning uchun imzolovchi yordam dasturini qo'lda ishga tushirishingiz kerak. Yordamchi dastur Java-da yozilganidan qat'i nazar, o'rnatish nostandartdir. jar faylining o'zini kuzatishni boshlang:

$ 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 $ eksport PATH=~/bin:$PATH

Xo'sh, agar siz Windows bilan ishlasangiz, u uchun bu Virtuous Ten Studio deb nomlangan mo''jizaviy vosita bo'lib, u barcha ushbu vositalarni (shu jumladan apktool-ni o'zi ham) to'playdi, ammo CLI-interfeysni almashtirish o'rniga u intuitiv intellektga loyiqdir. grafik interfeys, uning yordami uchun kilka bosish orqali ochish, demontaj qilish va dekompilyatsiya qilish bo'yicha operatsiyalarni bajarish mumkin. Donation-ware vositasi, shuning uchun ba'zida ular litsenziyani olib qo'yishlari e'lon qilinadi, lekin siz ham sabr qilishingiz mumkin. Men yoga tasvirlab bera olmayman, shuning uchun siz uni interfeysda jarimalar evaziga olishingiz mumkin. Va apktool o'qi, konsol tabiati tufayli, batafsilroq muhokama qilinishi kerak.



Keling, apktool sozlamalarini ko'rib chiqaylik. Muxtasar qilib aytganda, uchta asosiy buyruq mavjud: d (dekodlash), b (qurilish) va if (ramkani o'rnatish). Birinchi ikkita jamoa bilan ham, uchinchisini nima o'g'irlash kerakligini hamma narsa aniqladi, aqlli operator? Von, agar siz tizim paketini tayyorlasangiz, jim vaziyatlar uchun zarur bo'lgan UI-ramka ko'rsatmalarini ochmoqda.

Keling, birinchi buyruq uchun ba'zi variantlarni ko'rib chiqaylik:

  • -s- dex fayllarni qismlarga ajratmang;
  • -r- resurslarni paketdan chiqarmang;
  • -b- dex faylini demontaj natijalariga soliq ma'lumotlarini kiritmang;
  • - ramka yo'li- apktool-dagini almashtirish uchun UI-ramka ko'rsatmalarini o'zgartiring. Endi b buyrug'i uchun bir nechta variantni ko'rib chiqamiz:
  • -f- o'zgarishlarni qayta tekshirmasdan majburlash;
  • -a- aapt (APK-arxivni saqlash uchun zasyb) yo'lini topish mumkin, negadir siz yogo z ínshoy dzherelni yutib olishni xohlaysiz.

Apktool-ni olish juda oson, buning uchun APK-ga fayldagi buyruqlardan birini kiritish kifoya, masalan:

$apktool d mail.apk

Shundan so'ng, pochta katalogida paketning barcha fayllari ko'rsatiladi va qismlarga ajratiladi.

Dissektsiya. Reklamani yoqing

Nazariya - tse, ajoyib, mehribon, lekin bu ko'proq kerak, chunki biz qadoqlanmagan paket bilan nima qilishni bilmaymizmi? Keling, o'z qadr-qimmatimiz bilan nazariyani zastosuvat qilishga harakat qilaylik, softin kabi eng modifiku'yomo o'sha shchob bizga reklama ko'rsatmaydi. Misol uchun, bu Virtual mash'al bo'lsin - virtual mash'al. Biz uchun bu dasturiy ta'minot ideal, chunki u samarali reklama bilan to'la va tarmoq kodida yo'qolmaslik uchun buni qilish juda oddiy.



Otzhe, yo'l-yo'riq usullaridan birining yordami uchun bozordan qo'shimcha qo'shimchani oling. Virtuous Ten Studio twist-ni qanday sindirish mumkin, shunchaki plagindan APK faylini oching va uni oching, buning uchun loyihani yarating (Fayl -> Yangi loyiha), keyin kontekst menyusi loyiha uchun Import faylini tanlang. Agar sizning tanlovingiz apktool-ga to'g'ri kelsa, unda bitta buyruq yozish kifoya:

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

Shundan so'ng, com.kauf.particle.virtualtorch katalogida oldingi bo'limda tasvirlanganga o'xshash fayl daraxti paydo bo'ladi, lekin smali qo'shimcha katalogidan keyin dex-faylni apktool.yml fayli bilan almashtiring. Birinchisi, dasturning dex-faylining qismlarga ajratilgan kodini olib tashlash, ikkinchisi - paketni qayta joylashtirish uchun apktool tomonidan zarur bo'lgan xizmat ma'lumotlari.

Avvalo, biz qaerga qarashimiz kerak, aniqki, AndroidManifest.xml. Va bu erda biz darhol oldinga siljishini ko'ramiz:

Internet-uchrashuvda g'alaba qozonish uchun qo'shimchani qayta qo'shish uchun nima borligini aniqlab olishingiz muhim emas. Aslida, agar biz faqat reklamadan xalos bo'lishni istasak, bizda hamma narsa yaxshiroq, Internet qo'shimchasini himoya qilish uchun etarli bo'ladi. Keling, avval sinab ko'raylik. Biz bir qator ko'rsatmalarni ko'ramiz va apktool yordam dasturini tanlashga harakat qilamiz:

$apktool b com.kauf.particle.virtualtorch

OGOHLANTIRISH

Apk-signer yordamida dasturga imzo chekish uchun siz Android SDK-ni o'rnatishingiz va dastur sozlamalarida yangisiga eng so'nggi yo'lni ko'rsatishingiz mumkin.

Barcha ma'lumotlar faqat sizning bilimingiz uchun berilgan. Na tahririyat, na muallif men ushbu maqola materiallariga bo'ysunishim mumkinmi yoki yo'qligi uchun javobgar emas.

Endi siz ushbu kalit bilan APK-ni imzolashingiz mumkin. APK Signer yorlig'ida yaratilgan faylni tanlang, parolni kiriting, kalit nomini va yangisiga parolni kiriting, so'ngra APK faylini toping va "Ro'yxatdan o'tish" tugmasini jasorat bilan bosing. Har bir narsa yaxshi bo'lsa, paket imzolanadi.

MA'LUMOT

Eshaklar paketni o'z kalitimiz bilan imzoladilar, chunki asl qo'shimcha bilan ziddiyat bor, ya'ni agar siz dasturiy ta'minotni bozor orqali yangilashga harakat qilsangiz, biz kechirim olamiz.

Faqat raqamli imzo talab qilinadi uchinchi tomon dasturiy ta'minoti shuning uchun siz modifikatsiya bilan shug'ullanasiz tizim qo'shimchalari, nusxalar /system/app/ katalogiga o'rnatilgani uchun ularni imzolash shart emas.

Shundan so'ng biz paketni smartfonga yuboramiz, uni o'rnatamiz va ishga tushiramiz. Voila, reklama tayyor! Biroq, uning o'rinbosari biz Internetga kira olmasligimizni, lekin har kuni ruxsat berishimiz kerakligini aytdi. Foydalanish mumkin bo'lgan g'oya uchun, lekin agar siz unga jiddiy qarasangiz, rostini aytsam, bizga ahmoqona qo'shimcha bilan omad kulib boqdi. Softina odatda yoziladi, hamma narsa uchun yaxshiroq, o'z yangiliklarini aniqlashtirish yoki Internetga ulanish mavjudligini qayta ko'rib chiqish va aks holda faqat ishga tushirish. Qanday qilib sizda yaxshi vipadku bor? Yaxshi, kodni tahrirlang.

Reklamani ko'rsatish uchun maxsus sinflar yaratish va dasturni yoki tadbirlardan birini ishga tushirish vaqtida ushbu sinflarning usullarini chaqirish uchun qo'shimcha mualliflariga qo'ng'iroq qiling (sodda qilib aytganda, dastur ekranlari). Sinfni bilishga harakat qiling. Smali katalogiga o'ting, com ga o'ting (orgda siz faqat ochiq kodli cocos2d grafik kutubxonasini topishingiz mumkin), kaufga o'ting (xuddi shu narsa, chunki chakana sotuvchining nomi va barcha yogo kodi mavjud) - va vinolar o'qi, marketing katalogi. O'rtada biz smali kengaytmalaridan bir nechta fayllarni bilamiz. Tse klassi va Ad.smali ning eng diqqatga sazovor klassi bo'lib, uning nomi uchun qaysi biri reklama ko'rsatishni taxmin qilish muhim emas.

Biz yoga robotlarining mantig'ini o'zgartirishimiz mumkin edi, ammo Wikisni har qanday yoga usullaridan qo'shimchaning o'zidan tozalash ancha oson bo'lar edi. Buning uchun marketing katalogidan zarrachalar katalogiga, so'ngra virtual mash'alaga o'tamiz. MainActivity.smali fayli alohida e'tiborga loyiqdir. Bu Android uchun standart sinf bo'lib, u Android SDK tomonidan yaratilgan va dasturga kirish nuqtasi sifatida o'rnatiladi (C da asosiy funktsiyaga o'xshash). Faylni tahrirlash uchun oching.

Smali kodidan foydalaning (turli assembler). Noto'g'ri tushunish va o'qish uchun muhim bo'lganligi sababli, biz buni qilmaymiz, lekin biz koddagi reklama sinfining barcha topishmoqlarini bilib olamiz va ularni sharhlaymiz. Biz 25-qatorga qo'ygan hazil bilan "E'lon" qatorida yuramiz:

Dala shaxsiy e'lon: Lcom/kauf/marketing/Ad;

Bu yerda E'lon sinfiga ob'ektni tanlash uchun reklama maydoni yaratiladi. Qator oldida ### qo'shimcha o'rnatish uchun izoh qoldiring. Keling, hazilni davom ettiramiz. 423-qator:

Yangi namunali v3, Lcom/kauf/marketing/Ad;

Bu erda ob'ektning yaratilishi. Fikr bildiramiz. Biz uni 433, 435, 466, 468, 738, 740, 800 va 802-qatorlarda Ad sinfining usullarigacha qidirishda davom etamiz. Fikr bildiramiz. Hamma narsa yo'q. Qayg'urmoq; o'zini ehtiyot qilmoq. Endi paketni qaytarib olish va yogo amaliyotini va reklama mavjudligini qayta tekshirish kerak. Tajribaning tozaligi uchun AndroidManifest.xml qatorini o'chirish, paketni tanlash, imzo qo'yish va uni o'rnatish mumkin.

Bizning oxirgi quyonimiz. Ko'rinadigan reklama

Opa! Reklama robot dasturlari uchun bir soatdan kamroq vaqt davomida paydo bo'ldi, ammo agar dasturiy ta'minot ishga tushirilsa, mi bachimo kabi asosiy menyuda ortda qoldi. Demak, tekshiring, yoki kirish nuqtasi MainActivity sinfidir va reklama robotlashtirilgan dasturning birinchi soatida paydo bo'lgan yoki u asosiy menyudan tashqarida qolgan, shuningdek, kirish nuqtasi boshqami? Malumot kirish nuqtasini ko'rsatish uchun AndroidManifest.xml faylini qayta yarataman. Shunday qilib, yangisida, keyingi qatorlar:

Bizga (va eng muhimi, android) Start nomli faoliyatni android.intent.category.LAUNCHER turkumidagi android.intent.action.MAIN intent yaratish qo'llab-quvvatlash (sub) da ishga tushirish mumkinligi haqida aytmang. Ushbu yondashuv ishga tushirgichdagi dastur belgisini bosganingizda hosil bo'ladi, u unga kirish nuqtasini va Start sinfining o'zini belgilaydi. Bu hamma narsa uchun yaxshiroqdir, dasturchi dasturni asosiy menyusiz, standart MainActivity sinfiga kirish nuqtasisiz yozgan va keyin yangi oyna (faoliyat) qo'shgan, bu Start sinfida tasvirlangan menyuni tozalash va qo'lda. uni kirish nuqtasi bilan yaratish.

Start.smali faylini oching va E'lon qatorini yana qidiring, biz 153 va 155-qatorlarda FirstAd sinfining topishmoqlarini bilamiz. Vín ê vídniki í, nomiga ko'ra, yakrazí vídpovídaê asosiy ekranda reklama ko'rsatish uchun. Biz ushbu kontentda FirstAd klassining namunasi yaratilganda, kontekst uchun uni birinchi instantsiyaga havola qilish mumkin va cond_10 belgisini hisobga olsak, misol yaratilishidan oldin uning qanday yaratilganiga aqlli o'tishni ko'rib chiqdik. sinfdan:

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

Hamma narsadan ko'ra, dastur asosiy ekranda e'lonlarni ko'rsatish uchun zarur bo'lgan va cond_10 ga o'tgan bo'lsa ham, qandaydir tarzda hisoblayotganga o'xshaydi. OK, keling, vazifani aytamiz va aqlli o'tishni aqldan ozganga almashtiramiz:

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

Kodda endi FirstAd topishmoqlari yo'q, shuning uchun biz faylni yopamiz va apktool bo'yicha yordam uchun virtual mash'alimizni qayta tanlaymiz. Smartfonga nusxa ko'chiring, o'rnating, ishga tushiring. Voila, barcha reklamalar paydo bo'ldi, ulardan biz muvaffaqiyatli va vitaemomiz.

Podbaglar

Ushbu maqola Android plaginlarini ochish va o'zgartirish usullariga qisqacha kirishdir. Sahna ortida juda ko'p oziq-ovqat yo'qolgan, masalan, znyatya zakhistu, tushunarsiz kodni tahlil qilish, dastur resurslarini tarjima qilish va almashtirish, shuningdek qo'shimchalarni o'zgartirish, yozish vikoristannym android NDK. Biroq, Mayuchi asosiy bilim;

Yaqinda men bepul onlayn xizmatlarga qanday yordam berishni topdim (APK faylini tekshiring). Bugun biz APK fayllari mavzusini davom ettirmoqdamiz va men sizga APK faylini qanday qilib onlayn dekompilyatsiya qilishni ko'rsataman.

Ale for the cob, bilmaganlar uchun men sizga qanday APK dekompilyatsiya va dekompilyatsiya qilishni aytaman va qaysidir ma'noda sizga kerak bo'lishi mumkin. Koderlar, IT-shnikam va boshqa kompyuter ixlosmandlari uchun haqoratli bo'limni o'qish tavsiya etilmaydi! Darhol onlayn xizmatlarni ko'rib chiqing.

  • Peredmova
  • Dekompilyatsiya nima
  • Dekompilyator APK fayllari onlayn
    • Onlayn xizmat APK dekompilyatorlari
    • Javadecompilers onlayn xizmati
    • APK-Deguard onlayn xizmati
  • Visnovki

Dekompilyator va dekompilyatsiya jarayoni nima?

Dekompilyator kompilyatsiyalarni qayta kompilyatsiya qilishga harakat qiladi ikkilik fayl haqiqiy kod bilan bir vaqtning o'zida qaytib. Yakíst tsíêíí operatsíí vihídnikning mov dasturlashning oʻziga xos xususiyatlari shaklida yotish.

Java dasturlash uchun ko'p sonli dekompilyatorlar mavjud. Java baytkodi juda ko'p ma'lumotlarni o'z ichiga oladi. Ushbu dekompilyator kodni qayta kompilyatsiya qilish bilan bir qatorda holatga aylantirishni osonlashtirdi.

APK dekompilyatsiyasi

Ma'lumki, Android plaginlari Java-da yozilishi kerak. Android-ning birinchi versiyasi chiqqandan beri dasturchilar oldida bir vazifa bor edi - ularni Android qurilmalariga o'rnatish uchun Java fayllarini APK fayliga qanday kompilyatsiya qilish va teskari tartibni qanday kompilyatsiya qilish, tobto. APK faylini dekompilyatsiya qilish.

APK faylini dekompilyatsiya qilish kerakmi?

Buning sababi oddiy - birinchi navbatda u yoki boshqa Android qo'shimchalarini qanday mashq qilish va kerak bo'lganda uni o'zgartirishni ko'rib chiqish uchun. APK faylini dekompilyatsiya qilishda (qoida tariqasida, siz asl kod bilan yangi Java fayllar to'plamini olasiz).

O'zingizga ko'proq qarash kerak va kompyuterda ishlash uchun siz juda ko'p turli xil vositalarni o'rnatishingiz kerak. Sizda o'rnatilgan Java mashinasi, Android SDK va JavaDecompiler, dex2jar va boshqalar bo'lishi kerak. Darhaqiqat, bu yaxshi va buklanadigan, lekin eng to'g'ri yo'l, afsuski, bilim va ko'nikmalaringizdan va ahmoqligingizdan o'rganish muhimdir.

Android plaginini shu qadar oddiy dekompilyatsiya qila olasizmi?

Shunday sovuq. Z rivojlanish qo'mitasi qorong'u texnologiyalar onlayn xizmatlar bepul paydo bo'ldi, bu haqda men darhol aytib beraman.

Javadecompilers yordamida APK'ni onlayn dekompilyatsiya qiling

Keling, onlayn xizmatimizni ko'rib chiqaylik. Cey vositasi Jadx dekompilyatorining oflayn versiyasiga asoslanadi.

1. Javadecompilers veb-saytiga o'ting, "Look" tugmasini bosing va kerakli dasturni tanlang.

2. “Yuklash va dekompilyatsiya” tugmasini bosing.

Java dekompilyatorlari

3. Natija "Saqlash" tugmasini bosish orqali kompyuterga yuklab olinishi mumkin bo'lgan tolalar (dastur oynasida depozit) orqali ko'rsatiladi.

Java dekompilyatorlari

4. Shuningdek, kataloglardagi barcha fayllarni ko'rib chiqishingiz va terini okremo olishingiz mumkin.

Java dekompilyatorlari

Keling, sayt va boshqa vositalarda nima borligini ko'rib chiqaylik. Umuman olganda, sayt yomon emas. Albatta xatcho'plar!

APK-Deguard yordamida APK-ni onlayn dekompilyatsiya qiling

Yana bitta cicavia onlayn xizmati chaqiriladi. Pratsyuê aynan shu tamoyil uchun. Biz kiramiz, kerakli faylni saytga olib boramiz va "Yuklash" tugmasini bosing.

APK himoyasi

Eksa saytdagi APK faylini dekompilyatsiya qilish kabi ko'rinadi.

APK himoyasi

APK-Deguard onlayn xizmati avvalgi sayt kabi tashqi ma'lumotlarni yozib olish imkonini beradi. txt, zip va apk formatlash.

APK himoyasi

Ê zavantazhuêtsya bo'lgan dasturni maksimal kengaytirish uchun obmezhennya. Faylning kengaytmasi 16 mb dan oshib ketishida aybdor emas. Xizmat yaxshi va juda foydali, allaqachon uzoq vaqt davomida xatcho'plar qo'yilgan.

APK dekompilyatorlari

Xo'sh, xizmat haqida ikki so'z aytaylik. Qisqasi, nima va rozpovidat haqida, ayniqsa, jim bo'lganlar uchun, APK fayllarni dekompilyatsiya qilish uchun sayt.

APK dekompilyatorlari

Funktsionallik uchun old tomonga amal qiling. Saytdagi katalog va fayllarni ko'rib chiqish imkoniyatisiz kompyuteringizga ma'lumotlarni uzatish imkonini beradi.

Visnovki

G'amgin onlayn xizmat imkoniyatlarini APK fayllarini dekompilyatsiya qilishning oflayn usuli bilan taqqoslab bo'lmaydi, bu ko'proq funktsional va kompilyatsiya qilish imkonini beradi. Ale, maqolaga qarab, qo'shiqchilar uchun vaziyatlarning ishlash usuli - bu imkon qadar ko'proq bo'lishi mumkin.

Hamma narsa kimga. Bugun siz APK fayllarining kelajagi va dekompilyatsiyasi haqida ko'proq bilib oldingiz. Men sizga tsya ínformatsija va zahistu vyd uchun tsí novichki kerak vpevneniy shkidlivih dasturlari da .

Yaqinda men bepul onlayn xizmatlarni konvertatsiya qilishga qanday yordam berishni bilib oldim Android ilovalari viruslar (APK faylini ko'rib chiqing). Bugun biz APK fayllari mavzusini davom ettirmoqdamiz va men sizga APK faylini qanday qilib onlayn dekompilyatsiya qilishni ko'rsataman. Ale for the cob, bilmaganlar uchun men sizga qanday APK dekompilyatsiya va dekompilyatsiya qilishni aytaman va qaysidir ma'noda sizga kerak bo'lishi mumkin. Koderlar, IT-shnikam va boshqa kompyuter ixlosmandlari uchun haqoratli bo'limni o'qish tavsiya etilmaydi! Darhol onlayn xizmatlarni ko'rib chiqing. Sizga "Androidga o'tkazilgan ma'lumotlarni himoya qilish" maqolasi ham ta'sir qilishi mumkin. APK'larni onlayn dekompilyatsiya qilish APK fayllarini dekompilyatorini onlayn qanday dekompilyatsiya qilish Onlayn xizmat APK Decompilers Onlayn xizmati Javadecompilers…

© 2022 androidas.ru - Android haqida hamma narsa