www.wikidata.de-de.nina.az
Ein Dekompilierer englisch Decompiler oder auch Reverse Compiler Reverse Engineering Compiler ist ein Computerprogramm das aus Maschinen oder Objektcode fur den Menschen wieder lesbaren Quelltext in einer Hochsprache erzeugt Er versucht den Vorgang des Kompilierens umzukehren Ein Dekompilierer ist nicht zu verwechseln mit einem Disassembler da die Assemblersprache nur eine alternative Darstellungsform des Maschinencodes ist Inhaltsverzeichnis 1 Funktionsweise 2 Einschrankungen 3 Rechtliches 4 Siehe auch 5 WeblinksFunktionsweise BearbeitenDa es fur die Kompilierung meist keine Umkehrfunktion gibt ist eine Dekompilierung eine Reverse Engineering Technik Sie wird zum erneuten nachtraglichen Erzeugen von Quellcode benutzt der auf einem ausfuhrbaren Programm basiert Der gewonnene Quellcode hat in gewissen Grenzen Ahnlichkeit mit der Ursprungsfassung des Quellcodes der zur Erzeugung des ausfuhrbaren Programms benutzt wurde Wenn in diesem ausfuhrbaren Programm zusatzlich noch Debuginformationen gespeichert sind dann konnen oft sogar die vom ursprunglichen Autor verwendeten Variablennamen Funktionsnamen und Module wieder zuruckgewonnen werden Verlorengegangen sind ublicherweise Kommentare sowie die ursprungliche Formatierung da beide Informationen typischerweise nicht mehr im Kompilat enthalten sind Die Dekompilierung von Bytecode wie z B Java und Net Framework Programmen ist in der Regel unkomplizierter als die Dekompilierung von Maschinencode da diese Systeme relativ viele Informationen des Originalquellcodes mit in die Objektdatei ubernehmen vergleichbar mit der Debug Version eines C oder C Programms Insbesondere die Typinformation und die Namen von offentlichen Bezeichnern bleiben erhalten Der dekompilierte Programmcode ist jedoch nur funktional identisch mit der ursprunglichen Quelldatei Einschrankungen BearbeitenWurde das Programm hingegen mit einer Optimierungsoption des Compilers ubersetzt und es sind keine Debuginformationen enthalten oder es wurde gar mit einem Obfuscator verschleiert dann kann der zuruckgewonnene Quelltext in Einzelfallen bis zur Unbenutzbarkeit entstellt sein Aufgrund der genannten Einschrankungen eignet sich Dekompilierung normalerweise nicht um verlorengegangene Quelltexte zu restaurieren Diese sollten ohnehin immer in vielfachen Sicherungen vorhanden sein Unter normalen Umstanden wird ein Programmierer selten einen Decompiler einsetzen Bei sehr alter Software kommt es jedoch hin und wieder vor dass die Ursprungsquellen verloren wurden oder sich auf Datentragern befinden fur die keine passenden Lesegerate mehr verfugbar sind In den Anfangszeiten der elektronischen Datenverarbeitung war es ausserdem ublich kleine Fehler durch patchen der Objektdateien zu beheben Diese Falle sind neben dem Ruckentwickeln fremder Software die einzigen Anwendungsfalle fur die Decompiler zum Einsatz kommen Rechtliches BearbeitenKommerzielle Softwareanbieter weisen in ihren Lizenzen oft darauf hin dass das Dekompilieren ihrer Produkte verboten sei sei es auch nur zu Studienzwecken oder um die Software fur den Eigengebrauch zu verandern Allerdings ist es im Recht Deutschlands nach 69e UrhG unter bestimmten Bedingungen erlaubt ein Programm zu dekompilieren soweit dies notwendig ist um die Interoperabilitat mit einem unabhangig vom ursprunglichen Programm geschaffenen Computerprogramm zu erhalten Lizenzvereinbarungen die dem widersprechen sind nichtig Siehe auch BearbeitenDisassembler Reverse Engineering auch zu rechtlichen Aspekten Weblinks Bearbeitenhttp www program transformation org Transform DeCompilation Das DeCompilation Wiki diskutiert verschiedene Aspekte der Dekompilierung Geschichte Forschung Mustersuche die generelle Herangehensweise Java Decompiler und warum diese so viel besser als Binary Decompiler funktionieren usw Nicolas Harrand Cesar Soto Valero Martin Monperrus Benoit Baudry The Strengths and Behavioral Quirks of Java Bytecode Decompilers In IEEE Hrsg 19th IEEE International Working Conference on Source Code Analysis and Manipulation 2019 ISBN 978 1 72814 938 7 doi 10 1109 SCAM 2019 00019 englisch researchgate net PDF abgerufen am 18 November 2020 Abgerufen von https de wikipedia org w index php title Decompiler amp oldid 223308284