Kadang-kadang satu ingin melihat, dan jenis mengisi program khusus? Maka dia harus menggunakan reverse-engineering. Apa itu? Bagaimana cara kerjanya? Bagaimana proses ini? Semua ini Anda akan belajar dari artikel ini.
Apa yang dimaksud dengan program reverse-engineering?
Jadi yang disebut analisis aplikasi proses untuk memahami cara kerjanya, sehingga di masa depan untuk menciptakan proses ini dengan membuat perubahan yang diperlukan. Biasanya digunakan untuk tujuan ini debugger dan assembler. Tergantung pada kualitas perangkat lunak yang digunakan akan bervariasi dan hasil dari jumlah waktu yang Anda ingin menghabiskan di atasnya membawa ke tampilan normal. Jelaskan reverse-engineering untuk pemula contoh terbaik. Sebagai daripadanya melakukan permohonan tertulis untuk Android. Sekarang mari kita untuk mengetahui apa dan bagaimana.
Bekerja dengan Android-aplikasi
Pertama kita perlu memperjelas beberapa poin. Aplikasi menggunakan bytecode dan LogCat. rekan-rekan lokal ini sebelumnya disebutkan debugger dan assembler. Hal ini juga diperlukan untuk memahami struktur dari aplikasi itu sendiri. Dengan demikian, masing-masing program adalah file dengan ekstensi apk. Dia dikemas zip'om. Kami tertarik isinya - sumber daya aplikasi, classes.dex dan AndroidManifest.xml. Jika Anda melakukan pemrograman pada Android, masalah dengan mantan dan yang terakhir tidak seharusnya. Tapi classes.dex - program ini kode byte yang dikompilasi khusus untuk mesin virtual. Ekstrak dari kode sumber java nya tersedia di Internet tidak mendapatkan dana. Tapi apakah mungkin untuk mendapatkan opcodes Dalvik - satu set khusus dari perintah yang digunakan untuk mesin virtual. Untuk analogi kita dapat mengatakan bahwa perakitan ini banjir lokal. Classes.dex juga dapat dikonversi menjadi file dengan tabung. Bahkan dalam kasus ini Anda bisa mendapatkan java-kode setelah decompilation, yang akan lebih atau kurang dibaca. Itu adalah jalan kita pergi.
decompilation
Proses ini akan dilakukan menggunakan program Apk Manger. Sebelum Anda memulai, pastikan bahwa ada driver yang tepat untuk devaysa dan berfungsi modus USB-debugging. Awalnya, kita akan perlu untuk memindahkan file yang akan diurai menjadi apk_manager direktif \ tempat-APK-sini-untuk-modding. Setelah itu anda harus menjalankan Script.bat. Jika tidak ada masalah, kemudian mulai konsol, yang akan huruf hijau. Pilih titik nomor sembilan - "Mendekompilasi". Setelah proses ini dimulai, perlu untuk tidak menutup konsol. Kemudian, open interest APK-file yang menggunakan pengarsipan dan ekstrak dari itu classes.dex, untuk diproses dex2jar Program. Bagi kami hasil yang diperlukan adalah perlu untuk memindahkan objek dengan Kelelawar ekstensi. Anda akan melihat file, yang akan berakhir pada .jar. Sampai jendela yang menutup.
kita menganalisa data
Untuk mendapatkan informasi tentang aplikasi, Anda harus membukanya nyata. Menurut itu, kita menentukan yang bertindak sebagai kegiatan utama. Itu dia yang kini menyajikan pentingnya terbesar untuk kami. Hal ini juga diinginkan untuk melihat bagian bawah program. Jika bagian bawah adalah informasi tentang lisensi manajer, itu secara signifikan sulit untuk melaksanakan reverse engineering. Jika Anda beralih ke jd-gui dan memperluas pohon, kita bisa melihat beberapa ruang nama. Asumsikan bahwa mereka bertiga. Pada bagian pertama adalah file yang terkait dengan iklan. yang kedua akan menjadi kelas manajer lisensi. Dalam ketiga, kita data yang diperlukan. Justru ketika kita pergi. Ada akan perlu untuk menemukan dan menghapus kunci, dan kemudian sisa garis yang memeriksa apakah berlisensi versi bekerja. Semua ini perlu dibersihkan. Kemudian pada Apk Manajer kami mencari tempat di mana tempat yang ditentukan bytecode. Sekarang mari kita membuat penyimpangan kecil dan komentar pada tim, yang berpotensi dapat menyebabkan masalah. Setelah itu, kita hanya perlu mengkompilasi program.
membangun aplikasi
Hal ini akan membantu kita semua Apk Manager yang sama. Di konsol, yang kita tidak terkunci, pilih item №14. trik berikutnya. Jika aplikasi agak rumit, ketika Anda mulai, mungkin sebagian atau benar-benar kehilangan efisiensi. Jangan khawatir, itu berarti bahwa kita hanya setengah jalan di sana dan tempat lain untuk pergi. Kami terus melakukan reverse-engineering-Semua aplikasi Android. Katakanlah, apa yang harus dilakukan dalam kasus tertentu, secara umum, sayangnya, adalah mustahil. Oleh karena itu, mencari masalah daerah akan memiliki mereka sendiri. Sebagai contoh, jika sebuah jendela aplikasi diblokir jendela pop-up, Anda akan melihat kode dan menghapus bagian yang bertanggung jawab untuk dialog ini. Untuk membantu dengan ini dapat jd-gui. Seperti yang Anda lihat, rekayasa terbalik bukan bisnis yang mudah, dan membutuhkan toko cukup pengetahuan. Bahkan jika semuanya berjalan tanpa masalah, maka akan diperlukan untuk menguji kinerja aplikasi. Yaitu, reverse-engineering lebih aktivitas memakan waktu. Kami terus beroperasi sampai semua masalah diidentifikasi.
keselamatan
Bagaimana jika kita membutuhkan perlindungan All Android-aplikasi dari reverse engineering? Dalam hal ini, ada dua pilihan: penggunaan program tertentu atau penciptaan struktur kode yang akan mengganggu untuk membuat parsing tertulis. Pilihan terakhir cocok profesional hanya dialami, sehingga kita hanya mempertimbangkan metode pertama perlindungan. Dalam penggunaan software ProGuard khusus. Aplikasi ini, yang digunakan untuk mengurangi, kebingungan dan optimasi kode. Jika program "mengejar" melalui itu, kita mendapatkan file dengan ekstensi * .apk lebih kecil dari dia. Dalam kasus seperti itu akan jauh lebih sulit untuk membongkar. Dan keuntungan dari program ini adalah bahwa hal itu bahkan telah diperkenalkan di aplikasi Android membangun dengan update r9. Oleh karena itu, mengambil keuntungan dari itu adalah setiap pengembang yang memiliki alat-alat standar penciptaan dan pengembangan.
kesimpulan
Kita tidak bisa mengatakan bahwa reverse-engineering dapat direpresentasikan sebagai sesuatu yang seragam buruk atau baik. Tentu saja, dari sudut pandang pengembang, yang telah menciptakan sebuah aplikasi, itu bukan acara bahagia. Tapi di sisi lain, dalam banyak kasus yang dialami programmer menulis file yang diperlukan dapat menjadi waktu yang lebih murah daripada penggunaan alat-alat tersebut. Meskipun pengembang pemula reverse-engineering dapat memberikan pelayanan yang baik, jika Anda tidak tahu bagaimana menerapkan sesuatu, bahkan teladan, dan tidak cukup jelas garis dapat membantu dengan pencapaian tujuan ini.