2010-03-04 3 views
6

Mögliche Duplizieren:
Find Programming Language UsedWie kann die Programmiersprache für die Entwicklung einer Software identifiziert werden?

Also, ich habe eine Anwendung, die aus einer ausführbaren Datei (EXE) und eine DLL. Gibt es eine Möglichkeit, die spezifische Sprache zu finden, die zur Entwicklung dieser Software verwendet wird? Ich habe versucht, es in einem Disassembler zu öffnen, aber der Inhalt scheint verstümmelt zu sein. Irgendwelche Ideen?

+2

Duplizieren: http://stackoverflow.com/questions/371460/find-programming-language-used –

Antwort

1

Unwahrscheinlich, es sei denn, es hat eine signifikante Laufzeitbibliothek, die es verschenkt. z.B. Früher benötigten VB-Anwendungen eine große DLL mit VB im Namen, Visual C++ - Anwendungen erfordern normalerweise die Installation der C++ - Laufzeit. Aber moderne Sprachen zielen auf sprachunabhängige Laufzeiten ab. Selbst Java-.class-Dateien stammen möglicherweise aus einer Vielzahl von Quellsprachen.

2
  1. Öffnen Sie die DLL oder EXE in einem Hex-Editor und die Suche nach dem Wort "Copyright". Die meisten Compiler fügen die Copyright-Nachricht der Laufzeitbibliothek in Klartext in die ausführbare Datei ein.

  2. Erhalten Sie IDA pro. http://www.hex-rays.com/idapro/ Das ist das Werkzeug, um mit Binärdateien zu arbeiten oder Reverse Engineering. Es wird in der Lage sein, die Laufzeitbibliothek und vielleicht auch die Sprache herauszufinden.

    Evaulation und Freeware-Versionen des Tools finden Sie hier: https://www.hex-rays.com/products/ida/support/download.shtml

1

Grundsätzlich lautet die Antwort nein. In der Praxis jedoch gibt es nur wenige Möglichkeiten:

  1. Wenn die DLL-Namen wie something.dll aussehen, ist es wahrscheinlich ein native dll Bild, was bedeutet es wahrscheinlich in C oder C++ geschrieben wurde.
  2. Wenn die DLL-Namen wie Namespace.Something.dll aussieht, ist es wahrscheinlich eine verwaltete DLL, was bedeutet, es in irgendeiner .NET-Sprache (C#, VB.NET, etc.) geschrieben wurde
  3. Sie die DLL Importe um weitere Informationen zu überprüfen. Wenn die DLL mscoree.dll verwendet, dann ist es eine .NET-DLL (auch wenn sie nicht den üblichen .NET-Namenskonventionen folgt). Es kann auch andere sprachspezifische DLLs verwenden, die zusätzliche Hinweise liefern.