Ilovada Android-ni chetlab o'tish uchun kod mavjud. Kompyutersiz Framaroot orqali Androidda ildiz huquqlarini olish

Uy / Tormozlar

Agar siz Android qurilmangizda parol yoki naqshni unutgan bo'lsangiz, bu vahima uchun sabab emas. Bir nechta tez va oddiy variantlar telefoningiz yoki planshetingizni qulfdan chiqaring Android asosida naqsh kaliti yoki PIN-kodni eslay olmasangiz.

Google hisobi ma'lumotlarini kiritish

Agar smartfon yoki planshet orqali doimiy aloqa mavjud bo'lsa simsiz tarmoq, keyin siz oddiygina kiritish orqali himoyani chetlab o'tish muammosini hal qilishingiz mumkin E-pochta manzili va parol. Ekran qulfini ochish uchun 5 ta muvaffaqiyatsiz urinishdan so'ng bildirishnoma paydo bo'ladi. Unga bosing va paydo bo'lgan oynada Google hisobingiz foydalanuvchi ma'lumotlarini kiriting.

Agar parolingizni unutgan bo'lsangiz nima qilish kerak hisob Google? To'g'ridan-to'g'ri qo'llab-quvvatlash yordamida hisobingizga kirishni tiklash tartibini bajaring.

Hard Reset orqali qulfdan chiqarish

Ushbu usuldan foydalanganda barcha shaxsiy ma'lumotlar o'chiriladi va smartfon tizimi zavod sozlamalariga qaytariladi (SD-karta fayllari ta'sir qilmaydi). Jarayonni bajarishdan oldin, foydalanuvchi ma'lumotlarini tiklashingiz mumkin bo'lgan zaxira faylga ega bo'lish tavsiya etiladi.

Qayta tiklashning eng oson usuli - qurilmangiz sozlamalarida joylashgan yordam dasturidan foydalanish. Tizimga kirish bloklanganligi sababli siz quyidagi amallarni bajarishingiz kerak bo'ladi:


Har bir foydalanuvchi harakati (PIN-kod, grafik kalit yaratish) tizimda ma'lum fayllarni yaratish orqali aks ettiriladi. Xulosa qilishimiz mumkinki, agar siz parol ma'lumotlarini o'chirib tashlasangiz, foydalanuvchi ma'lumotlarini yo'qotmasdan qurilmani qulfdan chiqarishingiz mumkin.

Ko'pgina foydalanuvchilar Android-ni kompyuter orqali qanday qulfdan chiqarishni qiziqtiradilar. Buni amalga oshirish uchun sizga ADB yordam dasturi, shuningdek, USB nosozliklarni tuzatish rejimiga ulangan gadjetingiz kerak bo'ladi. Quyidagi algoritmga amal qiling:


adb shellrm /data/system/gesture.key

rm /data/system/locksettings.db;

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

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

Qurilmani qayta yoqish

Agar biron sababga ko'ra Androidni buzishning boshqa usullari mavjud bo'lmasa, a. Buni bir necha usul bilan amalga oshirish mumkin:

  • USB kabelidan foydalangan holda kompyuter orqali;
  • Har qanday Android qurilmasida tiklash menyusi orqali. Mikrodastur faylini bevosita telefoningiz yoki planshetingiz xotirasiga yuklab olish uchun kompyuterdan foydalanishingiz kerak.

IN Ushbu holatda nafaqat yuklab olish mumkin bo'ladi rasmiy proshivka, shuningdek, dizayn, himoya funktsiyalari, drayverlar, yordamchi dasturlar va boshqalarni o'zgartirish mumkin bo'lgan turli xil maxsus variantlar.

gesture.keyni olib tashlash (faqat grafik kalit bilan qulflash uchun ishlaydi)

Ushbu usul yordamida Android telefoni yoki planshetini qulfdan chiqarish ildiz huquqlarisiz va. Agar siz ushbu shartlarga javob bermasangiz, himoyani chetlab o'tishning boshqa usulini tanlang. Grafik kalit quyidagicha tiklanadi:


Yuqorida tavsiflangan usullarning ko'pchiligi bootloader qulfini ochmasdan mumkin emas. Buni amalga oshirish orqali siz ildiz huquqlariga ega bo'lasiz va o'zingizning dasturiy ta'minot versiyasini yoki maxsus tiklashni o'rnatishingiz mumkin bo'ladi, shuning uchun Android blokirovkasini buzishdan oldin, yuklovchi himoyasini olib tashlashingiz kerak. PIN-kodni/naqshni unutib qo'ygan holatlarga to'liq tayyor bo'lish uchun buni darhol qilish tavsiya etiladi.

Qulfni ochish algoritmi:


Shundan so'ng, bootloaderni faollashtirish jarayoni boshlanadi va qurilma ekranida paydo bo'ladi. Jarayon tugashini kuting va keyin qurilmangizni qayta ishga tushiring. Bootloader qulfini ochish tugallandi. Yuqorida tavsiflangan maslahatlar deyarli barcha holatlar uchun javob beradi, chunki har bir kishi o'z muammoli vaziyatiga ega bo'lishi mumkin. Umid qilamizki, bizning maslahatimiz muammodan tez va to'g'ri xalos bo'lishga yordam beradi.

Nexus7_2013 misolidan foydalanib, kompyuter yordamisiz superfoydalanuvchi huquqlarini olish.

ko'rsatmalar

  • 1. Towelroot ilovasini yuklab oling.
  • 2. Sozlamalar/xavfsizlik bo'limida noma'lum manbalardan o'rnatishga ruxsat beruvchi quti tanlanganligini tekshiring.
  • 3. Quyidagi ogohlantirishga e'tibor bermasdan o'rnating:
  • {
    Ushbu ilovani o'rnatishni tavsiya etmaymiz:
    sochiq ildizi
    Unda Android xavfsizligini chetlab o'tish uchun kod mavjud.
    (belgilash qutisi) Baribir o'rnatish (belgilanmagan)
    (tugma) O'rnatmang
    (tugma) Baribir oʻrnating
    }
  • 4. Tegishli katakchani belgilang va tegishli tugmani bosing.
  • 5. Ilovani oching va quyidagi tugmachani toping:
    "Buni ra1n qiling"
  • 6. Biz uning joylashuvini diqqat bilan eslaymiz, shundan beri biz Talkbackni to'xtatib turishimiz kerak, aks holda biz xatoga yo'l qo'yamiz.
  • 7. Global kontekst menyusi orqali TalkBack-ni vaqtincha o'chiring.
  • 8. Biz (5 va 6) nuqtalarda eslab qolgan joyni faollashtiramiz.
  • Bu yerda ikkita yorliq kerak emas, bir marta bosish kifoya.
  • Agar sizning qo'lingizda ko'ruvchi odam bo'lsa, undan ushbu oddiy harakatni bajarishni so'rash maqbul bo'ladi.
  • 9. Biz biroz vaqt kutamiz, taxminan 10-15 soniya, agar qurilma qayta ishga tushmasa, biz buni o'zimiz qilamiz.
  • 10. Supersu ilovasini o'rnating.
  • 11. Supersu-ni ishga tushiring. va biz ikkilik faylni yangilash taklifiga rozimiz.
  • 12. Agar barcha qadamlar to'g'ri bajarilgan bo'lsa, u holda telefon endi superfoydalanuvchi huquqlaridan foydalanishi mumkin.

Eslatmalar:

  • Towelroot uchun qo'llab-quvvatlanadigan qurilmalar ro'yxati. joylashgan
  • Agar supersu ishga tushirilgandan keyin. siz xabar olasiz -
    "ikkilik faylni yangilab bo'lmadi"
    keyin qurilmangizni qayta yoqing va qaytadan urinib ko'ring.
  • Agar bu sizga yordam bermasa, unda siz buni amalga oshirish uchun superfoydalanuvchi huquqlarini olmagan bo'lsangiz, "Make it ra1n" tugmachasini faollashtirish uchun ko'ruvchi odamning yordami bilan qayta urinib ko'ring.
  • Superuser huquqlarini o'rnatishdan oldin, noto'g'ri foydalanish va qurilmangiz uchun kafolatni bekor qilish bilan bog'liq barcha muammolarni diqqat bilan o'rganing...

Xavfsizlik blokirovkasi tufayli Android-ga ilovalar va o'yinlarni o'rnatolmayman.. Bu muammo emas, ushbu maqolada siz o'rnatishga kirishni qanday ochishni o'rganasiz.

Agar siz Internetdan o'yinlar yoki ilovalarni yuklab olgan bo'lsangiz va ularni Android-ga o'rnatmoqchi bo'lsangiz, buni ko'rishingiz mumkin Android ekrani shunga o'xshash xabar: "Xavfsizlik nuqtai nazaridan, qurilmada noma'lum manbalardan ilovalarni o'rnatish bloklangan." Agar ilovani boshqa telefon, kompyuter, noutbuk, planshet yoki boshqa qurilmadan Bluetooth yoki Wi-Fi orqali olgan bo'lsangiz, o'rnatish bloklanishi ham mumkin. Bularning barchasi, albatta, Android-ning xavfsizligi uchun amalga oshiriladi, chunki endi siz telefoningizni blokirovka qilish va uni qulfdan chiqarish uchun egasidan pul undirish mumkin bo'lgan virusli ko'plab ilovalarni yuklab olishingiz va o'rnatishingiz mumkin. Agar sizda yangi smartfon yoki planshet bo'lsa Android versiyalari, keyin quyida siz bilan sahifaga havola topasiz batafsil ma'lumot noma'lum ilovalarni o'rnatish yoki bloklash haqida.

Hech qachon Android-ga noma'lum manbalardan ilovalar va o'yinlarni o'rnatmang, ayniqsa ularni Internetdan yuklab olgan bo'lsangiz. Ammo fayllar ishonchli manbalardan yoki siz ishonadigan boshqa Android-dan Bluetooth orqali olingan ilovalardan ekanligini bilsangiz, noma'lum ilovalardan o'rnatishni blokdan chiqarishingiz va Android-da o'rnatishni davom ettirishingiz mumkin.

Endi ko'ramiz Android-ga noma'lum manbalardan ilovalarni o'rnatishga qanday ruxsat berish kerak. Ilovalar yoki o'yinlarni o'rnatishdan oldin, Android sozlamalariga o'ting va xavfsizlik elementini qidiring, so'ngra elementni toping noma'lum manbalar va yonidagi katakchani belgilang. Endi siz Android-ga xavfsizlik sababli bloklangan noma'lum manbalardan ilovalarni o'rnatishingiz mumkin. Keyin yana katakchani olib tashlashingiz mumkin va shu bilan siz yana keraksiz ilovalarni o'rnatishni bloklaysiz.

Bundan tashqari, agar siz allaqachon o'rnatishni boshlagan bo'lsangiz va xavfsizlik nuqtai nazaridan qurilmangizda o'rnatish taqiqlangani haqidagi xabarni ko'rsangiz, darhol o'rnatishga ruxsat berishingiz mumkin. Ekranda xabar paydo bo'lganda, uni bosish orqali sozlamalarga havola ham mavjud, biz darhol xavfsizlik elementiga o'tamiz va element yonidagi katakchani belgilashimiz mumkin noma'lum manbalar va siz boshlagan o'rnatishni davom ettiring. Bunday o'rnatishdan so'ng, xavfsizlik sozlamalarida katakchani saqlamang, ya'ni har safar ilovalarni o'rnatishga ruxsat berishingiz kerak.

Virusni yuqtirish xavfi yo'qligiga ishonchingiz komil bo'lmasa, noma'lum manbalardan ilovalarni o'rnatmang. Ilovalar hisobingizdan pul yechib olishi, qurilmangizni bloklashi yoki qurilmangizga zarar etkazishi mumkin.

Ushbu maqola yordam berdimi yoki yo'qmi haqida sharh qoldirishni unutmang, iltimos, xuddi shunday bo'lishi uchun qurilma modelini ko'rsating. foydali ma'lumotlar Android foydalanuvchilari uchun.

  • Umid qilamanki, ushbu maqola sizga yordam berdi va siz ma'lumot topdingiz noma'lum manbalardan bloklangan ilovalarni android-ga qanday o'rnatish kerak.
  • Sizdan o'zaro yordam ko'rsatishingizni va foydali maslahatlar bilan bo'lishishingizni so'raymiz.
  • Javobgarligingiz, o'zaro yordamingiz va foydali maslahatingiz uchun rahmat!!!


06-08-2019
soat 00 48 min.
Xabar:
Assalomu alaykum, "Android-da ilovalar va o'yinlarni o'rnatishda qurilmada noma'lum manbalardan o'rnatish bloklanganligi to'g'risida" xabar paydo bo'ladi. tavsiyalarni o'qing d

13-06-2019
soat 09 19 min.
Xabar:
Administratorni qanday olib tashlash mumkin?

06-01-2018
18:00 24 min.
Xabar:
Rahmat! Xo'sh, menda muammo bor, agar ular yozsa nima qilish kerakligini ayta olasizmi: Paketni tahlil qilishda xato. Nima qilsa bo'ladi?

02-01-2018
soat 15 46 min.
Xabar:
Yordam bering, telefon Play Store'dan bo'lmagan dasturni o'rnatishni blokladi, men uni Chrome'dan yuklab oldim, ochishni bosdim, lekin o'rnatilmadi.

18-12-2017
soat 11 11 min.
Xabar:
Salom, "Android-da ilovalar va o'yinlarni o'rnatishda qurilmada noma'lum manbalardan o'rnatish bloklanganligi to'g'risida xabar paydo bo'ladi" mavzusida tasvirlangan hamma narsa. Men tavsiyalarni o'qib chiqdim va xuddi shunday qildim

31-10-2017
23:00 05 min.
Xabar:
Ayyorlik shundaki, mening LG L70 hatto taqiqni olib tashlash uchun katakchani belgilashga ham ruxsat bermaydi...

26-09-2017
soat 00 27 min.
Xabar:
Men tasdiq belgisini bosa olmayman, tasdiq belgisini bosganimda, u men uchun yoqilmadi

11-09-2017
soat 03 37 min.
Xabar:
Yoki siz maqolani shunday yozishingiz mumkin: Ilovalar yoki o'yinlarni o'rnatishdan oldin, ga o'ting Android sozlamalari va xavfsizlik elementini qidiring, so'ngra noma'lum manbalar elementini toping va yonidagi katakchani belgilang.

28-03-2017
.. va hayot uzoqroq bo'ladi .. sizning snotsiz 6 paragrafda.
Xabar:
soat 20 06 min. Menda "Noma'lum manbalardan dasturiy ta'minotni o'rnatish" yonidagi katakcha bor, lekin telefon hali ham o'rnatishni bloklaydi. Meizu telefoni

17-12-2016
Eslatma 3. Bu yaxshimi? Men hech qachon Meizu bilan ishlamaganman.
Xabar:
soat 20 52 min. Ammo menda yana bir muammo bor va 15-30 daqiqadan so'ng bu element doimiy ravishda noma'lum manbadan belgilanmoqda. Men nima qilmaganman - Qayta tiklashdan zavod sozlamalariga, antivirus dasturlari

05-12-2016
Men uni o'rnatdim, lekin u tiqilib qoladi. Yordam bering!
Xabar:
22:00 52 min.

05-12-2016
Sofiya, dasturni sozlamalar orqali o'chirib ko'ring va u erda o'chirilishi yoki butunlay o'chirilishi mumkin bo'lgan ilovalar.
Xabar:
22:00 05 min.

31-10-2016
Yordam bering! Men o'yinni noma'lum manbadan yuklab oldim va endi uni o'chira olmayman ((
Xabar:
21 soat 47 min.

(Proshivka xatosi tufayli) sozlamalardagi "Xavfsizlik" yorlig'iga kirish imkonim yo'qligi bilan bog'liq muammo bor. Ushbu yorliqni kiritgandan so'ng, u uni qulga tashlaydi. Jadvalda "Sozlamalar ilovasi javob bermayapti" kabi xabar bilan "Sozlamalar" orqali "chap" ilovalarni o'rnatishni qanday faollashtira olmayman? Kompyuterdan foydalanmasdan Android uchun ildiz huquqlariga ega bo'lish va o'rganish qiyin bo'lgan dasturiy vositalardan foydalanishga murojaat qilish juda qiyin. mavjud imkoniyat

. Ushbu maqolada biz sizga Framaroot Android ilovasidan foydalangan holda ikki oddiy qadamda Superuser huquqlarini qanday olish kerakligini aytib beramiz.

Ildiz huquqlarini olishning tavsiflangan usulining asosiy afzalligi, birinchi navbatda, uning soddaligi, shuningdek, ushbu jarayonni yakunlash mumkin bo'lgan qisqa vaqt. Biz ko'rsatmalarga amal qilamiz, lekin birinchi navbatda muhim ogohlantirish bor.

Muhim! Quyida tavsiflangan manipulyatsiyalar ma'lum xavflarni o'z ichiga oladi! Har bir harakat, shu jumladan quyidagi ko'rsatmalarga rioya qilish, foydalanuvchi tomonidan o'z xavfi va xavf ostida amalga oshiriladi. Resurs ma'muriyati yuzaga kelishi mumkin bo'lgan salbiy oqibatlar uchun javobgar emas.

Framarut ilovasi yuklab olingandan yoki qurilma xotirasiga yoki xotira kartasiga ko'chirilgandan so'ng, mutlaqo oddiy apk faylidir. O'rnatish hech qanday maxsus harakatlarni talab qilmaydi, hamma narsa standartdir.

2-qadam: ildiz huquqlarini olish

Biz sizni Android ilovalari qanchalik oson ekanligini aniq ko'rsatadigan bir qator maqolalar bilan tanishtirdik. Buning uchun sizga disassembler ham kerak emas, Java va Smali tilini yuzaki bilish kifoya. Shuning uchun, agar arizangiz juda mashhur bo'ladi, biling: u o'g'irlanadi va oddiy manipulyatsiyalar orqali pullik funktsiyalar faollashtiriladi. Va agar siz uni reklama yordamida monetizatsiya qilishga qaror qilsangiz, u o'chiriladi.

Ilovani himoya qilish qiyin, ammo bu mumkin. Avvalo, darhol bunga arziydi Pro/Lite tarqatish modelidan voz keching. Ilovani smartfondan olib tashlash juda oson, shuning uchun o'g'ri dasturni faqat bir marta sotib olishi kerak bo'ladi, keyin esa uni qanday bo'lsa shunday tarqatish mumkin. Ikkinchidan, siz ehtiyot bo'lishingiz kerak kodni teskari himoya qilish. Java kodini dekompilyatsiya qilish oson va ikkilik kodni o'zgartirish maxsus ko'nikmalar yoki vositalarni talab qilmaydi. Uchinchidan, siz hatto muvaffaqiyatli buzilgan taqdirda ham dastur ishlamasligiga ishonch hosil qilishingiz kerak. Keyin xaker bir vaqtning o'zida ikkita muammoni hal qilishi kerak bo'ladi: dasturni buzish va buzilgan versiyani ishlashga imkon beradi.

Shunday qilib, biz Pro versiyasidan voz kechamiz va kurashni boshlaymiz.

Kodni yashirish va xiralashtirish

Ilova kodini teskari tomondan himoya qilishning eng yaxshi usuli chalkashlik, boshqacha qilib aytganda, bayt-kodni chalkashtirib yuborish, shuning uchun uni teskari o'zgartiruvchining tushunishi chidab bo'lmas darajada qiyin. Buni amalga oshirish uchun bir nechta vositalar mavjud. Eng oddiy, ammo baribir samaralisi Android Studio-ga kiritilgan. Bu ProGuard.

Uni faollashtirish uchun build.gradle faylining android → buildTypes → relizlar bo‘limiga minifyEnabled true qatorini qo‘shish kifoya:

android(...buildTypes(release(minifyEnabled true)...))

android (

. . .

qurilish turlari(

ozod qilish (

minifyEnabled rost

. . .

Shundan so'ng, Android Studio ProGuard orqali barcha "chiqarish" tuzilmalarini o'tkazishni boshlaydi. Natijada, dastur yanada ixcham bo'ladi (ishlatilmagan kodni olib tashlash hisobiga) va shuningdek, teskari harakatdan himoyalanish darajasini oladi. "Ba'zilar" ProGuard barcha ichki sinflar, usullar va maydonlarning nomlarini bir yoki ikkita harf kombinatsiyasi bilan almashtiradi degan ma'noda. Bu, albatta, dekompilyatsiya qilingan/demontaj qilingan kodni tushunishni ancha qiyinlashtiradi.


Keyingi qadam - string shifrlash. Bu, ayniqsa, ilova ichida har qanday nozik ma'lumotlarni saqlasangiz foydali bo'ladi: identifikatorlar, kalitlar, REST API so'nggi nuqtalari. Bularning barchasi xakerga kodingizni boshqarishga yoki undan muhim ma'lumotlarni chiqarib olishga yordam beradi.

Siz satrlarni shifrlashingiz mumkin turli yo'llar bilan, masalan, Stringer yoki DexGuard vositalaridan foydalanish. Afzallik: string shifrlashni amalga oshirish uchun mavjud kodning to'liq avtomatlashtirilgan modifikatsiyasi. Kamchilik: kompaniyalar uchun maqbul narx, lekin mustaqil ishlab chiquvchi uchun juda yuqori.

Shuning uchun biz buni o'zimiz qilishga harakat qilamiz. Eng oddiy holatda, Java yordamida string shifrlash quyidagicha amalga oshiriladi:

umumiy statik bayt encryptString(String xabari, SecretKey secret) Istisnoni tashlaydi ( Cipher shifr = null; cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secret); nal(Shifrni qaytaring.do) message.getBytes("UTF-8"));

umumiy statik bayt encryptString (String xabari, SecretKey secreti) Istisno (

Shifr shifr = null ;

cipher .init (Cipher .ENCRYPT_MODE , maxfiy );

shifrni qaytarish .doFinal (xabar . getBytes ( "UTF-8" ) );

Va dekodlash quyidagicha:

umumiy statik String decryptString(bayt shifrlash matni, SecretKey siri) Istisnoni tashlaydi ( Shifr shifr = null; shifr = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, String(secret) yangi); .doFinal(chipherText), "UTF-8" )

umumiy statik String decryptString (bayt shifrlangan matn, SecretKey siri) Istisno (

Shifr shifr = null ;

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

shifr .init ( shifr . DECRYPT_MODE , maxfiy );

yangi Stringni qaytarish (shifr . doFinal ( cipherText ) , "UTF-8" );

Kalit yaratish uchun bitta qator kifoya qiladi:

umumiy statik SecretKey generateKey(String password) Istisnoni chiqaradi (qaytish maxfiy = new SecretKeySpec(password.getBytes(), "AES"); )

umumiy statik SecretKey generateKey (String parol) Istisno (

qaytish siri = yangi SecretKeySpec(password.getBytes(), "AES");

Gap shundaki, Java-da oddiy ish stoli/mobil ilovasini yozish, u sizning barcha satrlaringizni kirish sifatida qabul qiladi va ularning shifrlangan versiyalarini chiqish sifatida chiqaradi. Keyinchalik, siz ushbu satrlarni asl ilovalar o'rniga asosiy ilovaga kiritasiz va ularga kirish mumkin bo'lgan joylarda decryptString() funktsiyasini chaqiring.

Natijada, tajovuzkor dasturni dekompilyatsiya qilish orqali shifrlangan satrlarni ko'ra olmaydi. Lekin, albatta, u sizning shifrlovchingizning dekompilyatsiya qilingan kodi asosida oddiy shifrlovchini yozishi mumkin. Boshqacha qilib aytganda, bu panatseya emas, lekin simli shifrlash murakkablikning yana bir qatlamini qo'shadi.

Siz yanada uzoqroqqa borishingiz va AppSolid kabi keng qamrovli Android ilovalarini himoya qilish vositalaridan birini ishlatishingiz mumkin. Bu yana qimmat, lekin u butun dasturni shifrlash imkonini beradi. Bu haqiqatan ham ko'plab reverserlarni qo'rqitishi mumkin, biroq bir qator vositalar, jumladan pullik Java dekompilyatori JEB mavjud bo'lib, ular bunday himoyani avtomatik ravishda olib tashlashi mumkin.

Bundan tashqari, ilovangizni ko'plab kichik modullarga ajratishga harakat qilishingiz mumkin, chunki men allaqachon Android uchun modulli ilovalarni yozish maqolasida yozgan edim. Bu o'z-o'zidan himoya usuli emas va bu reverserning ishiga deyarli to'sqinlik qilmaydi. Ammo u har xil bo'ladi avtomatlashtirilgan tizimlar dastur yorilishi. Ular modulda joylashgan kodni qayerdan izlash kerakligini tushuna olmaydilar.

Xo'sh, oxirgi narsa: koddan loggerga qilingan barcha qo'ng'iroqlarni, ya'ni Log.d(), Log.v() va boshqalarga qo'ng'iroqlarni olib tashlash (sharh berish) kerak. Aks holda, tajovuzkor ushbu ma'lumotdan dastur mantig'ini tushunish uchun foydalanishi mumkin bo'ladi.

Buzilgan ilovani buzing

Mayli, biz reverserning hayotini biroz buzdik. Buni yana qilish vaqti keldi! Ammo ilova buzilganligini qanday aniqlash mumkin? Aniqrog'i, qanday qilib o'zini o'zi bilib oladi? Axir, "buzilgan" va "buzilgan" tushunchalari faqat bizning boshimizda mavjud, ya'ni bu juda yuqori darajadagi tushunchalar bo'lib, ularni algoritmik tarzda tasvirlab bo'lmaydi.

Shunday, lekin unday emas. Gap shundaki, APK faylida saqlaydigan metama'lumotlar to'plami mavjud nazorat summalari paketdagi barcha fayllar va metama'lumotlarning o'zi ishlab chiquvchi kaliti bilan imzolanadi. Agar siz ilovani o'zgartirsangiz va uni qayta paketlasangiz, paket metama'lumotlari o'zgaradi va paket yana imzolanishi kerak bo'ladi. Va reverserda ishlab chiquvchi kalitingiz yo'qligi va bo'lishi mumkin emasligi sababli, u tasodifiy yaratilgan yoki test kaliti deb ataladigan kalitdan foydalanadi.

Android-ning o'zi bunday dasturni osongina yutib yuboradi (u barcha mumkin bo'lgan Android ishlab chiquvchilarining barcha raqamli imzolari ma'lumotlar bazasini saqlamaydi), ammo bizda o'zimiz bor. raqamli imzo, va biz buni tekshirishimiz mumkin!

Raqamli imzoni tekshirish

Aslida, usul juda oddiy. Ilovaga paketning joriy raqamli imzosi kalitining xeshini oladigan kodni kiritishingiz va uni avval saqlangan bilan solishtirishingiz kerak. Ular mos keladi - dastur qayta paketlanmagan (va buzilgan), yo'q - biz signal beramiz.

Boshlash uchun dasturga quyidagi kod qismini kiriting (qanchalik chuqur yashirsangiz, shuncha yaxshi):

umumiy statik String getSignature(Kontekst konteksti) ( String apkSignature = null; urinib ko'ring ( PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); uchun (Imzo imzosi:packageInfo.MessaestDigs) = MessageDigest.getInstance("SHA"); apkSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT("DEBUG", "SIGNATURE:"); + apkSignature);

umumiy statik String getSignature (Kontekst konteksti) (

String apkSignature = null ;

harakat qilib ko'ring (

PackageInfo packageInfo = context.getPackageManager().getPackageInfo(

context.getPackageName(),

PackageManager.GET_SIGNATURES

uchun (Imzo imzosi : packageInfo .signatures ) (

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

md.update(signature.toByteArray());

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

Log .e ("DEBUG" , "IMZO: " + apkSignature );

) tutmoq (e istisno e) ( )

apkSignatureni qaytarish;

Ilovani yarating, ishga tushiring va ijro jurnaliga qarang. U erda siz SIGNATURE qatorini ko'rasiz: 478uEnKQV+fMQT8Dy4AKvHkYibo=. Bu hash. U nafaqat eslab qolishi kerak, balki dastur kodiga doimiy sifatida joylashtirilishi kerak, masalan, SIGNATURE nomi ostida. Endi koddan Log.e... qatorini olib tashlang va quyidagi usulni qo'shing:

umumiy statik mantiqiy tekshiruvSignature(Kontekst konteksti) ( SIGNATURE.equals(getSignature(context)); )

umumiy statik mantiqiy tekshiruv imzosi (kontekst konteksti) (

qaytish SIGNATURE .teng ( getSignature ( kontekst ) );

U faqat saqlangan xeshni kalitning xeshi bilan tekshiradi hozirgi paytda ariza imzolangan. Raqamli imzo sizniki bo'lsa (ilova qayta tiklanmagan bo'lsa) funksiya rost, o'zgartirilgan bo'lsa esa noto'g'ri qiymatini qaytaradi. Ikkinchi holatda nima qilish sizga bog'liq. Siz shunchaki os.exit(0) yordamida dasturni tugatishingiz mumkin yoki uni ishga tushirishingiz mumkin, masalan, ishga tushirilmagan ob'ektdagi usulni chaqirish yoki mavjud bo'lmagan massiv qiymatiga kirish orqali.

Ammo esda tuting: tajovuzkor raqamli imzoni tekshirish kodini shunchaki kesib tashlashi mumkin va u hech qachon ishlamaydi (bu quyida keltirilgan kod uchun ham amal qiladi). Shuning uchun, uni ko'rinmas joyga yashiring va yuqorida ko'rsatilganidek, asl kalitning xeshini shifrlang.


O'rnatish manbasini tekshirish

Himoya qilishning yana bir usuli - dastur qayerdan o'rnatilganligini aniqlash. Bu erda mantiq oddiy: agar o'rnatish manbai Play Store bo'lsa, unda hamma narsa yaxshi, bu asl, qadoqlanmagan dastur. Agar yo'q bo'lsa, Varez forumdan yuklab oldi va xotira kartasidan yoki qora bozordan o'rnatdi.

Bir qatorda dastur qayerdan o'rnatilganligini bilib olishingiz mumkin va buni amalga oshiradigan funktsiyaning o'zi quyidagicha ko'rinishi mumkin:

umumiy statik boolean checkInstaller(Kontekst konteksti) ( yakuniy String oʻrnatuvchisi = context.getPackageManager().getInstallerPackageName(context.getPackageName()); oʻrnatuvchini qaytaring!= null && installer.startsWith("com.android.vending"); )

umumiy statik mantiqiy tekshiruv o'rnatuvchisi (kontekst konteksti) (

yakuniy String o'rnatuvchisi = kontekst .getPackageManager() .getInstallerPackageName(context .getPackageName()) ;

o'rnatuvchini qaytarish != null & amp; & amp; installer.startsWith("com.android.vending");

Odatdagidek: rost - hammasi yaxshi, yolg'on - Xyuston, bizda muammolar bor.

Emulyatorni aniqlash

Ba'zi ilovalarni teskari usullar emulyatordan foydalanishni o'z ichiga oladi. Shuning uchun, dasturga virtual muhitda ishlayotganligini tekshiradigan kodni qo'shish foydali bo'ladi. Buni ba'zi tizim o'zgaruvchilari qiymatlarini o'qish orqali amalga oshirish mumkin. Masalan, standart Android emulyatori Studio ushbu o'zgaruvchilar va qiymatlarni o'rnatadi:

ro.hardware=oltin baliq ro.kernel.qemu=1 ro.product.model=sdk

ro .apparat = oltin baliq

ro .kernel .qemu = 1

ro .mahsulot .model = sdk

Shuning uchun, ushbu o'zgaruvchilarning qiymatlarini o'qib chiqqandan so'ng, kod emulyatorda bajarilgan deb taxmin qilishimiz mumkin:

ommaviy statik mantiqiy tekshiruvEmulator() ( sinab ko'ring ( mantiqiy oltin baliq = getSystemProperty("ro.hardware").contains("oltin baliq"); mantiqiy emu = getSystemProperty("ro.kernel.qemu").length() > 0; mantiqiy sdk = getSystemProperty("ro.product.model").contains("sdk"); if (emu || goldfish || sdk) ( return true; ) ) catch (Exception e) () return false ) private static String getSystemProperty ( String name) Exception ni chiqaradi ( Class sysProp = Class.forName("android.os.SystemProperties"); return (String) sysProp.getMethod("get", new Class(String.class)).invoke(sysProp, new Object () ismi));

umumiy statik mantiqiy tekshiruvEmulator() (

harakat qilib ko'ring (

© 2024 ermake.ru -- Kompyuterni ta'mirlash haqida - Axborot portali