WAS ist eine .exe Datei



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • DipplInsch schrieb:

    Ich hätte mal ne grundsetzliche Frage.

    WAS IST EINE EXE DATEI

    Ich will jetzt nicht hören: "Na, ein Windows Programm", das weiss ich selber [C++er].
    Was mich interssiert: Was steht in einer exe drin, Assemblercode oder was? Was passiert, wenn ich das Programm "doppelklicke"?

    In der EXE-Datei steht das Programm in einer verschiebbaren Form (d.h. adreßunabhängig). Dein C++ Compiler erzeugt eine Liste von Code- und Daten-Segmenten, in denen der übersetzte Maschinencode bzw. die Daten Deines Programms stehen. Wenn Dein Code z.B. einen Systemaufruf macht, wird eine Referenz auf eine DLL in die Relozierungs- (Verschiebe-)Tabelle eingetragen. Bei absoluter Adressierung (also direkter Adreßreferenz) innerhalb des Codes oder der Daten werden Inter-Segment-Relozierungs-Einträge angelegt.

    Das PE-File besteht also hauptsächlich aus Code- und Daten-Segmenten, sowie Relozierungstabellen.

    Beim Laden eines Programms werden alle Referenzen aufgelöst. Windows mappt das PE-File in den Speicher des Prozesses, und löst alle internen und externen Referenzen auf. Bei DLLs z.B. werden die DLLs auch in den Speicher des Prozesses gemappt, reloziert und initialisiert. Das Ganze läuft so lange, bis alle Referenzen aufgelöst sind.

    Im Windows Platform SDK kann man z.B. unter "LoadModule()" und "PE Format Specification" mehr über das Ganze erfahren, oder auch in den Overview Kapiteln über Prozesse.



  • Eine exe Datei ist eine Datei mit der Dateierweiterung ".exe"

    Bye, TGGC



  • TGGC schrieb:

    Eine exe Datei ist eine Datei mit der Dateierweiterung ".exe"

    Bye, TGGC

    Anstatt etwas zu erzählen was der Frager explizit NICHT wissen will, könntest du
    doch einfach auch die Fr**** halten. 😡 😡



  • Was ist denn so drin in ner Executable? Also... Ressourcen, Informationen, ein paar Strings und Binärcode. Öffne doch einfach mal ne Executable mit einem Hex-Editor.



  • BloodLord schrieb:

    Öffne doch einfach mal ne Executable mit einem Hex-Editor.

    Das wird es bringen, danach ist er bestimmt 9 mal so schlau.



  • Dann eben mit einem Disassembler dann sieht er immerhin ASM Code. :p



  • Trompete schrieb:

    BloodLord schrieb:

    Öffne doch einfach mal ne Executable mit einem Hex-Editor.

    Das wird es bringen, danach ist er bestimmt 9 mal so schlau.

    Ein Texteditor reicht, um sich in Lebensgefahr zu bringen.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-41456-and-start-is-0.html



  • Daniel E. schrieb:

    Ein Texteditor reicht, um sich in Lebensgefahr zu bringen.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-41456-and-start-is-0.html

    WZF!!! 😮

    Hätte nicht gedacht, daß man Leute dazu bringen kann, wieder in Maschinencode zu programmieren!! 😃

    Wenn man wirklich ein EXE-File auseinandernehmen will: Es gibt z.B. bei VC++ ein Programm namens "DUMPBIN", wenn ich mich korrekt entsinne, mit dem man Programme als Disassembler-Code z.B. anzeigen kann (evtl. auch die EXE Header). DISASM02 ist auch so ein Programm, es gibt aber auch noch Decompiler etc. mit dem an die Daten drankommt. Oder ein "EXEHDR" Programm. Ich hab mal eins geschrieben mit Hilfe der PE-Dokumentation von Microsoft.

    Im Prinzip braucht man nur einen Disassembler / Dekompiler (ein Debugger tut's auch) und ein Buch über 80x86 Assembler (z.B. die IA-32 Referenz-Doku von Intel).

    Lange, aufregende Nächte vorm Computer sind garantiert! 😉

    (vor allem, da die Programme immer größer werden! 😉 -- und z.B. C++ ist sehr lustig, im Disassembler angeschaut! Da sieht man mal, was die Compiler für einen Quark erzeugen! 😉 )



  • Daniel E. schrieb:

    Ein Texteditor reicht, um sich in Lebensgefahr zu bringen.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-41456-and-start-is-0.html

    Ich bin geschockt...


Anmelden zum Antworten