Pico Geschrieben 13. April 2003 Geschrieben 13. April 2003 Hallo zusammen, ich werd immer wieder danach gefragt und inzwischen interressiert es mich auch brennend. wie findet man bei einer exe datei herraus in welcher sprache sie geschrieben ist? danke im vorraus Gruß Pico Zitieren
Klotzkopp Geschrieben 13. April 2003 Geschrieben 13. April 2003 Pauschal lässt sich das nicht feststellen. Das PE-Dateiformat beinhaltet AFAIK keine diesbezüglichen Informationen. Allerdings können die DLLs, die das Programm braucht, Hinweise geben. Mit dem Dependency Walker (gibts beim Visual Studio 6 oder hier) kann man sich die abhängigen DLLs anzeigen lassen. MSVCRT.DLL oder MSVCRTD.DLL sind ein eindeutiges Indiz für Visual C++, bei VB-Programmen sollte eigentlich immer eine VBRUN*.DLL dabei sein. .NET-Programme brauchen immer MSCOREE.DLL. Eine Unterscheidung zwischen den einzelnen .NET-Sprachen könnte schwierig werden. Zitieren
Pico Geschrieben 14. April 2003 Autor Geschrieben 14. April 2003 ich hatte mir auch mal was von disassemblen sagen lassen, was hat das damit zu tun? ist das nicht nur auf eine sprache bezogen? Zitieren
nic_power Geschrieben 14. April 2003 Geschrieben 14. April 2003 Hallo, durch das Disassbemblieren erzeugst Du aus einer binaer-Datei (ausfuehrbarer Datei, Objektfile, Bibiothek) mehr oder weniger lesbaren Assembler Code. Es gibt verschiedene Merkmale an denen man erkennen kann, welche Sprache verwendet wurde. Eine 100% sichere Methode gibts aber nicht. Einige Compiler schreiben eine Kennung in den Datei-Header die eindeutig ist, die Funktions- und Symbolnamen koennen - sofern vorhanden - ebenfalls weiter helfen (C++ Demangling ist recht leicht zu erkennen), Ein- und Ausstiegspunkte in Funktionen und die Parameteruebergabe sind zum Teil ebenfalls compileraebhaengig. Nic Zitieren
TAZttDevil Geschrieben 16. April 2003 Geschrieben 16. April 2003 Hi in älteren Versionen von VB und Delphi (hier bin ich mir aber nicht sicher), steht das sogar im klartext in der *.exe .. Aber ich denke das ist von den einstellungen des linkers abhängig.. aber du kannst ja einfach mal eine binäre file nehmen und die mit nem hex-editor öffnen.... am assemblercode eine Programmiersprache zu erkennen ist fast unmöglich. Alleine der Visual C Compiler hat zig optionen zur optimierung der erueugten codes... Im Debug-Mode ist der code klar, nur wenn man den z.B. Geschwinidgkeitsoptimiert Compiliert, machen die in Assemlber ganz wilde sachen mit Sprungtabellen und co. sich da durch zuwühlen macht echt keinen spaß.. Gruß Taz Zitieren
nic_power Geschrieben 16. April 2003 Geschrieben 16. April 2003 Original geschrieben von TAZttDevil nur wenn man den z.B. Geschwinidgkeitsoptimiert Compiliert, machen die in Assemlber ganz wilde sachen mit Sprungtabellen Gerade daran kann man unter Umständen sehr leicht erkennen, welcher Compiler eingesetzt wurde, da die Optimierungsmechanismen stark compilerabhängig sind. Beispielsweise ob und wie ein Loopunrolling vorgenommen wurde, wie die Entry- und Leave-Statements von Funktionen aussehen und wie Sprünge und Funktionsaufrufe realisiert sind (Optimierung von Stack-Layouts, Registerverwendung, etc). Nic Zitieren
HolzOnkel Geschrieben 16. April 2003 Geschrieben 16. April 2003 ...mal blöd dazwischen gefunkt... wenn jemand die EXE rausgibt, ohne sie vorher zu verschlüsseln, kann man den Code bei VB und den anderen "Scriptsprachen" (Aua, nicht hauen ) eh in der EXE direkt lesen. :mod: Daraus lässt sich schon einiges zurück schliessen... Gruss, der Onkel Zitieren
nic_power Geschrieben 16. April 2003 Geschrieben 16. April 2003 Hallo, ich glaube, Du bringst da einige Dinge durcheinander. Eine Skriptsprache ist nicht mit compiliertem Code vergleichbar. Ausführbare Dateien werden üblicherweise nicht verschlüsselt. Nic Zitieren
HolzOnkel Geschrieben 18. April 2003 Geschrieben 18. April 2003 ..durcheinander? Ich denke nicht... mach mal ne VB-Exe mit Notepad auf. Das mit der Scriptsprache war natürlich nicht ernst gemeint, sonst würde es nicht in ' " ' stehen.. ;-) Gruss, der Onkel Zitieren
PeliWeli Geschrieben 18. April 2003 Geschrieben 18. April 2003 Hi, wie Du den Code mittels Notepad von VB .exe Dateien lesen willst musst Du mir noch mal zeigen. Man kann damit erkennen das es sich definitiv um ein VB-Programm handelt und man kann auch noch den einen oder anderen Namen der Steuerelemte im Klartext lesen. Auch den einen oder anderen Befehl kann man erkennen aber man kann nicht den Code in Klartext lesen. Gruß Zitieren
HolzOnkel Geschrieben 19. April 2003 Geschrieben 19. April 2003 ...drück ich mich irgendwie unklar aus? :confused: Ich habe nie behauptet, dass man den ganzen Sourcecode direkt auslesen kann, oder? Man kann nur Sourcecode lesen, und in den meisten Fällen reicht... mehr dachte ich eigentlich nicht geschrieben zu haben... verwirrt, der Onkel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.