2010-03-04 3 views
6

Possible en double:
Find Programming Language UsedComment identifier le langage de programmation utilisé pour développer un logiciel?

Donc, j'ai une application composée d'un fichier exécutable (.exe) et une DLL. Est-il possible de trouver le langage spécifique utilisé pour développer ce logiciel. J'ai essayé de l'ouvrir dans un désassembleur mais le contenu semble brouillé. Des idées?

+2

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

Répondre

1

Peu probable, à moins qu'il ne possède une bibliothèque d'exécution significative qui le donne. par exemple. Les applications VB nécessitaient une énorme DLL avec VB dans le nom, les applications Visual C++ nécessitent généralement l'installation de C++. Mais les langages modernes ciblent des environnements d'exécution indépendants de la langue. Même les fichiers .class Java peuvent provenir d'une grande variété de langues sources.

2
  1. Ouvrez le fichier .dll ou .exe dans un éditeur hexadécimal et recherchez le mot "copyright". La plupart des compilateurs placent le message de copyright de la bibliothèque d'exécution dans l'exécutable en texte clair.

  2. Obtenez IDA pro. http://www.hex-rays.com/idapro/ C'est l'outil pour travailler avec des binaires ou faire de l'ingénierie inverse. Il sera capable de trouver la bibliothèque d'exécution et peut-être aussi la langue.

    Evaulation et versions freeware de l'outil peuvent être trouvés ici: https://www.hex-rays.com/products/ida/support/download.shtml

1

En principe, la réponse est non. Dans la pratique, cependant, il n'y a que peu de choix:

  1. Si le nom .dll ressemble something.dll, il est probablement une image dll native, ce qui signifie qu'il a probablement été écrit en C ou C++.
  2. Si le nom dll ressemble Namespace.Something.dll, il est probablement un dll géré, ce qui signifie qu'il a été écrit dans un langage .NET (C#, VB.NET, etc.)
  3. Vous pouvez vérifier les importations de dll pour plus d'informations. Si la DLL utilise mscoree.dll, il s'agit d'une DLL .NET (même si elle ne respecte pas les conventions de nommage standard .NET). Il peut également utiliser d'autres DLL spécifiques à la langue qui fournissent des indices supplémentaires.
Questions connexes