New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Decompiler - Wikipedia

Decompiler

aus Wikipedia, der freien Enzyklopädie

Der Begriff Dekompilierer oder englisch Decompiler bezeichnet ein Computerprogramm, das aus den Datenbytes der Maschinensprache oder manchmal auch aus Daten im Objektcode wieder lesbaren Quellcode in einer Hochsprache erzeugt. Seine Arbeitsweise ist somit genau umgekehrt zu der eines Compilers. Dies ist nicht zu verwechseln mit einem Disassembler, der Maschinensprache in Assemblersprache rückübersetzt.

Inhaltsverzeichnis

[Bearbeiten] Funktionsweise

Dekompilierung ist eine Reverse-Engineering-Technik zum erneuten nachträglichen Erzeugen von Quellcode basierend auf einem ausführbaren Programm. Der gewonnene Quellcode hat in gewissen Grenzen Ähnlichkeit mit der Ursprungsfassung des Quellcodes, der zur Erzeugung des ausführbaren Programmes benutzt wurde. Wenn in diesem ausführbaren Programm zusätzlich noch Debuginformationen gespeichert sind, dann können oft sogar die vom ursprünglichen Autor verwendeten Variablennamen, Funktionsnamen und Module wieder zurückgewonnen werden. Verloren gegangen sind üblicherweise Kommentare, sowie die ursprüngliche Formatierung, da beide Informationen typischerweise nicht mehr im Compilat enthalten ist.

Die Dekompilierung von Java- und .NET-Programmen ist in der Regel unkomplizierter als die Dekompilierung von normalen Binary-Programmen, da diese Systeme relativ viele Informationen des Originalquellcodes mit in die Objektdatei übernehmen, vergleichbar mit der Debug-Version eines C- oder C++-Programmes. Insbesondere die Typinformation und die Namen von öffentlichen Bezeichnern bleiben erhalten. Der dekompilierte Programmcode ist jedoch nur funktional identisch mit der ursprünglichen Quelldatei.

[Bearbeiten] Einschränkungen

Wurde das Programm hingegen mit einer Optimierungsoption des Compilers übersetzt und es sind keine Debuginformationen enthalten, oder es wurde gar mit einem Obfuscator verschleiert, dann kann der zurückgewonnene Quelltext in Einzelfällen bis zur Unbenutzbarkeit entstellt sein.

Aufgrund der genannten Einschränkungen eignet sich Dekompilierung eigentlich nicht, um verloren gegangene Quelltexte zu restaurieren. Diese sollten als kostbarstes Gut der Softwarehersteller ohnehin immer in vielfachen Sicherungen vorhanden sein. Unter normalen Umständen wird ein Programmierer niemals einen Decompiler einsetzen müssen. Bei sehr alter Software kommt es jedoch hin und wieder vor, dass die Ursprungsquellen verloren wurden oder sich auf Datenträgern befinden, für die keine passenden Lesegeräte mehr verfügbar sind. In den Anfangszeiten der elektronischen Datenverarbeitung war es außerdem eine weit verbreitete Unart, kleine Fehler durch patchen der Objektdateien zu beheben. Diese Fälle sind neben dem Rückentwickeln fremder Software die einzigen Ausnahmen, für die Decompiler zum Einsatz kommen.

[Bearbeiten] Rechtliches

Aufgrund von Urheberrechtsbestimmungen ist es zumeist untersagt kommerzielle Software zu decompilieren, sei es auch nur zu Studienzwecken oder um die Software für den Eigengebrauch zu verändern. In den meisten Lizenzen für Softwareprodukte wird explizit darauf hingewiesen. Dies gilt für freie und selbstverfasste Programme selbstverständlich nicht.

Allerdings ist es nach § 69e, UrhG in Deutschland erlaubt, ein Programm zu dekompilieren, soweit dies notwendig ist, um die „Interoperabilität“ mit einem unabhängig vom ursprünglichen Programm geschaffenen Computerprogramm zu erhalten. Lizenzvereinbarungen, die dem widersprechen, sind nichtig.

[Bearbeiten] Siehe auch

[Bearbeiten] Weblinks

(allesamt in englischer Sprache)

  • http://boomerang.sourceforge.net - Der Boomerang Decompiler ist ein Versuch, einen freien Mehrzweck-Decompiler zu entwickeln. Gegenwärtig kann er kleine Binarys (Intel x86 und SPARC) nach C übersetzen. Er ist unter einer BSD-artigen Lizenz verfügbar und läuft unter Unix und Windows.
  • http://www.backerstreet.com/rec/rec.htm - REC (Reverse Engineering Compiler) von Giampiero Caprino. REC ist ein portierbarer Decompiler. Er liest eine ausführbare Datei und versucht eine C-ähnliche Repräsentation des Codes und der Daten des Programms zu erstellen. Der Sourcecode zu REC ist nicht öffentlich, aber das Programm kann für mehrere Plattformen kostenlos heruntergeladen werden.


(Deutsch)

Static Wikipedia (no images)

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 -

Static Wikipedia 2007 (no images)

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 -

Static Wikipedia 2006 (no images)

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 - 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

Static Wikipedia February 2008 (no images)

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