Apa yang Dilengkapi Para Pembawa dan Penghias?

Analyzing proprietari software tanpa akses ke kode sumbernya sering membutuhkan alat yang terspesialisasi. Disparamblers dan decompilers adalah dua kategori alat rekayasa terbalik yang memungkinkan peneliti, analis keamanan, dan pengembang untuk memeriksa binari-binator yang dapat dieksekusi pada tingkat abstraksi yang bervariasi. Sebuah discombableler[ membaca kode mesin dan menerjemahkannya ke dalam bahasa assembly yang mudah dibaca manusia, mengekspos instruksi tingkat rendah yang dijalankan prosesor. A Menampilkan langkah yang lebih jauh dengan cara merekonstruksi bahasa pemrograman yang lebih tinggi, atau representasi Ccode, dari perangkat binari yang dikompilasi tidak menghasilkan output yang identik, bagaimana perangkat lunak yang beroperasi secara kritis.

Beragam Cara Bekerja

Disparasemblers beroperasi secara langsung pada berkas biner ⁇ PE, ELF, Mach-O, atau raw firmware images ⁇ dengan mengurai byte instruksi dan memetakannya ke mnemonik perakitan mereka yang berhubungan. Proses bergantung pada instruksi prosesor yang mengatur arsitektur (ISA), seperti x86, ARM, atau MIPS. Disparamblers menggunakan baik menyapu linear (langkah melalui kode secara sekual) atau traversal rekursif (mengikuti aliran kendali) untuk mendekoder instruksi. Recursive dissembly lebih akurat untuk menangani kode campuran dengan data atau obfucated construct. Modern discated seperti [[TFLTFL0[TFL]] dan [[FL]] perpustakaan rekursif[TFL]], juga mengidentifikasi fungsi mengidentifikasi dan mengidentifikasi fungsi signification (bantuan) dan juga mengidentifikasi, dan juga mengidentifikasi fungsi signifing (bantuan)[TFL]], dan mengidentifikasikan fungsi signif[TFL]], dan mengidentifikasikan signifl=]], dan signification (bantuan:[TFL]], dan signifl=]], dan signification:[T]]

Work

Dekompailer GOZO menggabungkan dissamsembly dengan analisis untuk menaikkan tingkat abstrak. Pertama, mereka membongkar biner. Kemudian mereka melakukan analisis kontrol ⁇ aliran untuk membangun grafik aliran kontrol (CFG) dan analisis data ⁇ mengalir untuk melacak penggunaan dan jenis yang berubah. Pola yang cocok dan heuristik diterapkan untuk merekonstruksi tipikal building tingkat tinggi ⁇ yang digunakan untuk membangun: loop, jika ⁇ kemudian ⁇ else blok, pernyataan switch, dan panggilan fungsi. Keluaran biasanya sebuah struktur, bentuk yang dapat dibaca seperti C ⁇ seperti pseudocode. Tidak ada dekopil dapat memulihkan komentar lokal, nama variabel asli, atau struktur, tetapi alat seperti [[TFL:0Hex ⁇ R ⁇ R ⁇ L[R][R] untuk menghasilkan hasil yang akurat dan PropL ⁇ 1] untuk Gr ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 menghasilkan hasil yang terbina secara mengejutkan untuk GR ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇ 1 ⁇

Pengukiran dan Penghiasan dalam Praktek

Riset Ketahanan dan Analisis Keamanan Bedah

Profesional keamanan ensif software secara rutin menggunakan disasemblers dan dekompiler untuk mengaudit perangkat lunak proprietari untuk kelemahan. Dengan memeriksa biner, mereka dapat mengidentifikasi bug korupsi memori, validasi masukan yang tidak tepat, atau kredensial terkode keras. Insiden yang tidak dapat dicatat ⁇ seperti penemuan kerentanan Heartbleed di OpenSSL atau backdoors dalam firmware ⁇ often dimulai dengan analisis biner. Kode Decompiled membantu analis memahami logika fungsi kompleks tanpa menatap halaman perakitan.

Analisis Malware Alfiz

Sampel software milik-nama software hampir tidak pernah didistribusikan dengan kode sumber. Analis mengandalkan pengurai untuk memahami muatan berbahaya, mengidentifikasi rutinitas enkripsi, dan trace command ⁇ dan control komunikasi. Dekompilator mempercepat pekerjaan ini dengan mengubah blob biner yang terekspos menjadi representasi pseudocode yang lebih dapat dikelola. Perkakas seperti Radare2 danFL[T:2]]Ghidra] terutama populer di daerah ini karena mereka bebas dan ekstensible.

Memulihkan Kode Sumber yang Hilang atau Legasi

Organisasi-organisasi yang memelihara perangkat lunak kuno kadang-kadang kehilangan sumber asli karena kontrol versi yang buruk atau turnover personel. Dempilasi dapat membantu merekonstruksi setara fungsional dari basis kode, memungkinkan pemeliharaan atau porting ke platform modern. Meskipun output yang didekompilasi mungkin membutuhkan pembersihan signifikan, itu menyediakan titik awal yang sebaliknya tidak mungkin untuk diperoleh.

Kebolehgunaan dan Keterhubungan Antarmanusiaan Belajar Beragam

Kompetitor atau proyek open ⁇ source mungkin perlu interoperator dengan protokol proprietari atau format berkas. Memisahkan binari yang relevan mengungkapkan struktur algoritma, format data, dan mesin negara. Hal ini umum dalam pengembangan drop ⁇ in compatibility pengganti untuk perangkat lunak legacy.Serupa itu, pengembang berharap untuk menulis plugin atau memperpanjang aplikasi source tertutup sering harus terbalik ⁇ pengembang biner.

Pengumpil dan Penghias Kepopuleran

IDA Pro (Pembongkar Disabilitas Interaktif)

IDA Pro adalah standar de facto untuk analisis biner. Ini mendukung puluhan arsitektur CPU, menawarkan antarmuka scripting yang kuat (IDAPython), dan terintegrasi dengan plugin Hex ⁇ Rays decompiler. Ini lintas ⁇ rujukan, tampilan grafik, dan debugger membuatnya menjadi platform komprehensif untuk kedua dissamsembly dan dekompilasi. IDA adalah perangkat lunak komersial, tetapi versi freeware (IDA Free) tersedia untuk penggunaan terbatas.

Andorna Ghidra

Dikembangkan oleh Badan Keamanan Nasional dan dirilis sebagai sumber terbuka, Ghidra menyaingi IDA dalam banyak hal. Termasuk sebuah building ⁇ in decompiler, API yang dapat diprogram (Python atau Java), dan fitur analisis kolaboratif. Dekompiler Ghidra khususnya kuat untuk binary x86, ARM, dan PowerPC. Ia bebas untuk digunakan dan memiliki komunitas besar pengembang plugin. Untuk informasi lebih lanjut, lihat Ghidra official website].

Radare2

¡ZORadoe2 adalah sebuah command ⁇ line driven verse engineering framework yang menawarkan dispassembly, dekompilasi (melalui atau plugins), dan kemampuan debugging.Hal ini sangat modular dan scriptable, membuatnya ideal untuk otomasi dan integrasi ke dalam pipeline analisis yang lebih besar.Radare2 adalah sumber bebas dan terbuka.

Penghias Hex ⁇ Rays

Ausenity Hex ⁇ Rays adalah plugin dekompiler komersial untuk IDA Pro yang mendukung x86, x64, ARM, dan PowerPC. Ini menghasilkan C ⁇ like pseudocode yang sangat bersih dan secara luas dianggap sebagai dekompiler paling akurat yang tersedia. Banyak firma keamanan dan peneliti kerentanan menganggap Hex ⁇ Rays penting untuk aliran kerja mereka.

Alat - Alat Lain yang Boleh Diperhatikan

  • [[ObGNOFLT:0]]Hopper (macOS dan Linux) ⁇ menawarkan baik dispassembly maupun dekompilasi dengan GUI yang ramah ⁇ pengguna.
  • [[Efleksi:0]]Binari Ninja ⁇ sebuah platform teknik terbalik modern dengan fokus pada kehandalan dan bahasa antarmediat yang kuat.
  • OCLC [[AZALAFLT:0]]objdump dan readelf (GNU binutils) based disacsemblers for quick inspeksi on Unix systems.

Tantangan dan Batasan

Kompil Kode Kompleksitas

Pengoptimatuman kompilator (inlining, loop unrolling, konstan lipat) menghasilkan kode mesin yang menyelam secara signifikan dari sumber asli. Dekompilator harus merekonstruksi semantik tingkat tinggi ⁇ dari urutan low ⁇ level, yang dapat mengarah ke keluaran yang ambigu atau tidak benar. Teknik obfuscation tingkat lanjut ⁇ seperti pemaket berbasis virtualisasi ⁇ pengendali, kontrol ⁇ mengalir pemrataan, dan predikat legap ⁇ ther complicate analysis.

Legalitas dan Pencairan

Perangkat lunak rekayasa terbalik ensif propriority secara hukum dibatasi dalam banyak yurisdiksi. Undang-Undang Hak Cipta Digital Millennium (DMCA) di Amerika Serikat, Direktif Hak Cipta UE, dan undang-undang serupa di seluruh dunia berisi ketentuan yang mungkin membebaskan rekayasa terbalik untuk interoperabilitas, penelitian keamanan, atau pendidikan, tetapi batasan bervariasi. Selalu berkonsultasi dengan pengacara hukum sebelum memisahkan atau mendekompsi suatu produk yang tidak Anda miliki atau memiliki izin untuk menganalisis. Sumber daya yang berguna adalah Pandangan lebih lanjut Yayasan Frontier Elektronik tentang pengecualian DMCA].

Keluaran Tidak Lengkap

Pembongkar-pembongkar code tidak dapat menangani semua jalur kode (misalnya, lompatan tidak langsung melalui alamat yang diperhitungkan), dan pengurai mungkin gagal untuk merekonstruksi struktur data yang kompleks atau fungsi inline. Output sering membutuhkan koreksi manual dan anotasi. Analis pengalaman mengembangkan model mental program dengan bergantian antara pandangan yang dibongkar dan didekompilasi.

Dengan menggunakan alat penyebar dan dekompleks tanpa otorisasi dapat melanggar kontrak atau undang-undang hak cipta.Namun, beberapa pelabuhan aman hukum ada. peneliti keamanan umumnya dilindungi ketika melakukan riset kerentanan yang baik ⁇ iman, seperti yang diakui oleh UU Berbagi Informasi Keamanan Siber (CISA) dan pedoman dari Departemen Kehakiman. Direktif Uni Eropa tentang Hak Cipta dalam Pasar Tunggal Digital memungkinkan rekayasa terbalik untuk interoperabilitas, selama alat tidak digunakan untuk tujuan ilegal. Selain itu, doktrin \"fair gunakan\" dalam AS mungkin meliputi depilasi, atau analisis, untuk pendidikan, atau parodi.

Penggunaan Etika Keistimewaan diperlukan penghormatan terhadap hak pencipta perangkat lunak. Jangan menggunakan kode terekstrak untuk mereplikasi fungsionalitas pasti produk proprietary, dan jangan mempublikasikan algoritma proprietary rahasia tanpa izin. Praktik terbaik industri mendorong pengungkapan yang bertanggung jawab terhadap kerentanan yang ditemukan melalui rekayasa terbalik.

Untuk menyelam lebih dalam ke aspek hukum, pertimbangkan membaca U.S. Hak cipta Kantor Pusat Indeks Penggunaan Adil dan CISA text.

Mesin Mesin ⁇ Melajari Analisis yang Dipertingkat

Penelitian terbaru phigoling menggunakan jaringan saraf untuk mengklasifikasikan fungsi, mengidentifikasi tipe variabel, dan bahkan mendekompilasi snippet biner langsung ke pernyataan bahasa tingkat tinggi ⁇ .Sementara masih eksperimental, AI ⁇ asisted reverse engineering menjanjikan untuk mempercepat analisis biner obfuscidated atau binary besar.

Liputan Platform yang Lebih Baik

Sebagai software instruksi baru set emercome (RISC ⁇ V, WebAssemblely, dll), desombler dan decompiler pengembang sedang menambahkan dukungan. Ghidra, misalnya, sudah mendukung lebih dari 30 arsitektur, dan kontribusi komunitas memperpanjang jangkauannya ke mikrokontroler IoT dan blockchain mesin virtual.

Kolaborasi Berbayang ⁇ Berdasarkan Kolaborasi

Perkakas seperti analisis awan Binary Ninja dan berkas proyek bersama Ghidra memungkinkan tim rekayasa terbalik yang didistribusikan.Tujuan ini mencerminkan langkah yang lebih luas menuju pengembangan perangkat lunak kolaboratif dan terutama bermanfaat untuk menganalisis pelanggaran besar dan kompleks atau kampanye malware.

Kekecualian Kesimpulan

Diskomparasi dan dekomiler tidak dapat disuspensi instrumen untuk mendapatkan visibilitas ke dalam perangkat lunak proprietari. Mereka memungkinkan audit keamanan, analisis malware, pemulihan kode, dan interoperabilitas tanpa akses ke kode sumber asli. IDA Pro, Ghidra, Radare2, dan Hex ⁇ Rays masing-masing menawarkan keuntungan yang berbeda, dan komunitas open ⁇ source terus mendemokratisasi alat-alat yang kuat ini. Namun, pengguna harus menavigasi batasan hukum dan etika dengan hati-hati. Ketika digunakan secara bertanggung jawab, disemblem dan dekompilasi yang memberdayakan analis untuk mengungkap kerentan tersembunyi, kepatan, pemahaman algoritma, dan menjaga pengetahuan yang terkunci dalam bentuk biner ⁇ mentri tetapi lebih aman untuk perangkat lunak yang transparan.