REC Studio 4 – Reverzní Inženýrství Překladač

Source page: http://www.backerstreet.com/rec/rec.htm

REC Studio je interaktivní decompiler.
To čte Windows, Linux, Mac OS X nebo syrové spustitelný soubor, a pokusí se vyrábět reprezentace C-like kódu a údajů použitých k sestavení spustitelného souboru.
To byl navržen tak, aby číst vyrobené z mnoha různých cílů, a to byl sestaven na několika hostitelských systémech.

REC Studio 4 je kompletní přepsání původního REC Decompiler. Používá výkonnější analytických technik, jako jsou částečné jednotného statické přidělení (SSA), umožňuje načítání Mac OS X soubory a podporuje 32 a 64 bitové binárky.
I když stále ve vývoji, dosáhla stádia, který dělá to mnohem užitečnější než starý Rec Studio 2.

Rec Studio 2 stránky jsou zde.

Funkce

Jak již bylo zmíněno, Rec Studio 4 je stále ve vývoji. Most cílové nezávislé filmy byly dokončeny, jako je například:

• Multihost: Rec Studio běží na Windows XP/Vista/7, Ubuntu Linux, Mac OS X.
• Symbolické informační podpora pomocí Dwarf 2 a částečné uznání formátu Microsoft PDB.
C++ je částečně uznává: pozměnění názvy generované gcc jsou demangled, stejně jako je popsáno v dědičnosti DWARF2 je ctí. Nicméně, C++ je velmi široký a těžký jazyk, takže některé funkce, jako šablony, nebude pravděpodobně vůbec podporovány.
• Druhy a definice prototypy funkcí lze specifikovat v textových souborech. Některé standardní POSIX a Windows API jsou již obsažena v balíčku Rec Studio.
• Interaktivita je podporována, omezena na vymezení sekcí, štítků a vstupních funkce bodů. Bude muset vylepšit podpořit definici in-programu typů a funkčních parametrů.

Tato tabulka ukazuje vlastnosti cílově specifických které byly dosud realizovány:

Vlastnosti x86 (ia32) x86_64 Mips PowerPC mc68k ARM
Disassembler Hotovo Hotovo Hotovo Hotovo Hotovo Plánovaná
PE COFF nakladač Hotovo Hotovo Nepoužitelné Nepoužitelné Nepoužitelné Nepoužitelné
ELF nakladač Hotovo Hotovo Hotovo Hotovo Hotovo Plánovaná
COFF nakladač Hotovo Nepoužitelné Nepoužitelné Nepoužitelné Hotovo Nepoužitelné
Mac OS X nakladač Hotovo Hotovo Nepoužitelné Plánovaná Nepoužitelné Plánovaná
Dwarf2 symbolické informace Hotovo Hotovo Hotovo Hotovo Nepoužitelné Plánovaná
COFF symbolické informace Plánovaná Nepoužitelné Nepoužitelné Nepoužitelné Plánovaná Nepoužitelné
Volací konvence Probíhá Probíhá Probíhá Plánovaná Plánovaná Plánovaná
32 a 64 bity Probíhá Probíhá Nepoužitelné Nepoužitelné Nepoužitelné Nepoužitelné
Plovoucí bod Plánovaná Plánovaná Nepoužitelné Nepoužitelné Nepoužitelné Nepoužitelné
Windows ladicí Probíhá Plánovaná Nepoužitelné Nepoužitelné Nepoužitelné Nepoužitelné
Gdb ladicí Probíhá Probíhá Nepoužitelné Nepoužitelné Nepoužitelné Nepoužitelné

REC zdroje ne jsou ve veřejné doméně.

Přestože REC může číst produkované Visual C++ nebo Visual Basic 5 Win32 spustitelný soubor (aka PE), existují určitá omezení na výstup vytvořený. REC se pokusí použít jakékoli informace, je k dispozici v tabulce symbolů .EXE. Pokud byl soubor .EXE kompilován bez informace o ladění, pokud byl použit programová data base soubor (.PDB) nebo formát Codeview (C7), nebo pokud byla zapnuta volba optimalizace kompilátoru, že vyrobená produkce nebude moc dobré. Kromě toho Visual Basic 5 spustitelné soubory jsou směsicí podprogramu kódu a forma údajů. Je téměř nemožné, aby REC určit, který je který. Jedinou možností je použít soubor s příponou .cmd a ručně určit, která oblast je kód a jaké oblasti jsou data.

V praxi se tak C spustitelné soubory vytvářet smysluplné rozložit výstup.

Reference

Několik dalších dekompilátory jsou k dispozici z různých zdrojů. Podívejte se na mé straně zpětného inženýrství pro seznam.
Poněkud překvapivě, vnitřní architektura je Decompiler je velmi podobný tomu z překladače. Vysoce kvalitní literatuře existuje pro obě strany. Stránka Poznámky k návrhu obsahuje informace o problémech, že decompiler spisovatel čelí, když se snaží překládat něco více komplexní programy než jednoduché jednotkové testy.
Stránka rozklad obsahuje odkazy a dokumentaci vztahující se k dekompilátory obecně.

Mike van Emmerik své disertační práce významně pokročila pole rozkladu tím, že nastíní řešení zásadních problémů v rozkladu binárních programů.

Cristina Cifuentes’ Reverse Compilation Techniques disertační práce detailně popisuje teorii a realizaci DCC Decompiler pro 8086 programů DOS.

Stránka Wotsit obsahuje odkazy na specifikacích formátů objekt jako COFF i ELF.

Některé pojmy vztahující se k analýze kódu jsou zahrnuty v stránkách referenčních ladicí.

Ostatní základní knihy, které jsem použity během vývoje jsou:

• “Kompilátoři – zásady, techniky a nástroje”, Aho, Sethi, Ullman, 1986 Addison-Wesley Publishing Co. ISBN 0-201-10088-6.
• “Advanced Compiler Design & implementace”, Steven Muchnick, 1997 Morgan Kaufmann Publishers, ISBN 1-55860-320-4.
• “Jak debuggers pracovat – algoritmy, datové struktury, a architektura”, Jonathan Rožmberka, 1996 John Wiley and Sons, ISBN 0-471-14966-7.

Tyto Disassemblery používané v REC byly převzaty z různých zdrojů. Autorská právasouborů v distribuci má seznam úvěrů pro každou z disassemblery používané v REC. Zbytek kódu napsal sám v průběhu posledních 25 let. Budu i nadále zlepšovat REC ve svém volném čase, ale nemohu zaručit, že mohu opravit chyby nebo přidávat nové funkce, zpracovatelé, nebo hostitele.

Dementi

Tam je hodně diskuse o zákonnosti rozkladu. Decompiler nástroje byly k dispozici pro celou řadu platforem na dlouhou dobu. Dekompilátory, spolu s jinými nástroji, jako jsou debuggery, binárními editory, Disassemblery atd by měl být použit pouze tehdy, pokud vlastník programu má zákonné právo zvrátit inženýr program.

Bylo zjištěno, ze strany USA a dalších zemích soudy, že je legální používat dekompilátory podle klauzule fair use autorského zákona.

Chcete-li zjistit, pokud je to legální použít Decompiler, měli byste si přečíst text v těchto případech:

Sega Enterprises Ltd proti Millennium, Inc.
• Atari Games Corp. proti Nintendo of America, Inc.

Také číst diskusi o zákonnosti pomocí emulátoru spustit binární program na jiného hostitele.
Backer Street Software nepodporuje použití reverzního inženýrství nástrojů pro nelegální účely.


Copyright © 1997 – 2015 Backer Street Software – Všechna práva vyhrazena.

Dějiny:

09.března 2011 Verze 4.0 Beta: Kompletní přepsání Decompiler na podporu více moderní architektury (Macho soubory, x86_64).
2.července 2007 Verze 2.2: Pevná decompilation surových binární soubory přes CMD souborů. Částečné realizaci registrovat neustálé množení. Opraveno mnoho chyb 68k.
6.máj 2007 Verze 2.1: Přidána zpět + šarže možnost RecStudio; použijte Ndisasm pro i386; lepší izolace import dat pro binární soubory Windows
20.září 2005 Verze 2.0d: Více chyb na 68k
6.září 2005 Version 2.0c: Support for Linux .o souborů a vylepšenou podporu pro 68k
15.srpna 2005 Verze 2.0b: Uvolnění do provozu. Podpora Watcom-zkompilovaný binární soubory a širokými strun
1.srpna 2005 Verze 2.0a: Uvolnění do provozu. Byly opraveny chyby, zlepšení kvality s spustitelné soubory Windows
30.květen 2005 Version 2.0: Windows GUI a interaktivní decompilation
19.září 2000 Verze 1.6: Přidána podpora pro SPARC.
16.března 1999, verze 1,5 D: Obnovený detekce spínače (). Přidána podpora pro big-endian MIPS.
6.března 1999 Verze 1.5: Podpora pro import / export informací v Win95 souborech; vyměněné Disassemblery GNU s freeware zdroje; Opraveno mnoho pády
22.listopadu 1998 Verze 1.4a: Opraveno nekonečné smyčky při Dekompilace Win95 soubory; přidané soubory prototypu systému Windows
15.listopadu 1998 Verze 1.4: Přidána schopnost prohlížeče v interaktivním režimu a generování HTML stránky
30.července 1998 Verze 1.3b: Údržba: pevná zhroutí a různé problémy v 68k.
15 únor 1998 Verze 1.3: Přidána Motorola 68000 a PowerPC cíle.
7.prosince 1997 Verze 1.2: pevná uživatelské rozhraní počítače. Nyní můžeme vložit 16 bitů DOS spustitelné. Další opravy chyb.
26.října 1997 Version 1.1: multi-target podpora (386 + R3000), nakládání ELF a PE souborů, několik chyb.
6.října 1997 Portován na Windows v režimu konzoly (recr4kpc.zip) a SunOS (recr4ks4.tar.gz)
20 září 1997 Vytvořeno aby recr4kl.zip k dispozici.