Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah analisis terbalik dan mekanisme perlindungan Android APP?

Apakah analisis terbalik dan mekanisme perlindungan Android APP?

WBOY
WBOYke hadapan
2023-05-20 16:20:351612semak imbas

Ingin mengetahui kaedah perlindungan biasa untuk Apl Android dan kaedah analisis terbalik yang sepadan?

Dalam perkongsian ini, pelbagai aspek keselamatan APP Android dibincangkan, termasuk kod yang dikelirukan, pengerasan Dex keseluruhan, pengerasan Dex belah dan pengerasan mesin maya. Kandungan ini telah menjadi trend utama dalam perlindungan keselamatan Apl Android di China sejak beberapa tahun kebelakangan ini.

1. Kod dikaburkan

Kod Java sangat mudah untuk dinyahkompilasi Sebagai bahasa yang ditafsirkan silang platform, kod sumber Java dihimpunkan ke dalam "bytecode" perantaraan dan disimpan dalam fail kelas. Disebabkan keperluan untuk merentas platform, kod bait ini mengandungi sejumlah besar maklumat semantik dan mudah disusun ke dalam kod sumber Java. Pembangun sering mengelirukan fail kelas yang disusun untuk melindungi kod sumber Java dengan lebih baik.

Obfuscation adalah untuk menyusun semula dan memproses atur cara yang dikeluarkan supaya kod yang diproses melengkapkan fungsi yang sama seperti kod pra-diproses Sukar untuk mengetahui semantik sebenar program. ProGuard ialah projek sumber terbuka yang boleh mengelirukan, mengurangkan dan mengoptimumkan bytecode.

Carta alir pemprosesan Proguard adalah seperti berikut, termasuk empat pautan utama: pemampatan, pengoptimuman, pengeliruan dan pra-pemeriksaan:

Apakah analisis terbalik dan mekanisme perlindungan Android APP?

Mampatan (Pengecutan): Kesan dan alih keluar kelas, medan, kaedah dan atribut (Atribut) yang tidak berguna dalam kod

Optimumkan (Optimize): Optimumkan kod bait dan alih keluar arahan yang tidak berguna. Optimumkan kod, kelas nod bukan masukan akan ditambah dengan peribadi/statik/akhir, parameter yang tidak digunakan akan dipadamkan dan beberapa kaedah mungkin menjadi kod sebaris

Obfuscate: gunakan a, b , c, d seperti itu; nama pendek dan tidak bermakna, menamakan semula kelas, medan dan kaedah;

Dalam perkongsian itu, Zhong Yaping menunjukkan contoh kesan Apk selepas menggunakan Proguard untuk menyahkompilasi Dex2jar:

Selepas pemprosesan ProguardApakah analisis terbalik dan mekanisme perlindungan Android APP?

Apakah analisis terbalik dan mekanisme perlindungan Android APP?
Proguard obfuscator bukan sahaja boleh melindungi kod, tetapi juga menyelaraskan saiz atur cara yang disusun dan mengurangkan penggunaan memori.

Analisis terbalik kod yang dikelirukan

Zhong Yaping berkongsi alat asing yang dipanggil DEGUADR, yang menggunakan kaedah statistik untuk menyahkelirukan kod untuk penyahkompiunan. Walaupun ketepatan alat ini tidak 100%, ia masih boleh membantu sebahagiannya dalam menyahkompilasi kod.

Apakah analisis terbalik dan mekanisme perlindungan Android APP?
Contoh penggunaan DEGUADR untuk menyahkelirukan:


Apakah analisis terbalik dan mekanisme perlindungan Android APP?
com.xxxxx. Laman web common.util.CryptoUtil juga menyediakan perkhidmatan penyahkompilasi, seperti yang ditunjukkan di bawah:

java.lang.String a(byte[]) -> encodeToStringjava.lang.String a(byte[],boolean,java.lang.String) -> a byte[] a(byte[],byte[]) -> encrypt byte[] b(byte[]) -> getKey byte[] b(byte[],byte[]) -> decrypt byte[] d(java.lang.String) -> getKey java.lang.String a(byte,char[]) -> a java.lang.String a(java.io.File) -> getHash java.lang.String a(java.lang.String) -> c java.lang.String b(java.lang.String) -> encode

2. Pengukuhan Dex Keseluruhan

Dengan pembangunan berterusan teknologi keselamatan, "teknologi pengukuhan" baru ” telah nampaknya meningkatkan kekuatan perlindungan Android. Pengukuhan DEX adalah untuk mengemas dan melindungi fail DEX untuk mengelakkannya daripada dipecahkan oleh alat penyahkompilasi statik dan membocorkan kod sumber Yang pertama muncul ialah penyelesaian teknologi pengukuhan keseluruhan.

Apakah analisis terbalik dan mekanisme perlindungan Android APP?
Prinsip teknologi tetulang keseluruhan adalah seperti yang ditunjukkan di atas, termasuk menggantikan application/classes.dex, menyahsulit/memuatkan secara dinamik classes.dex asal, memanggil kaedah berkaitan aplikasi asal, Tetapkan objek/nama aplikasi asal kepada pembolehubah yang berkaitan dalam sistem. Langkah paling kritikal ialah menyahsulit/memuatkan classes.dex asal secara dinamik, menyulitkan fail kod sumber dex akhir yang disusun, dan kemudian menggunakan permulaan aplikasi projek baharu dalam projek baharu untuk menyahsulit kod projek asal dan memuatkannya ke dalam memori, dan maka Proses semasa digantikan dengan kod yang dinyahsulit, yang boleh menyembunyikan kod sumber dengan baik dan menghalang penyahkompilasi langsung.

Analisis terbalik tetulang Dex secara keseluruhan

Terdapat dua kaedah yang biasa digunakan untuk analisis terbalik tetulang Dex keseluruhan. Salah satunya ialah mencari dexn035 secara ganas dalam ingatan dan kemudian membuangnya. Berikut ialah contoh kesan pada sistem 32-bit:

Apakah analisis terbalik dan mekanisme perlindungan Android APP?
Kaedah lain ialah melalui HookdvmDexFileOpenPartial(void* addr, int len, DvmDex**) .

3. Peneguhan Split Dex

Apabila skala perniagaan berkembang pada tahap tertentu, fungsi baharu dan perpustakaan kelas baharu sentiasa ditambah Walaupun kod berkembang dengan cepat, saiz pakej apk yang sepadan juga meningkat. Dengan peningkatan pesat, penyelesaian tetulang keseluruhan yang ringkas tidak dapat memenuhi keperluan keselamatan dengan baik Selain daripada penyelesaian tetulang keseluruhan, penyelesaian teknikal tetulang berpecah telah muncul.

Apakah analisis terbalik dan mekanisme perlindungan Android APP?

Tetapi seperti yang ditunjukkan di atas, apabila fail dex diperkukuh, beberapa data yang hilang akan digantikan dengan data yang dinyahsulit Kadangkala, Penyahpasangan jenis ini juga boleh membawa kepada data yang tidak tepat. Anda perlu memahami struktur data fail dex untuk menentukan jenis data yang harus dipecahkan.

Struktur fail Dex sangat kompleks. Ilustrasi berikut memilih kandungan yang lebih penting. Sebenarnya, fail dex ialah fail yang dipasang dengan kelas sebagai teras Bahagian yang paling penting ialah data kelas dan kod kelas, yang mempunyai antara muka khusus dan data arahan Jika anda memilih dua bahagian ini untuk dipecahkan, walaupun anda memisahkannya. Data kelas dan data kod bait tidak akan dibocorkan dan penyahkompilasi tidak akan lengkap, jadi keselamatan adalah tinggi.

Apakah analisis terbalik dan mekanisme perlindungan Android APP?

Analisis terbalik tetulang Split Dex

Untuk analisis terbalik tetulang dex split, seperti yang ditunjukkan di bawah, ia boleh digantikan dengan data kelas untuk dipasang Walaupun fail dex baharu tidak akan selaras sepenuhnya dengan fail dex asal, ia juga memulihkan penampilan data pecahan pada tahap tertentu.

Apakah analisis terbalik dan mekanisme perlindungan Android APP?                                                                                                                                                                                                                                          untuk mengelak daripada menggunakannya apabila boleh, dan walaupun perlu, cuba pulihkannya hanya apabila kelas ini digunakan.

Selain itu, terdapat alat peringkat rendah yang dipanggil dexhunter Alat ini lebih avant-garde, tetapi ia juga mempunyai beberapa had, contohnya, beberapa data arahan akan dioptimumkan, dan antara muka kod yang dihasilkan tak cantik sangat dsb.

Empat, tetulang mesin maya Apakah analisis terbalik dan mekanisme perlindungan Android APP?
Rawatan bait ialah satu cara untuk mengukuhkan mesin maya. Berikut ialah kod sistem Android konvensional yang telah diproses oleh pengerasan mesin maya

, mul-int v0, v1, v2, dan kemudian lakukan kompilasi pengerasan selepas operasi ini data dipulihkan, ia tidak akan ditambah-int v0, v1, v2, sub-int Tiga arahan v0, v1, v2, mul-int v0, v1, v2 diganti dan kemudian diperkukuh dan disusun Selepas operasi ini, genap jika data yang diganti dipulihkan, ia tidak akan diubah menjadi kod bait sebelumnya Faktor keselamatan adalah tinggi.

Analisis songsang pengerasan mesin maya—Antara muka HOOK JNI

Apakah analisis terbalik dan mekanisme perlindungan Android APP?Analisis songsang dengan cara ini boleh dicapai melalui antara muka HOOK JNI di satu pihak, dan ia mempunyai dua kaedah pelaksanaan.

Salah satunya ialah antara muka yang berkaitan dengan ahli kelas/operasi pembolehubah statik, seperti:

GetStaticDoubleFieldSetStaticDoubleField GetDoubleField SetDoubleField …

(bait, panjang… objek, int )

Yang kedua ialah kaedah kelas panggilan refleksi, seperti:

CallVoidMethodACallBooleanMethodA CallShortMethodA CallObjectMethodA…

CallStaticVoidMethodMethod StaticObjectMetho dA …

(bait, int, panjang, ganda …)

CallObjectMethodA(JNIEnv* env, objek jobject, kaedah jmethoID, …)

Realisasikan pengerasan mesin maya terbalik melalui Analisis antara muka HOOKJNI

Gunakan antara muka HOOK JNI untuk memahami anggaran proses panggilan APP tanpa memerlukan asas kejuruteraan songsang. Walau bagaimanapun, untuk proses panggilan yang kompleks, atau apabila terdapat sejumlah besar kaedah virtualisasi, kaedah analisis terbalik ini akan kelihatan mengelirukan untuk arahan yang tidak perlu dipantulkan kembali ke lapisan Java untuk pelaksanaan, seperti operasi aritmetik dan logik; ia tidak boleh dipantau.

Analisis songsang pengerasan mesin maya—menganalisis pemetaan opcode arahan

Apakah analisis terbalik dan mekanisme perlindungan Android APP?Sebaliknya, analisis terbalik juga boleh dilakukan dengan menganalisis pemetaan opcode arahan. Kaedah berikut boleh digunakan apabila menggunakan versi pengerasan atau hubungan pemetaan yang sama:

Apakah analisis terbalik dan mekanisme perlindungan Android APP?
Tetapi dalam keadaan sebenar, hubungan pemetaan antara setiap tetulang diubah secara rawak Seperti yang ditunjukkan di bawah, hubungan pemetaan tidak boleh diwujudkan secara langsung.


                                                                                                                                                                                                                                                                                 .

Apakah analisis terbalik dan mekanisme perlindungan Android APP?

                                                                                                                                                                                                         

Atas ialah kandungan terperinci Apakah analisis terbalik dan mekanisme perlindungan Android APP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam