How can I determine which platform or programming language was used to build a particular Windows desktop application?
views:
335answers:
6How can I determine which framework was used to build a particular Windows desktop application?
There are some options for specific situations, but in general, no, there is no one single and reliable way to do that.
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?
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.
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.