април 14, 2017

REC Studio 4 – Обратен Инженеринг Компајлерот

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

REC Studio е интерактивен декомпајлерот.
Тоа се вели во Windows, Linux, Mac OS X или суровини извршна датотека, и се обидува да произведе C-како претставување на код и податоци кои се користат за изградба на извршна датотека.
Тоа е дизајниран да чита датотеки произведени за многу различни цели, а тоа е составена од неколку системи домаќин.

REC Studio 4 е комплетен преработи на оригиналниот REC декомпајлерот. Тоа го користи повеќе моќни техники за анализа, како што се делумно Единствен Статични Доделување (SSA), им овозможува вчитување на оперативниот систем Mac OS X датотеки и поддржува 32 и 64 битни бинарни.
Иако сè уште во развој, тој ја достигна фазата што го прави повеќе корисни од стариот REC Studio 2.

REC Studio 2 страници се тука.

 

Карактеристики

Како што рековме, Rec Studio 4 се уште е во развој. Повеќето цел независни функции се веќе завршени, како што се:

• Multihost: Rec Studio работи на Windows XP/Vista/7, Ubuntu Linux, Mac OS X.
• Информациите на симболичката поддршка користење на Dwarf 2 и делумно признавање на формат на Мајкрософт PDB.
C++ е делумно призната: искривени имиња генерирани од gcc се деискривени, како и наследството што е опишано во dwarf2 е почестен. Сепак, C++ е многу широк и тежок јазик, па така некои функции како шаблони најверојатно нема да биде некогаш поддржани.
• Видови и дефиниции функција прототип може да се наведени во текстуални датотеки. Некои POSIX стандардот и Windows API-јата веќе се предвидени во пакетот Rec Studio.
• Интерактивност е поддржан, ограничени на дефиницијата на делови, етикети и влез функција поени. Ќе треба да го подобри за поддршка во програмата Дефинирање на видови и функција параметри.

Оваа табела ги прикажува цел специфични карактеристики кои биле спроведени досега:

Функција x86 (ia32) x86_64 Mips PowerPC mc68k ARM
Дисасемблер Завршено Завршено Завршено Завршено Завршено Планирани
PE COFF натоварувач Завршено Завршено Не се применуваат Не се применуваат Не се применуваат Не се применуваат
ELF натоварувач Завршено Завршено Завршено Завршено Завршено Планирани
COFF натоварувач Завршено Не се применуваат Не се применуваат Не се применуваат Завршено Не се применуваат
Mac OS X натоварувач Завршено Завршено Не се применуваат Планирани Не се применуваат Планирани
Dwarf2 информациите на симболичката Завршено Завршено Завршено Завршено Не се применуваат Планирани
COFF информациите на симболичката Планирани Не се применуваат Не се применуваат Не се применуваат Планирани Не се применуваат
Повикувајќи конвенции Во тек Во тек Во тек Планирани Планирани Планирани
32 и 64 битови Во тек Во тек Не се применуваат Не се применуваат Не се применуваат Не се применуваат
Лебдечки-точка Планирани Планирани Не се применуваат Не се применуваат Не се применуваат Не се применуваат
Windows дебагерот Во тек Планирани Не се применуваат Не се применуваат Не се применуваат Не се применуваат
Gdb дебагерот Во тек Во тек Не се применуваат Не се применуваат Не се применуваат Не се применуваат

REC извори не се во јавниот домен.

Иако REC да прочитате Win32 извршна (ака PE) датотеки произведени од страна на Visual C++ или Visual Basic 5, постојат ограничувања на произведен. REC на недвижности ќе се обиде да го користите она што информации се присутни во табелата на .EXE симбол. Ако датотеката .EXE е компајлирана без информации за дебагирање, ако се користи база на податоци програма фајлови (.PDB) или Codeview (C7) формат, или ако опцијата за оптимизација на компајлерот беше овозможено, произведен нема да биде многу добро. Покрај тоа, Visual Basic 5 извршна датотека се мешавина на Subroutine код и Form податоците. Тоа е речиси невозможно за REC на недвижности за да се утврди кој е кој. Единствената опција е да се користи .cmd датотека и рачно да го одредите која област е кодот и која област е податоци.

Во пракса, само C извршна датотека произведе значајни декомпајлерот  излез.

Референци

Неколку други декомпајлерот се достапни од различни извори. Погледнете во мојот обратна инженеринг страница за листа.
Наместо изненадувачки, внатрешната архитектура на декомпајлерот е многу слична на онаа на компајлерот. постои висок квалитет на литература за двете. страница Дизајн забелешки има информации за проблеми што декомпајлерот писател соочува, кога се обидуваат да декомпајлерави малку повеќе комплексни програми од едноставни тестови единица.
Страница на десоставите има врски и документација поврзани со декомпајлерави во целина.

Докторска теза Мајк ван Еммерик значително напредна областа на декомпајлерави со скицирање решенија за основните проблеми во декомпајлерави на бинарни програми.

Кристина Сифуентес Обратно Компилација Техники докторска теза опишува во детали на теорија и примена на dcc десостави за 8086 DOS програми.

Страница на Wotsit има врски со спецификации на предметот формати како COFF и ELF.

Некои концепти поврзани со код анализа се опфатени во страниците на REference Debugger.

Други основни книги што се користи за време на развој се:

• “Компајлери – принципи, техники и алатки”, Ахо, Сети, Улман, 1986 Адисон-Весли издавачката копродукции ISBN 0-201-10088-6.
• “Напредно компајлерот дизајн и имплементација”, Стивен Мучник, 1997 Морган Кауфман издавачи, ISBN 1-55860-320-4.
• “Како дебагери работа – алгоритми, структури на податоци, и архитектура”, Џонатан Роземберг, 1996 Џон Вајли и синови, ISBN 0-471-14966-7.

На дисасемблери користи во катастарот на недвижности се земени од различни извори. copyrite датотеката во дистрибуцијата, има листа на кредити за секој од дисасемблери користи во катастарот на REC. Остатокот од кодот е напишана од мене во текот на последните 25 години. Јас ќе продолжи да се подобри REC во моето слободно време, но не можам да гарантирам дека можам да се утврдат грешки или да додадете нови функции, процесори, или домаќините.

Општи услови

Има многу на дискусија за законитоста на декомпилација. Декомпајлерот алатки се достапни за различни платформи за долго време. Декомпајлероти , заедно со други алатки, како и дебагерите, бинарни уредници, дисасемблери итн треба да се користи само кога сопственикот на програмата има законско право да го поништи инженер на програмата.

Таа е основана од страна на судовите САД и други земји дека тоа е легално да се користи декомпајлероти според клаузулата на фер употреба на законот за авторско право.

За да дознаете кога тоа е легално да користите декомпајлерот , треба да го прочитате текстот на следниве случаи:

Исто така, прочитајте дискусија за законитоста на користење на емулатор да се кандидира на бинарни програма на различни домаќин.
Backer Street Software не ја поддржува употребата на обратна инженеринг алатки за нелегални цели.


Copyright © 1997 – 2015 Backer Street Software – All rights reserved.

Историја:

9 март 2011  Верзија 4.0 Beta: целосно преработи на декомпајлеротза поддршка на повеќе модерни архитектури (MachO files, x86_64).
2 јули 2007  Верзија 2.2: aиксна decompilation на суровини и бинарни датотеки преку .cmd датотеки. Делумно спроведени регистрирани постојана размножување. Фиксна многу грешки 68k.
6 мај 2007  Верзија 2.1: додаде назад +batch опција за RecStudio; употреба Ndisasm за i386; подобра изолација на увоз на податоци за Windows бинарни
20 септември 2005  Верзија 2.0d: gовеќе поправени грешки за 68k
6 септември 2005  Верзија 2.0c: поддршка за Linux .o датотеки и подобрена поддршка за 68k
15 август 2005  Верзија 2.0b: ослободување одржување. Поддршка за Watcom-составувач бинарни датотеки и широк низи
1 август 2005  Верзија 2.0a: ослободување одржување. Фиксна урна, подобрување на квалитетот со Windows извршни
30 мај 2005  Верзија 2.0: Windows GUI и интерактивни декомпилација
19 септември 2000  Верзија 1.6: додадена поддршка за SPARC.
16 март 1999  Верзија 1.5d: вратена откривање на прекинувач(). Додадена поддршка со обратна бајт цел MIPS.
6 март 1999  Верзија 1.5: поддршка за информации за увоз/извоз во Win95 датотеки; заменува GNU дисассемблери со бесплатен извор; фиксна многу несреќи
22 ноември 1998  Верзија 1.4a: фиксна бесконечно додека декомпајлира Win95 датотеки; додадени фајлови на Windows прототип
15 ноември 1998  Верзија 1.4: додадено способноста на прелистувачот во интерактивен режим, и генерирање на HTML страница
30 јули 1998 
Верзија 1.3b: одржување: фиксна хаварии и за различни проблеми во 68k.
15 февруари 1998  Верзија 1.3: додадено Motorola 68000 и PowerPC цели.
7 декември 1997  Верзија 1.2: фиксна кориснички интерфејс компјутер. Сега можеме да се вчита 16 бита DOS извршни. Повеќе поправени грешки.
26 октомври 1997  Верзија 1.1: мулти-цел поддршка (386 + R3000), вчитување на ELF и PE датотеки, фиксни неколку грешки.
6 октомври 1997  Е пренесен на Windows во конзолен режим (recr4kpc.zip) и за SunOS (recr4ks4.tar.gz)
20 септември 1997  Создаден за да ги стави на располагање recr4kl.zip.