Find Programming Language Used

2019-01-10 08:39发布

Whats the easiest way to find out what programming language an application was written in? I would like to know if its vb or c++ or delphi or .net etc from the program exe file.

14条回答
老娘就宠你
2楼-- · 2019-01-10 09:36

Here is a great video explaining how you can unpack the .exe-file, if it was packed with UPX. Software you need for this: PEiD, OllyDbg, ImpREC

After you unpacked the binary file, you are able to check with PEiD which programming language the binary has.

查看更多
冷血范
3楼-- · 2019-01-10 09:38

That's a good question. There isn't any general way to tell, but I bet most compilers and libraries leave a mark in the resulting EXE file. If you wanted to spend a lot of time on it, you could gather a bunch of EXEs written in known languages and scan for common strings. I would image you'd find some.

Dependancy Walker, which someone else mentioned would be a good way to look for telltale dependencies, like versions of MSVCRT, etc

查看更多
聊天终结者
4楼-- · 2019-01-10 09:38

The easiest way that I found (at least in computer games) was to look in the "redist" folder nested within the game's main folder. It might be obvious to some of you that are more experienced in programming yourself, but the specific purpose of the MSI in this folder is to allow the setup.exe file to automatically install the prerequisites for the game itself. For example: In Empire Total War, there is an MSI called "vcredist_x86-sp1.exe". This indicates that the game/program was written in Microsoft's "Visual C 2005" in the .NET Framework (usually). In fact, if you open the MSI/EXE, the installer should immediately indicate the language it's written in and which version. The reason I'm familiar is because I code in C# and VB in the .NET Framework and we auto-install the prerequisites for our business app. Hope this helps!

查看更多
\"骚年 ilove
5楼-- · 2019-01-10 09:40

i'd try running the .exe thru a 'strings' program to get assorted hints.

查看更多
三岁会撩人
6楼-- · 2019-01-10 09:42
  • Determine Delphi Application
  • Use eda_preview270.exe (from here) or some other spy tool and check the window class names. If they read like TButton or TfrmBlubb, it's a VCL app. If there is an "Afx" in them, it's probably MFC.
查看更多
Ridiculous、
7楼-- · 2019-01-10 09:42

Compiled languages (by this I mean no scripting languages, or Java, .NET, etc.) are compiled into CPU assembly instructions, which is essentially a one-way conversion. It is not usually possible to determine which language a program was written in. However, using a dependency walker, you could potentially determine which runtime library the program was loading (if any) and therefore determine which language it used (e.g. MS Visual C++ 9 uses msvcr90.dll).

查看更多
登录 后发表回答