For faster navigation, this Iframe is preloading the Wikiwand page for Kódvisszafejtő program.

Kódvisszafejtő program

A decompiler-ek (vagy kódvisszafejtő programok) olyan programok, melyek a fordítóprogramokkal ellentétes műveletet hajtanak végre. Azaz az alacsony absztrakciós szintű (gépi kódú) futtatható programokat fejtik vissza (amelyek számítógépek által értelmezhető formában vannak) magasabb absztrakciós szintű kóddá, (amelyet emberek által olvasható formában jelenítenek meg).

Bevezetés

[szerkesztés]

A "decompiler" kifejezést leginkább olyan programoknál használják, amelyek futtatható programokat (a fordítóprogramok kimenetét) visszafejtik egy (viszonylag) magas szintű nyelvben írott forráskóddá. Ha ezt a visszafejtett kódot ismét lefordítjuk (egy fordítóprogram segítségével), akkor a létrejövő program működése megegyezik az eredeti programéval.

Ezzel szemben a disassembler-ek a futtatható programot assembly nyelvre fejtik vissza (amit valamilyen assembler segítségével lehet újra lefordítani futtatható programmá).

A kódvisszafejtés (decompilation) az a folyamat, melynek során egy ilyen programot használunk. Az angol decompilation jelentheti magát a visszafejtett kódot is.

Ezt a folyamatot használhatjuk abban az esetben, ha elveszett a forráskód, vagy hibajavításra, biztonsági rendszerekben, vagy interoperability-ben.[1] A kódvisszafejtés sikere azon múlik, hogy mennyi információ található a visszafejtendő kódban és azon is hogy az elvégzett kód-analízis mennyire kifinomult.

A bytecode formátumok, melyet a virtuális gépek használnak (pl. a Java Virtual Machine) gyakran jelentős mennyiségű metaadatot tartalmaznak valamint olyan magasabb szintű adatokat, melyek jelentősen megkönnyíthetik a kódvisszafejtést. A gépi kód ezzel szemben alig tartalmaz metaadatot, ezért sokkal nehezebb visszafejteni.

Egyes fordítóprogramok vagy fordítás után futtatott programok obfuscated code-ot (összezavart kód) képeznek (abból a célból, hogy megnehezítsék a kódvisszafejtést). Ezt a módszert a reverse engineering megnehezítésére találták ki.

Fázisok

[szerkesztés]

A decompilerek felfoghatók úgy is mint programok sorozatai, melyek mindegyike a teljes visszafejtési folyamat egyes fázisait hajtja végre.

Betöltő (Loader)

[szerkesztés]

Parancsokra bontás (Disassembly)

[szerkesztés]

Idiómák

[szerkesztés]

Programanalízis

[szerkesztés]

Típusanalízis

[szerkesztés]

Strukturálás

[szerkesztés]

Kódgenerálás

[szerkesztés]

Jogállás

[szerkesztés]

Jegyzetek

[szerkesztés]

Lásd még

[szerkesztés]

További információk

[szerkesztés]

Decompiler-ek

[szerkesztés]
  • jdec: java decompiler A jdec egy szabad forrású java decompiler, rengeteg hasznos lehetőséggel rendelkezik. Pillanatnyilag a SourceForge szállásolja. Java osztály fájlok visszafejtésén, szétszedésén valamint részletes információk kinyerésén felül támogatja még a jar fájlok visszafejtését is és Swing felhasználói felülettel is rendelkezik.
  • Jad – the fast JAva Decompiler – A Jad egy teljesen C++-ban íródott program, ezért sokszorta gyorsabb a Java-ban írt visszafejtőknél. Az 1.5.6 verziótól kezdve üzleti felhasználásra nem ingyenes, de otthoni felhasználásra továbbra is szabadon használható. Sok grafikus kezelőfelület létezik hozzá, például a Jadclipse, egy bővítmény az Eclipse fejlesztői környezethez.
  • .Net Reflector egy ingyenes segédprogram, melyben van Osztály böngésző (Class Browser), Static analysis és kódvisszafejtő.
  • Dis# – .NET decompiler használatával szerkesztheted a lokális változókat valamint további neveket a visszafejtett kódban és a változásokat project fájlokba mentheted.
  • jsc – .NET decompiler ezen programmal a megírt c# programodat php, java vagy javascript programmá, kóddá tudod átfordítani.

Gépi kód

[szerkesztés]
  • The Boomerang Decompiler egy nyílt forráskódú próbálkozás egy újratervezett gépi kódbontóban. Jelenleg képes kicsiny bináris fájlok (Pentium, SPARC és PowerPC) lebontására a C nyelvre. A Boomerang BSD-szerű licenc alatt érhető el, és különböző Unix és Windows platformokon futtatható.
  • REC – Reverse Engineering Compiler :Giampiero Caprino. A REC egy hordozható fordított mérnöki fordító vagy dekompilátor. A gépkód-fájlt az egyik architektúra egyikére olvassa, és megpróbálja létrehozni a kód és a C-szerű ábrázolásokat a futtatható fájl felépítéséhez. A REC több verziója letölthető ingyen.
  • dcc – Dos C Decompiler decompiles .exe fájlokat a (i286, DOS) platformról C programokra.
{{bottomLinkPreText}} {{bottomLinkText}}
Kódvisszafejtő program
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?