Exe Datei mit Visual Studio öffnen
Hey ich hab mal ne Frage an alle Programmierer unter uns.
Und zwar würde ich mir gerne mal eine .exe Datei mit Visual Studio 2010 öffnen, alelrdings bekomme ich das nicht hin und frage mich jetzt nach endlos langer Suche im Netz, ob das überhaupt einfach so möglich ist.
Genauer genommen handelt es sich um einen Trainer, den ich mir genauer ansehen möchte. also Visual Studio auf gemacht, Datei öffnen und Datei ausgewählt. Dann kommt allerdings die Fehlermeldung "Enumeration der Ressourcen der ausführbaren Datei nicht vorhanden" oder so ähnlich.
Gibt es da einen Umweg oder was mache ich falsch? Mit dem Texteditor hab ich es auch schon versucht, aber mit kryptischen Schriftzeichen kann ich kaum was anfangen, ein Hex-Editor hat mich auch nicht weiter gebracht.
Zudem verwundert es mich, dass im Header der Datei noch über den kryptischen Zeichen "Packed by upx Packer" mit Copyright Hinweisen steht usw.
Nur das sich die Datei mit Upx nicht wieder entpacken bzw. dekomprimieren lässt, da das Programm "file not compressed with upx" ausgibt.
Was nun? wie kann ich die Datei öffnen, editieren und vlt wieder speichern?
3 Antworten
Ich nehme an, du möchtest dir den Quellcode des Programmes ansehen, das geht nicht. Du kannst ein schon kompiliertes Programm nicht einfach mit einer Entwicklungsumgebung öffnen, da die Quellcodedatei bereits in Maschinencode umgewandelt wurde ("kryptische Zeichen").
Mit Visual Studio kannst du lediglich Quellcode erstellen und verändern und diesen dann zu einem Programm kompilieren, der umgekehrte Weg funktioniert nicht. Und mir fällt auch kein Programm ein, mit dem dies möglich wäre.
Für .Net-Anwendungen gibt es den .Net-Reflector. Dieser kann dir den Quellcode anzeigen. Allerdings ist dieser an einigen Stellen nicht 1:1 wie es der Programmierer vorgesehen hat, aber es funktioniert 1:1 (viele Wege führen nach Rom). Durch die Anwendung eines Obfuscators wirst du allerdings auch damit Probleme haben, dann sind Objektbezeichnung nichtssagend und es wird schwer für dich einzuarbeiten.
Auch andere Anwendungen kann man "dekompilieren". Das ist allerdings meist illegal und auch in den Lizenzvereinbarungen geregelt. Ein Programm dafür werde ich aber nicht nennen. Auch damit wäre es nicht einfach.
exe ist eine compilierte datei, das heißt sie liegt in maschinene code vor. und kann nur sehr teoretisch und in sehr schnelchter qualität decompiliert werden. Du brauchst eine projektdatei, des betreffenden programms
Das stimmt nicht. Nicht jede ausführebare Datei (.exe) liegt im Maschinencode vor. Vb.Net-Anwendungen nämlich nicht. Siehe dafür CLS, CLR und so weiter. Dafür brauchst du das .Net-Framework, welches diesen Code Just-in-time in Maschinencode umwandelt.
ja es gibt auch ausnahmen, trotzdem wurden diese Dateien auch kompiliert. Ob nun in Maschinencode oder in Bytecode ist visual studio auch egal
Natürlich wurde sie kompiliert. Aber eben nicht in Maschinencode. Daher ist diese Aussage von dir unweigerlich falsch.
wieso das denn? schonmal vewrsucht bytecode in visual studio zu öffnen? Klugscheißer jemand anders voll
Du machst eine Aussage: "exe ist eine compilierte datei, das heißt sie liegt in maschinene code vor."
Kurz gefasst: kompilierte Datei = immer Maschinencode
Daraus folgt: Eine kompilierte Datei ist niemals etwas anderes.
Das ist nun einmal falsch, weil eine kompilierte Datei (speziell des .Net-Frameworks betreffend) im IL vorliegt.
Kurz: IL ungleich Maschinencode
Warum du jetzt von Bytecode schreibst ist mir unklar. Du darfst aber auch gerne eine dieser Plattform angemessene Sprachkultur an den Tag legen.
Oh wie ich solche Leute hasse -.-
Bytecode - zu deiner Information wird in der programmiersprache Java generiert - ist vergleichbar mit dem Code der beim kompilieren von z.B. C# prgrammen gneriert wird (ansatzweise).
Wenn du mich jetzt darauf festnagelst, dass ich nicht neben Maschinencode alle zwischen Stufen und Variationen aufgelistet habe, dann tust du mir ehrlich gesagt ein wenig leid.
Aber naja ich fang dann mal an:
Bytecode
Kompilierter c# code
Maschinencode
Hamstersimulatorzwischencode
ach kein bock mehr.
Ich hab besseres zu tun, als bei jeder meiner Antworten darauf zu achten, dass auch ja jede noch so kleine Ausnahme berücksichtigt wurde. Besonders wenn der Fragesteller offensichtlich ein Anfänger ist und mit bytecode und konsorten sowieso nichts anfangen kann. Von mir aus kann ich ja auch mal alle deine Antworten auf eventuelle Fehlinterpretationen hin untersuchen, ich wette ich würde einiges finden. Also bitte verschone mich und den Fragesteller mit dem Rumgespame von minimal-Besserwisser-Korekturen.
Zum Schluss noch einen kleinen Wikipediaausschnitt:
"Bei der Kompilierung eines Computerprogrammes wird meist aus dem Quelltext eine Bibliothek oder ein ausführbares Programm erzeugt, die je nach Plattform beispielsweise als ausführbare Datei (executable) oder Binärdatei bezeichnet werden. "
Dich zwingt niemand zu antworten. Falls du meine Antworten durch gehen willst und jede kommentieren willst, dann bitte.
Vielleicht fängst du auch an meine Sätze zu verstehen. Es ging lediglich um deine Aussage, die so, wie sie da steht, falsch ist. Ich bin eben ein Mensch, der viele sehr genau nimmt. Falls du damit nicht klar kommst ist es dein Problem, dann beachte meine Kommentare einfach nicht. Aber dein Kommentar passt gerade überhaupt nicht zu meinen. Anscheinend schreiben wir aneinander vorbei. Wie dem auch sei ...
Also ich weiß nicht ob es völliger quatsch ist was ich schreibe :) aber ich meine das dass nicht geht weil die datei nicht mit vba gemacht worden ist. (Kann mich aber auch irren)
Das ist ne gute Frage, ich hab angenommen so ein Programm mit tausend unterstützten Programmiersprachen kann sowas?!
Hmm ja das wollte ich machen, schade das es nicht funktioniert... Trotzdem Danke für die Hilfe. :)