ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Kódvisszafejtő program - Wikipédia

Kódvisszafejtő program

A Wikipédiából, a szabad enciklopédiából.

A decompiler-ek (vagy kódvisszafejtő programok) olyan programok, melyek a fordítóprogramokkal ellentétes műveletet hajtanak végre. Azaz az alacsony absztakció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).

Tartalomjegyzék

[szerkesztés] Bevezeté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.


[szerkesztés] Fázisok

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

[szerkesztés] Betöltő (Loader)

[szerkesztés] Parancsokra bontás (Disassembly)

[szerkesztés] Idiomá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] Külső hivatkozások

  • The DeCompilation Wiki discusses various aspects of decompilation: history, research, decompilers for machine code, Java, Visual Basic, and so on.
  • Legality of Decompilation, part of the above Wiki, discusses legal aspects of decompilation.
  • A detailed article on various aspects of decompilation, including how to decompile an executable by hand.

[szerkesztés] Decompiler-ek

[szerkesztés] Java

  • jdec: java decompiler jdec is an open source java decompiler It has a number of useful features. Right now it is mainly hosted at sourceforge site. Apart from providing features like decompiling, disassembling providing detailed information of a java class file, it also supports jar decompilation and also comes with a swing UI.
  • Jad – the fast JAva Decompiler – Jad is a 100% pure C++ program and claims to be several times faster than decompilers written in Java. Since version 1.5.6 it's no longer free for commercial use, but is still free for non-commercial use. Several GUIs exists for Jad, e.g. Jadclipse, a plugin for Eclipse.

[szerkesztés] .NET

  • Dis# – .NET decompiler which allows you to edit local variables and other names in the decompiled code and keep the changes in a project file.
  • jsc – .NET decompiler which allows you to write in c#, but produce javascript, php or java instead.

[szerkesztés] Gépi kód

  • The Boomerang Decompiler is an open-source attempt at a retargetable machine code decompiler. It is presently capable of decompiling small binary files (Pentium, SPARC, and PowerPC) to the C language. Boomerang is available under a BSD-like licence, and can be run on various Unix and Windows platforms.
  • REC – Reverse Engineering Compiler by Giampiero Caprino. REC is a portable reverse engineering compiler, or decompiler. It reads machine code file for one of several architectures, and attempts to produce a C-like representation of the code and data used to build the executable file. Versions of REC for several platforms can be downloaded for free.
  • dcc – Dos C Decompiler decompiles .exe files from the (i286, DOS) platform to C programs.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -