REC 2.1 – Кері инженерлік компилятор

The source text is taken from here: http://www.backerstreet.com/rec/

Джампиеро Каприно (Giampiero Caprino)

REC – бұл портативті кері инженерлік компилятор немесе декомпилятор.
Ол орындалатын файлды оқиды және орындалатын файлды құру үшін пайдаланылатын код пен деректердің С тәрізді көрінісін жасауға тырысады.
Ол көптеген түрлі мақсаттар үшін жасалған файлдарды оқуға арналған және бірнеше хост жүйелерінде құрастырылғандықтан портативті.

RecStudio REC интерактивті режиміне заманауи пайдаланушы интерфейсін ұсынады.
Linux және Solaris хосттары үшін пәрмен жолының нұсқасы әлі қол жетімді.

 RecStudio

Пайдаланушы графикалық интерфейстерінің саласынан 4 жыл өткен соң, мен ақыры REC жұмысына қайта оралдым.
2-нұсқа интерактивті декомпиляцияға арналған жаңа пайдаланушы интерфейсі – RecStudio-ны ұсынады.
Бастапқыда жаңа пайдаланушы интерфейсі тек Windows жүйелерінде қол жетімді. Linux жүйесінде REC 2 файлын орындау үшін Wine немесе басқа портативті кітапхананы пайдаланыңыз.
Linux, Solaris және MacOS X бастапқыда жобалық файлдар арқылы пакеттік декомпиляциямен шектеледі.

Қараңыз нұсқасы 2-бетті осы жаңа REC нұсқасы тур.

1.x нұсқасының ерекшеліктері

Бұл REC кейбір ерекшеліктері:

    • Көп мақсатты: REC ыдырай алады 386, 68k, PowerPC және MIPS R3000 бағдарламалар
    • Көп форматты: REC келесі файл пішімдерін таниды:
      • ELF (System V Бос. 4, e.g. Linux, Solaris etc.)
      • COFF (System V Бос. 3.x, жылдар SCO)
      • PE (Win32 .EXE және .DLL үшін Microsoft Windows 95 және NT)
      • AOUT (BSD туындылар, жылдар SunOS 4.x)
      • Ойын консолі PS-X (MIPS тек мақсатты)
      • Екілік деректер (.cmd файлдары арқылы)
    • Көп хост: REC үшін қол жетімді Linux 3.0 (i386), Windows 95 және SunOS 4.1.4.
    • Жоғары деңгейдегі символдық ақпаратты қолдайды COFF, ELF+STAB, AOUT+STAB.
    • Пайдаланушының масштабталатын әрекеті: толық пакеттік режимнен толық экранды шолғыш тәрізді интерактивті режимге дейін.
  • HTTP сервер режимі HTML шолғышын пайдаланушылық интерфейс ретінде пайдалануға мүмкіндік береді

REC көздері болып табылады емес қоғамдық доменде.

REC орындалатын Win32 (деп те атайды PE) файлдарын оқи алады Visual C++ немесе Visual Basic 5, өндірілетін өнімге шектеулер бар. REC .EXE символдар кестесіндегі барлық ақпаратты пайдалануға тырысады. Егер .EXE файлы ақпаратты күйін келтірместен құрастырылса, егер бағдарламаның деректер базасының файлы (.PDB) немесе Codeview (C7) пішімі қолданылса немесе компиляторды оңтайландыру мүмкіндігі қосылған болса, шығарылған нәтиже өте жақсы болмайды. Сонымен қатар, Visual Basic 5 орындалатын файлдары Subroutine коды мен Form деректерінің қоспасы болып табылады. Қайсысы екенін REC анықтау мүмкін емес. Жалғыз опция – .cmd фалын пайдалану және кодтың қай аймақ екенін және қай аймақтың деректер екенін қолмен көрсету.

Іс жүзінде тек C орындалатын файлдар мағынасы ашылған шығарады.

Ақыр аяғында мен іске асырамын .PDB немесе Codeview символдық ақпараттарды талдау және Терезенің ресурстар декомпиляторы. Осы уақытқа дейін жоғары сапалы символдық нәтижеге қол жеткізудің жалғыз мүмкіндігі Linux-пен орындалған орындалатын файлдарды ыдырату болып табылады. -gstabs опциясын таңдаңыз немесе қосымша символдық ақпаратты қамтамасыз етіңіз 'symbol:' және 'types:' REC командалық файлының директивалары.

Пайдаланылған әдебиеттер

Бірнеше басқа Декомпиляторы түрлі көздерден қол жетімді. Менің қараңызшы  кері инженерлік бетке  тізімін.

Қаларлық, бұл Декомпилятор ішкі сәулеті компиляторда деп өте ұқсас. Жоғары сапалы әдебиет үшін де бар. Бөлшектеу  бет, жалпы Декомпиляторы байланысты сілтемелер және құжаттаманы бар.

Кристина Цифуентес «кері Компиляция техникасы Философия докторы диссертация толығырақ 8086 DOS бағдарламалары үшін dcc декомпилятор теориясы мен жүзеге асыруды сипаттайды.

Оңтайландыру бет  оңтайландыру машина деңгейі кодына құрастырушылар пайдаланылатын әдістерін кейбір сипаттайды. Декомпилятор «керек, себебі оңтайландырылған декомпиляции көп қиын де-оңтайландыру кіріс файлы».

Wotsit  бет COFF және эльф секілді нысан файл пішімдерінің ерекшеліктер сілтемелер бар.

Мен әзірлеу кезінде қолданған басқа негізгі кітаптар:

  • “Құрастырушылар – қағидалар, әдістер мен құралдар”, Хо, Сети, Уллман, 1986 Addison-Wesley Publishing Co.  ISBN 0-201-10088-6.
  • “Кеңейтілген құрастырушы дизайн және енгізу”, Стивен Мучник, 1997 Morgan Kaufmann Publishers, ISBN 1-55860-320-4.
  • “Дебагерлер қалай жұмыс істейді – алгоритмдер, мәліметтер құрылымы және архитектура”, Джонатан Роземберг, 1996 John Wiley and Sons, ISBN 0-471-14966-7.

REC пайдаланылатын дизассемблеры түрлі көздерден алынды. Файл copyrite бөлу REC пайдаланылатын дизассемблеры әрқайсысы үшін кредиттер тізімі бар. Коды қалған жазылған  өзім  соңғы 9 жыл ішінде. Менің бос уақытында REC жетілдіруді жалғастырамыз, бірақ мен қателерді түзету немесе жаңа мүмкіндіктерді, процессорлар, немесе хосттар қосуға болады деп кепілдік бере алмайды.

Ескерту

Декомпиляцияның заңдылығы туралы көптеген пікірталастар бар. Декомпилятор құралдары ұзақ уақыт бойы әртүрлі платформаларда қол жетімді болды. Декомпиляторлар, дебаггерлер, екілік редакторлар, бөлшектегіштер және басқа құралдар сияқты, бағдарламаның иесі бағдарламаны қайта құруға заңды құқығы болған кезде ғана қолданылуы керек.

АҚШ пен басқа елдердің соттары авторлық құқық туралы заңның әділ пайдалану ережесінде декомпиляторларды пайдалану заңды екендігі анықталды.

Декомпиляторды қашан заңды пайдалану керектігін білу үшін сіз келесі жағдайлардың мәтінін оқып шығуыңыз керек:

Сондай-ақ, оқып түрлі хост бойынша екілік бағдарламаны іске қосу үшін эмулятор қолдану заңдылығы туралы талқылау.

Backer Street Software жасақтамасы кері инженерлік құралдарды заңсыз мақсаттарға қолдануды қолдамайды.


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

Тарих:

6 мамыр 2007  Нұсқа: 2.1 қосылды кері + RecStudio үшін пакеттік опция; i386 үшін Ndisasm пайдалануға; Windows үшін екілік файлдарды импорт деректер жақсы оқшаулау
20 қыркүйек 2005  Нұсқа 2.0D: 68K Толығырақ қателерді түзетулерді
6 қыркүйек 2005  Нұсқа 2.0c: 68K үшін Linux .o файлдар қолдау және жақсартылған қолдау
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: қосқыш қалпына switch(). үлкен-байт MIPS қолдау қосылды.
6 наурыз 1999 ж  Нұсқа 1.5: Win95 файлдарда импорт/экспорт ақпарат қолдау; тегін көзі бар GNU дизассемблеры ауыстырылды; тіркелген көптеген іркіліс
22 қараша 1998  Нұсқа 1.4a: Win95 файлдарды декомпиляции кезде шексіз цикл Fixed; қосылған Windows прототипі файлдар
15 қараша 1998  Нұсқа 1.4: қосылды интерактивті режимде браузер мүмкіндігі, және HTML бет ұрпақ
30 Jul. 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  Консоль режімінде (recr4kpc.zip) және SunOS үшін Windows портирована (recr4ks4.tar.gz)
20 қыркүйек 1997  recr4kl.zip қол жетімді ету үшін құрылған.

Соңғы жаңартылған уақыты: 6 мамыр, 2007 жыл