.Net DLL vs C++ DLL

.Net DLL vs C++ DLL

本文关键字:DLL C++ vs Net      更新时间:2023-10-16

如何在不查看代码的情况下区分.NET DLL和C++ dll。从任何 PE 文件资源管理器查看 DLL 后,我们可以通过查看导出表或 DLL 的其他部分来识别它吗?

你也许可以使用corflags

对于 .NET c# DLL,我得到

Microsoft (R) .NET Framework CorFlags Conversion Tool. 版本 4.0.30319.1版权所有 (c) Microsoft公司。 保留所有权利。

版本 : v4.0.30319CLR 标头:2.5PE : PE32旗帜 : 1伊利米莱 : 132位:0签名 : 0

对于我得到的C++DLL

corflags:错误CF008:指定的文件没有有效的托管标头

****更新****

我可能误解了这个问题。 这是关于类似问题的好问题。 如何测试 Windows DLL 文件以确定它是 32 位还是 64 位?

事实上,通过查看映像文件可以清楚地表明这一点,并由可移植可执行文件格式规范记录。如果目录 [IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR] 存在(不为空),则映像为托管 (.NET),否则映像为非托管映像。