Sind Decompiler möglich?



  • Würdet ihr sagen, aus einer EXE Datei einen Quelltext zu erstellen, wäre mögich? Ich will net wissen, ob es sowas schon gibt, nur allein von der Philosophie her, müsste es doch möglich sein, einen möglichen Quelltext, aus einer EXE Datei herauszuholen.
    Ich weiß, dass man über google viel darüber findet, aber ich will einfach mal ein paar Meinungen sehn.

    creon



  • Bei den meisten Programmen bekommt man nur minderwertigen Assembler-Code.
    Ob eine solche Anwendung wirklich brauchbar realisierbar ist, weiß ich nicht, glaub aber eher nein. (speziell für C++, VC++,...)

    [ Dieser Beitrag wurde am 01.03.2003 um 20:13 Uhr von CrazyOwl editiert. ]



  • Stell' dir ca. 1.200 kg Mett (halb und halb) vor. Hast du? Gut! Und jetzt bastelst du aus diesem Mett ein Rind und ein Schwein!

    Zugegeben, der Vergleich hinkt ein wenig ... 🙄 aber wirklich nur sehr wenig!



  • *lol*
    Der ist geil, hat aber was Wahres.



  • Ich seh euer Problem nicht. Das Ziel ist ja nicht, den Ursprungsquelltext, den sich der Programmierer ausgedacht hat herauszufinden, sondern einen Quelltext, der das selbe Resultat ergibt.
    Es kann doch nicht sein, dass ein Computer Programm einen C++ Quelltext beispielsweise in Assembler Befehle umwandeln kann, aber das nicht andersrum hinbekommt. Das basiert doch auch nur auf Algoritmen, und jeden Algoritmus kann man mit einem anderen Algoritmus rückgängig machen.



  • klar du kannst es disassemblieren und hast nachher ein assembler programm das du wieder zu einem executable assemblieren kannst...
    c oder c++ programme zu erzeugen wird eher schwierig. vorallem denke ich das dieser output den er daraus erzeugen wird schwerer zu verstehen ist als der assembler code...
    ausserdem ist ein algorithmus nicht unbedingt umkehrbar...



  • @Creon: Um bei meinem (hinkenden) Beispiel zu bleiben - die Funktionsweise eines Fleischwolfes ist relativ leicht zu analysieren - die eines optimierenden Compilers indes nicht. Wenn es dir gelingt, den Vorgang

    Rind/Schwein - Fleischwolf - Mett

    rückgängig zu machen, stehen deine Chancen, dieses Konstukt

    C/C++ Quellcode - Compiler - Objectcode - Linker - Maschinencode

    immer noch mehr als schlecht!!!

    Aber vor 50 Jahren war eine Reise ins Weltall auch noch Utopie ...





  • JSFreak:
    Dein vergleich ist garnicht so schlecht.

    Die Wurst hat z.B. die Teile des Kopfes oder Konochen nicht mehr. Diese gehen bei der Verarbeitung verloren.
    Genauso ist es bei Software.



  • Die Wurst hat z.B. die Teile des Kopfes oder Knochen nicht mehr. Diese gehen bei der Verarbeitung verloren.

    Da würd' ich nicht d'rauf wetten ... 😃



  • theoretisch ist das wiedergewinnen eines C++ Quellcodes aus dem Binär Programm möglich. Praktisch ist es aber unmöglich, dass liegt eben daran, dass nicht aus jedem C++ Code der gleiche Assembler Code generiert wird und nach dem der Optimizer nochmal drüber gegangen ist erkennt man eh nicht mehr klar, von welcher Anweisung was kommt und dann arbeiten Computer auch nicht so "benutzer freundlich" und benutzen klar verständliche Bezeichner, sondern nur lustige Speicher Adressen, die wirklich nichts aussagen.

    Anders sieht es aber bei "künstlichen" Platformen wie dotNET und Java aus, der Bytecode ist ja nicht wirklich an die Hardware gebunden, da er vor dem ausführen eh noch einmal gejittet wird, dadurch kann man natürlich bezeichner uä. leicht im bytecode lassen. Bei dotNET soll dekompilieren übrigens sehr gute Ergebnisse bringen und die meisten "Code Confuser", die das dekompilieren erschweren sollen, arbeiten nur so, dass die Bezeichner wohl einfach nur umbenannt werden in merkwürdige Namen. Stand mal was zu dem Thema mit ein paar Beispielen in einer iX

    @JSFreak

    😃 😃


Anmelden zum Antworten