Assembler -> EXE



  • Wie kann ich code den ich mit IDA "erstellt" habe (also eine exe auseinandergenommen) wieder compilen. Ich würde das ganze am liebsten kopieren und in meine Visual C++ IDE einfügen und dann dort kompilen.



  • also mal erstens : ASSEMBLER IST KEIN COMPILER!
    nie gewesen.
    zweitens : Vergiss C++. Was du brauchst ist, wie der Name schon sagt einen ASsembler..

    Such mal nach dem nasm. Der kann Intel-Syntax und ist free...



  • Um Assembler code ausführen zu können muss man es sicher noch in Maschinensprache übersetzen, also compilen. Ich wollte nur mit Visual C++ und dem __asm {}; Schlüsselwort das ganze einfügen und compilen. Mit Assembler bezeichnet man doch einen Compiler oder?



  • Assembler und Compiler sind Übersetzungsprogramme - ein Compiler ist aber wesentlich komplexer

    Man kann den Editor von MSVC auch nutzen um z. B. darin NASM Assembler Code zu programmieren und zu übersetzen:
    http://turing.fh-landshut.de/~jamann/msvs.pdf



  • Woertlich bedeutet "Assembler" "Monteur" oder "Zusammenbauer", "Compiler" bedeutet "Anhaeufer" oder "Zusammensteller". Eine andere wichtige Komponente ist der "Linker" (oder "Verbinder"), den man braucht, um ausfuehrbare Programme zu erzeugen.

    Frueher gab es nur Assembler, die einen Assembler-Quelltext nach Maschinencode uebersetzt haben. (Frueher hiess der Linker uebrigens noch Link Editor, "Verbindungs-Bearbeiter")

    Der Vorgang vom Assembler-Quelltext zum fertigen Programm sah damals (und heute) ungefaehr so aus:

    Quelltext ➡ Assembler ➡ Link-Editor ➡ Executable

    Mit der Erfindung der Hochsprachen in den 50ern und 60ern wurden auch Compiler erfunden. Dadurch veraenderte sich der Vorgang zu:

    Quelltext ➡ Compiler ➡ Assembler ➡ Link-Editor ➡ Executable

    In Visual C++ ist ein Assembler integriert, er wird aber normalerweise nur intern aufgerufen. Es ist z.B. moeglich, mit dem Compiler-Flag "/Fa" auch Assembler-Quelltext zu erzeugen, den man dann aendern kann, bevor er assembliert wird.

    Der Assembler MASM ist bei Visual C++ dabei, und kann anstatt von Inline-Assembly (mittels "_asm { }") verwendet werden.

    Die Visual C++ IDE nimmt auch Assembler-Quelldateien (Dateiendung .asm), man kann diese also in sein Projekt einfuegen und mituebersetzen lassen.


Anmelden zum Antworten