REC Studio 4 – obrnuti inženjering kompajler

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

REC Studio je interaktivni decompiler.
Ona čita Windows, Linux, Mac OS X ili sirovog izvršnu datoteku, i pokušava da proizvede C-poput predstavljanja koda i podataka koji se koriste za izgradnju izvršne datoteke.
To je dizajniran za čitanje datoteke napravljene za mnoge različite ciljeve, a to je sastavljen na nekoliko sistema domaćina.

REC Studio 4 je kompletan prepisati originalnog REC Decompiler. Koristi moćniji tehnike analize, kao što su parcijalne Single Statički Ustupanje (SSA), omogućuje utovar Mac OS X datoteke i podržava 32 i 64 bitne binarne.
Iako je još u fazi razvoja, završila je faza koja ga čini korisnim nego stari Rec Studio 2.

Rec Studio 2 stranice su ovdje, preuzmite ovaj materijal u PDF datoteke ovdje.


Značajke

Kao što je spomenuto, Rec Studio 4 je još uvijek u fazi razvoja. Većina meta nezavisne karakteristike su završeni, kao što su:

  • Multihost: Rec Studio radi na Windows XP / Vista / 7, Ubuntu Linux, Mac OS X.
  • Simboličke informacije za podršku koristeći Dwarf 2 i parcijalne priznanje Microsofta PDB formatu.
  • C ++ je djelomično priznata: osakaćen imena stvara GCC su demangled, kao i nasljedstvo je opisano u dwarf2 je čast. Međutim, C ++ je vrlo širok i težak jezik, tako da neke funkcije kao što su predlošci neće vjerojatno ikada biti podržan.
  • Vrste i definicije prototip funkcija može biti određena u tekstualne datoteke. Neke standardne POSIX i Windows API-ja koja su već u Rec Studio paket.
  • Interaktivnost je podržan, ograničena na definiciji sekcija, etiketa i ulazak funkcija poena. Potrebno je da se poboljša da podrži definiciji u program tipova i funkcija parametara.

Ova tabela prikazuje karakteristike ciljane specifične koje su do sada realizovani:

Svojstvo x86 (ia32) x86_64 Mips PowerPC mc68k ARM
Disasembler Gotovo Gotovo Gotovo Gotovo Gotovo n/a
PE COFF utovarivač Gotovo Gotovo n/a n/a n/a Planski
ELF utovarivač Gotovo Gotovo Gotovo Gotovo Gotovo n/a
COFF utovarivač Gotovo n/a n/a Planski Gotovo Planski
Mac OS X utovarivač Gotovo Gotovo n/a n/a n/a Planski
Dwarf2 simboličke informacije Gotovo Gotovo Gotovo Gotovo Planski n/a
COFF simboličke informacije Planski n/a n/a Planski Planski Planski
Pozivanje konvencija U toku U toku U toku n/a n/a n/a
32 i 64 bita U toku U toku n/a n/a n/a n/a
Pomičnim zarezom Planski Planski n/a n/a n/a n/a
Windows Debugger U toku Planski n/a n/a n/a n/a
Gdb Debugger U toku U toku n/a n/a n/a n/a

REC izvori nisu u javnosti.

Iako REC možete pročitati Win32 izvršne (aka PE) datoteke u produkciji Visual C ++ ili Visual Basic 5, postoje ograničenja na izlazu proizvodi. REC će pokušati iskoristiti sve informacije je prisutan u simbolu sto .EXE. Ako je .EXE datoteku sastavio bez debugging informacije, ako je korišteno bazu podataka programa datoteke (.pdb) ili Codeview (C7) formatu, ili ako je omogućeno optimizaciju opciju kompajler, izlazni proizvodi neće biti dobar. Osim toga, Visual Basic 5 izvršne datoteke su mješavina potprogram kod i Obrazac podataka. To je gotovo nemoguće za REC kako bi se utvrdilo koja je koja. Jedina opcija je da koristite .cmd datoteku i ručno odrediti koje područje je kod i koja područja su podaci.

U praksi, samo C izvršne datoteke proizvodnju svrsishodnih decompiled izlaz.


Reference

Nekoliko drugih decompilers su dostupni iz različitih izvora. Pogledajte moje obrnuti inženjering stranica za liste.
Umjesto toga iznenađujuće, unutrašnje arhitekture dekompilator je vrlo slična onoj u kompilatora. Visoko kvalitetna literatura postoji za oboje. Dizajn Notes strana ima informacije o problemima koji dekompilator pisac suočava pri pokušaju da dekompajlira malo složenije programe nego jednostavno jedinica testova.
Stranica dekompilaciju ima veze i dokumentacije u vezi sa decompilers u cjelini.

Mike van Emmerik je doktorska disertacija značajan napredak na polju dekompilaciju isticanjem rješenja osnovnih problema u dekompilaciju binarnih programa.

Cristina Cifuentes ‘Reverse kompilacija tehnike doktorske disertacije detaljno opisuje teorija i provođenje DCC Decompiler za 8086 DOS programa.

Stranica Wotsit ima veze sa specifikacijama formata objekta datoteke kao COFF i ELF.

Neki pojmovi koji se odnose na analizu kod pokrivene u REference Debugger stranicama.

Drugih osnovnih knjiga koje sam koristiti tokom razvoja su:

  • “Kompajleri – Principi, tehnika i alata”, Aho, Sethi, Ullman, 1986 Addison-Wesley Publishing Co. ISBN 0-201-10088-6.
  • “Napredni kompajler dizajn i implementacija”, Steven Muchnick 1997. Morgan Kaufmann Publishers, ISBN 1-55860-320-4.
  • “Kako debageri raditi – Algoritmi, strukture podataka, i arhitektura”, Jonathan Rosemberg, 1996 John Wiley and Sons, ISBN 0-471-14966-7.

Je disassemblers koristi u REC su uzeti iz različitih izvora. Je Copyrite datoteke u distribuciji ima listu kredita za svaku od disassemblers koristi u RIK-a. Ostatak koda je napisao sam u proteklih 25 godina. Ja ću i dalje poboljšati REC u slobodno vrijeme, ali ne mogu da garantujem da ne mogu popraviti bugove ili dodati nove funkcije, procesori, ili domaćini.


Odricanje

Postoji puno rasprava o legalnosti dekompilaciju. Decompiler alati su dostupni za različite platforme za dugo vremena. Decompilers, zajedno s drugim alatima kao što su debuggers, binarni urednika, disassemblers itd treba koristiti samo kada je vlasnik programa ima zakonsko pravo da obrnuti inženjering programa.

Utvrđeno je od strane SAD-a i drugih zemalja sudova da je legalno koristiti decompilers pod fair use klauzula zakona o autorskim pravima.

Da biste saznali kada je legalno koristiti dekompilator, treba da pročitate tekst sljedećim slučajevima:

Također pročitajte raspravu o legalnosti pomoću emulatora za pokretanje binarni program na drugom domaćinu.
Backer Street Softver ne podržava upotrebu obrnuti inženjering alata za nezakonite svrhe.

Autorsko pravo й 1997 – 2015 Backer Street Software – Sva prava pridržana.

Istorija:

Mar 9, 2011 Verzija 4.0 Beta: Kompletan prepisati od Decompiler da podrži više moderne arhitekture (Macho datoteke, x86_64).
Jul 2, 2007 Verzija 2.2: Fiksna dekompilaciju sirove binarne preko .cmd datoteke. Djelomično implementirati registrujete konstanta propagacije. Fiksni mnoge 68K grešaka.
6. maj 2007 Verzija 2.1: Dodano nazad + hrpa opcija RecStudio; koristiti Ndisasm za i386; boljom izolacijom uvoza podataka za Windows binarne
20. septembar 2005 Verzija 2.0D: Više ispravke grešaka za 68K
6. Septembar 2005 Verzija 2.0c: Podrška za Linux .o datoteke i bolju podršku za 68K
15 avg 2005 Verzija 2.0b: oslobađanje održavanje. Podrška za WATCOM-sastavio binarne i širok gudače
1 Avgust 2005 Verzija 2.0a: oslobađanje održavanje. Fiksni sudara, poboljšana kvaliteta sa Windows izvršne
30 maj 2005 Verzija 2.0: Windows GUI i interaktivne dekompilaciju
Sep 19, 2000 Verzija 1.6: Dodano podršku za SPARC.
Mar 16, 1999 Verzija 1.5d: Obnovljena otkrivanje prekidač (). Dodana podrška za velike-endian MIPS.
Mar 6, 1999 Verzija 1.5: Podrška za uvoz / izvoz info u Win95 datoteke; zamijenjen GNU disassemblers sa freeware izvora; fiksni mnoge padove
22 Nov 1998 Verzija 1.4a: Fiksni beskonačne petlje kad dekompajliranje Win95 datoteke; dodao Windows prototip datoteke
Novembar 15, 1998 Verzija 1.4: Dodano sposobnost preglednika u interaktivnom modu, i HTML generacije stranicu
30. Juli 1998 Verzija 1.3b: Održavanje: fiksni sudara i različite probleme u 68k.
15 feb 1998 Verzija 1.3: Dodano Motorola 68000 i PowerPC ciljeva.
7 decembar 1997 Verzija 1.2: fiksni korisnički interfejs računara. Sada možemo učitati 16 bita DOS izvršne oblike. Više bug ispravke.
Oktobar 26, 1997 Verzija 1.1: multi-target podrške (386 + R3000), utovar ELF i PE datoteke, nekoliko bugova fiksno.
6 Oktobar 1997 prenesenih na Windows u konzoli modu (recr4kpc.zip) i SunOS (recr4ks4.tar.gz)
20. septembar 1997 Kreirano da recr4kl.zip na raspolaganju.