REC Studio 4 - Membalikkan Teknik Penyusun

 

REC Studio adalah decompiler interaktif.

Bunyinya Windows, Linux, Mac OS X atau file executable mentah, dan upaya untuk menghasilkan representasi C-seperti dari kode dan data yang digunakan untuk membangun file executable. 
Ini telah dirancang untuk membaca file diproduksi untuk banyak target yang berbeda, dan itu telah disusun pada beberapa sistem host.

REC Studio 4 adalah penulisan ulang lengkap dari REC decompiler asli. Menggunakan teknik analisis yang lebih kuat seperti parsial Tunggal Tugas Statis (SSA), memungkinkan pemuatan Mac OS X file dan mendukung 32 dan 64 bit binari. 
Meski masih dalam pengembangan , telah mencapai tahap yang membuatnya lebih berguna daripada Rec Studio berusia 2.

Rec Studio 2 halaman di sini .

Fitur

Seperti disebutkan, Rec Studio 4 masih dalam pengembangan. fitur independen yang paling sasaran telah selesai, seperti:

  • Multihost: Rec Studio berjalan pada Windows XP / Vista / 7, Ubuntu Linux, Mac OS X .
  • Dukungan informasi simbolis menggunakan Dwarf 2 dan pengakuan parsial PDB Microsoft Format.
  • C ++ sebagian diakui: nama hancur yang dihasilkan oleh gcc yang demangled, serta warisan yang dijelaskan dalam dwarf2 dihormati. Namun, C ++ adalah bahasa yang sangat luas dan sulit, sehingga beberapa fitur seperti template tidak akan mungkin pernah didukung.
  • Jenis dan definisi prototipe fungsi dapat ditentukan dalam file teks. Beberapa standar POSIX dan Windows API yang sudah disediakan dalam paket Rec Studio.
  • Interaktivitas didukung, terbatas pada definisi bagian, label dan fungsi entry point. Perlu memperbaikinya untuk mendukung dalam program-definisi jenis dan parameter fungsi.

Tabel ini menunjukkan fitur sasaran spesifik yang telah dilaksanakan sejauh ini:

 

ciri x86 (ia32) x86_64 mIPS PowerPC mc68k LENGAN
disassembler matang matang matang matang matang Berencana
PE COFF loader matang matang n / a n / a n / a n / a
ELF loader matang matang matang matang matang Berencana
COFF loader matang n / a n / a n / a matang n / a
Mac OS X loader matang matang n / a Berencana n / a Berencana
informasi simbolis Dwarf2 matang matang matang matang n / a Berencana
COFF informasi simbolis Berencana n / a n / a n / a Berencana n / a
memanggil konvensi Sedang berlangsung Sedang berlangsung Sedang berlangsung Berencana Berencana Berencana
32 dan 64 bit Sedang berlangsung Sedang berlangsung n / a n / a n / a n / a
Floating-point Berencana Berencana n / a n / a n / a n / a
jendela Debugger Sedang berlangsung Berencana n / a n / a n / a n / a
gdb Debugger Sedang berlangsung Sedang berlangsung n / a n / a n / a n / a

Sumber REC adalah tidak dalam domain publik.

Meskipun REC dapat membaca Win32 executable (alias PE) file yang dihasilkan oleh Visual C ++ atau Visual Basic 5, ada keterbatasan pada output yang dihasilkan. REC akan mencoba untuk menggunakan informasi apa pun yang hadir dalam tabel simbol EXE. Jika file EXE telah dikompilasi tanpa informasi debug, jika file basis data program (.PDB) atau Codeview (C7) Format yang digunakan, atau jika opsi optimasi compiler diaktifkan, output yang dihasilkan tidak akan sangat baik. Selain itu, Visual Basic 5 file executable adalah campuran dari Subroutine kode dan Form data. Hal ini hampir tidak mungkin bagi REC untuk menentukan yang mana. Satu-satunya pilihan adalah dengan menggunakan file cmd dan manual menentukan daerah mana yang kode dan daerah mana yang data.

Dalam prakteknya, hanya C file executable menghasilkan output decompiled bermakna .

Referensi

Beberapa decompilers lain yang tersedia dari berbagai sumber. Lihatlah saya halaman reverse engineering untuk daftar.

Agak mengherankan, arsitektur internal Decompiler sangat mirip dengan kompilator. Literatur berkualitas tinggi ada untuk keduanya. The Catatan Desain Halaman memiliki informasi tentang masalah yang penulis Decompiler menghadapi ketika mencoba untuk menguraikan program sedikit lebih kompleks daripada unit test sederhana. 
The decompilation Halaman memiliki link dan dokumentasi terkait dengan decompilers pada umumnya.

Tesis PhD Mike van Emmerik ini secara signifikan maju bidang decompilation dengan menguraikan solusi untuk masalah mendasar dalam decompilation program biner.

Cristina Cifuentes 'Reverse tesis Teknik Kompilasi PhD menjelaskan secara rinci teori dan pelaksanaan decompiler dcc untuk 8086 program DOS.

The wotsit Halaman memiliki link dengan spesifikasi format file objek seperti COFF dan ELF.

Beberapa konsep yang berkaitan dengan analisis kode dibahas dalam referensi Debugger halaman.

buku mendasar lain yang saya digunakan selama pengembangan adalah:

  • "Compiler - Prinsip, Teknik dan Tools", Aho, Sethi, Ullman, 1986 Addison-Wesley Publishing Co ISBN 0-201-10088-6.
  • "Advanced Compiler Design & Implementasi", Steven Muchnick 1997 Morgan Kaufmann Publishers, ISBN 1-55860-320-4.
  • "Bagaimana debugger bekerja - Algoritma, Struktur Data, dan Arsitektur", Jonathan Rosemberg 1996 John Wiley and Sons, ISBN 0-471-14966-7.

The disassemblers digunakan dalam REC diambil dari berbagai sumber. File copyrite dalam distribusi memiliki daftar kredit untuk masing-masing disassemblers digunakan dalam REC. Sisa kode ditulis oleh diriku sendiri selama 25 tahun terakhir. Saya akan terus meningkatkan REC di waktu luang saya, tapi saya tidak bisa menjamin bahwa saya bisa memperbaiki bug atau menambahkan fitur baru, prosesor, atau host. 

Penolakan

Ada banyak diskusi tentang legalitas decompilation. alat Decompiler telah tersedia untuk berbagai platform untuk waktu yang lama. Decompilers, bersama dengan alat-alat lain seperti debugger, editor biner, disassemblers dll seharusnya hanya digunakan ketika pemilik program memiliki hak hukum untuk melakukan reverse engineering program.

Telah ditetapkan oleh AS dan negara-negara lain pengadilan bahwa itu adalah hukum untuk menggunakan decompilers bawah penggunaan klausul wajar hukum hak cipta.

Untuk mengetahui kapan itu legal untuk menggunakan Decompiler, Anda harus membaca teks dari kasus-kasus berikut:

Juga membaca diskusi tentang legalitas menggunakan emulator untuk menjalankan program biner pada host yang berbeda.

Backer Jalan Software tidak mendukung penggunaan alat-alat reverse engineering untuk tujuan ilegal.


Copyright © 1997 - 2015 Backer Jalan Software - All rights reserved.

Sejarah: 

Maret 9, 2011 Versi 4.0 Beta: menulis ulang Lengkap Decompiler untuk mendukung arsitektur yang lebih modern (file macho, x86_64).

2 Juli 2007     Versi 2.2: decompilation Tetap binari baku melalui file .cmd. Diterapkan sebagian mendaftar perambatan konstan. Tetap banyak kesalahan 68k.
6 Mei 2007     Versi 2.1: Ditambahkan kembali + opsi batch untuk RecStudio; menggunakan Ndisasm untuk i386; isolasi yang lebih baik dari data impor untuk Windows binari
20 September 2005     Versi 2.0d: Lebih perbaikan bug untuk 68k
6 September 2005     Versi 2.0c: Dukungan untuk file Linux .o dan meningkatkan dukungan untuk 68k
15 Agustus 2005     Versi 2.0b: Pemeliharaan rilis. Dukungan untuk binari Watcom-disusun dan string lebar
1 Agustus 2005     Versi 2.0a: Pemeliharaan rilis. crash tetap, peningkatan kualitas dengan Windows executables
30 Mei 2005     Versi 2.0: Windows GUI dan decompilation interaktif
19 September 2000     Versi 1.6: Ditambahkan dukungan untuk SPARC.
16 Maret 1999     Versi 1.5D: deteksi Pulih dari switch (). Ditambahkan dukungan untuk big-endian MIPS.
6 Maret 1999     Versi 1.5: Dukungan untuk info impor / ekspor dalam file Win95; diganti disassemblers GNU dengan sumber freeware; tetap banyak crash
22 November 1998     Versi 1.4a: Tetap lingkaran tak berujung ketika decompiling Win95 file; menambahkan file prototipe Windows
15 November 1998     Versi 1.4: Ditambahkan kemampuan browser dalam modus interaktif, dan HTML generasi Halaman
30 Juli 1998 
Versi 1.3b: Pemeliharaan: tetap crash dan berbagai masalah di 68k.
15 Februari 1998     Versi 1.3: Ditambahkan Motorola 68000 dan PowerPC target.
7 Desember 1997     Versi 1.2: tetap antarmuka pengguna PC. Sekarang kita dapat memuat 16 bit DOS executables. Lebih perbaikan bug.
26 Oktober 1997     Versi 1.1: dukungan multi-target (386 + R3000), pemuatan ELF dan file PE, beberapa bug tetap.
6 Oktober 1997     Porting ke Windows dalam mode console (recr4kpc.zip) dan SunOS (recr4ks4.tar.gz)
20 September 1997     Diciptakan untuk membuat recr4kl.zip tersedia.