1. .NET could be identified by import which you can see using dependency warker - check if there is an import of [``mscorlib.dll``][1] which is a core lib of .net framework. 2. C++ can be identified by 3. looking at the assembly - it uses [this call convention][2]. 4. [PEid][3] can show partial info about what compiler and run-time were used. In general it uses list of signature for that. 5. [Detect It Easy][4] - this tool is still maintained and has pretty interesting features. [1]: http://www.danielmoth.com/Blog/mscorlibdll.aspx [2]: http://en.wikipedia.org/wiki/X86_calling_conventions [3]: http://tuts4you.com/download.php?view.398 [4]: http://ntinfo.biz/index.html