views:

335

answers:

6

How can I determine which platform or programming language was used to build a particular Windows desktop application?

+3  A: 

There are some options for specific situations, but in general, no, there is no one single and reliable way to do that.

Developer Art
A: 

There are ways to narrow down the list to what language is used, but you cannot know all the 'hows'. Plus what if there are a number of developers on different platforms? ;)

Or better yet the app is a combination of languages?

Jakub
+8  A: 
hmemcpy
+4  A: 
the_mandrill
+2  A: 

ProcessExplorer from SysInternals can be useful. It can detect .NET applications, and it lists loaded DLLs, which can help if some of them are runtime support for a language or framework.

I happen to have Nokia PC Suite installed, and ProcessExplorer says it is not a .NET application. It has loaded MFC71U.DLL and MSVCR71.DLL, which I believe are from MFC - of course Nokia PC Suite could simply be using a component written in MFC. Also there are some strings inside the EXE which look like C printf strings to me.

MarkJ
A: 

I wonder if techniques developed for natural language identification and authorship identification can be adapted to this problem. It seems to me an interesting enough research problem.

A somewhat similar question has already been posed.

MaD70