Autor Thema: Pure Pascal / De-Compiler  (Gelesen 15120 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

rainers

  • Gast
Pure Pascal / De-Compiler
« am: So 12.08.2012, 09:19:00 »
Hallo,

gibt es so etwas als frei verfügbare Software?
Suche im Netz hat für mich nichts Brauchbares (nur Pascal für Windows) ergeben.

Danke.
Rainer

gstoll

  • Gast
Re: Pure Pascal / De-Compiler
« Antwort #1 am: Mo 13.08.2012, 22:22:22 »
gibt es so etwas als frei verfügbare Software?

So ganz habe ich jetzt nicht verstanden was Du sucht.

Einen Pascal Compiler oder ein Werkzeug mit dem man ein Programm zurück übersetzen kann in einen Pascalquellcode?

Wenn letztes dann ist zumindest mir nichts bekannt. Wobei dann die Frage wäre weswegen Du sowas benötigst?

Offline 1ST1

  • Benutzer
  • Beiträge: 8.661
  • Gesperrter User
Re: Pure Pascal / De-Compiler
« Antwort #2 am: Mo 13.08.2012, 22:44:55 »
Pascal ist ja eine der Sprachen, die sehr gut lesbar ist - ich meine für uns Menschen - weil Programmierer selbsterklärende Funktionsnamen, Variablennamen, usw. vergeben können, und Spaghetticode kaum produzierbar ist. Ich gebe zu, auch ich habe noch nicht alles gesehen, und werde das auch nie behaupten sagen können, aber ich kann mir nicht vorstellen, dass es einen Decompiler (für Pascal, C, oder eine andere Hochsprache) geben kann, der genau das kann, sprich Funktionen und Variablen Namen geben, die etwas mit dem Sinn der Funktion oder der Variablen zu tun haben. Folglich wird man günstigenfalls Programmcode bekommen, wo die typischen Pascal-Befehle drin stehen, aber dahiner nur kryptische Variablennamen, etc. Und noch anspruchsvoller wird es, wenn du auch noch die Betriebssystemaufrufe namentlich beannt haben willst, bzw. erstmal als solche gekennzeichnet werden... Also, selbst wenn man solchen Quellcode dann vorliegen hat, wird er kaum einfacher lesbar sein, als 68000er-Assembler. Aber erstmal ein Tool finden, welches aus 68000er Assembler Pascal (oder C-Code) disassemblieren kann, für x86 wird das sicher einfacher...
- 68000
- x86
« Letzte Änderung: Di 14.08.2012, 08:59:47 von oneSTone o2o »
Ausgeloggter Mitleser, der hier NIE mehr aktiv wird. Am besten, meine Inhalte komplett löschen. Dabei berufe ich mich auf mein Urheberrecht, die DSGVO und auf die Rechte, die mir unter Impressunm&Datenschutz zugestanden werden. Tschö!

Offline ToPeG

  • Benutzer
  • Beiträge: 406
Re: Pure Pascal / De-Compiler
« Antwort #3 am: Mo 13.08.2012, 23:44:59 »
Es gibt Decompiler für Hochsprachen. Diese erkennen für diesen Compiler typische Codefragmente, und könne daraus die Quelltext-Struktur rekonstruieren. Das ist aber nicht perfekt Variablennamen sind damit kaum wiederherstellbar. Bei Libs lassen sich die öffentlichen Funktionen wider benennen. Aber das kann dennoch helfen Code zu verstehen.

Für manche GCC-Versionen gibt es Decompiler (der funktioniert aber nur bedingt), und auch für den C++Compiler von Microsoft. Ich meine Auch für Free-Pascal einen Decompiler gesehen zu haben.

Gerade Sprachen, die keinen hoch optimierten Code produzieren, ist es nicht schwer Decompiler zu schreiben. Einfache Compiler bauen aus dem Quelltext den Code mit fertigen Codeblöcke zusammen und setzen Sprungmarken zu einer "run-lib". Da kann man vieles wider rekonstruieren.

guest3199

  • Gast
Re: Pure Pascal / De-Compiler
« Antwort #4 am: Do 06.12.2012, 22:13:40 »
Es gibt Decompiler für Hochsprachen. Diese erkennen für diesen Compiler typische Codefragmente, und könne daraus die Quelltext-Struktur rekonstruieren. Das ist aber nicht perfekt Variablennamen sind damit kaum wiederherstellbar. Bei Libs lassen sich die öffentlichen Funktionen wider benennen. Aber das kann dennoch helfen Code zu verstehen.
[...]
Gerade Sprachen, die keinen hoch optimierten Code produzieren, ist es nicht schwer Decompiler zu schreiben. Einfache Compiler bauen aus dem Quelltext den Code mit fertigen Codeblöcke zusammen und setzen Sprungmarken zu einer "run-lib". Da kann man vieles wider rekonstruieren.
Erstmal - alles was Du geschrieben hast, stimmt soweit.
Allerdings kann man a) die "Symbols" beim erzeugten Compilat weglassen, dadurch würde man also nur generierte, nicht besonders sprechende Variablen- und Funktionsnamen bekommen, und b) haben die meisten kommerziellen Compiler Optimierungen im Code drin, die es sehr schwer machen, da wieder was lesbares daraus zu machen. Da es meiner Meinung nach kein fertigen Decompiler für Pure Pascal gibt, wäre es viel zu zeitaufwendig, hier selbst Hand anzulegen.
Am Einfachsten und am Erfolgreichsten zu Decompilieren waren IMHO auch nur BASIC Compiler Compilate.
Denke da ist "Neuschreiben" zielführender.