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:
- Sega Enterprises Ltd v. Accolade, Inc.
- Atari Game Corp v. Nintendo of America, Inc.
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.