views:

349

answers:

3

Possible Duplicate:
Find Programming Language Used

So, I have an application consisting of an executable (exe) file and a DLL. Is there a way I can find out the specific language used to develop this software. I tried opening it in a disassembler but the contents seems garbled. Any ideas?

+1  A: 

Unlikely, unless it has a significant runtime library that gives it away. e.g. VB apps used to require a huge DLL with VB in the name, Visual C++ apps usually require the C++ runtime to be installed. But modern languages target language-independent runtimes. Even Java .class files may have come from a wide variety of source languages.

Daniel Earwicker
+1  A: 
  1. Open the .dll or .exe in a hex editor and search for the word "copyright". Most compilers put the copyright message of the runtime library into the executable in clear text.

  2. Get IDA pro. http://www.hex-rays.com/idapro/ That is the tool to work with binaries or do reverse engineering. It will be able to find out the runtime library and maybe also the language. As far as I know a free or trial edition of Ida Pro exist.

Nils Pipenbrinck
+1  A: 

In principle, the answer is no. In practice, however, there are only a few choices:

  1. If the .dll name looks like something.dll, it's probably a native dll image, which means it was probably written in C or C++.
  2. If the dll name looks like Namespace.Something.dll, it's probably a managed dll, which means it was written in some .NET language (C#, VB.NET, etc.)
  3. You can check the dll imports for more information. If the dll uses mscoree.dll then it's a .NET dll (even if it doesn't follow standard .NET naming conventions). It may also use other language-specific dlls that provide additional clues.
JSBangs