Zum Inhalt springen

Allgemein: Sprache herrausfinden


Pico

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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ß

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...