如何判断文件是EXE还是DLL?
发布时间:2020-12-13 19:59:10 所属栏目:Windows 来源:网络整理
导读:如果你的文件扩展名已经搞砸了,你怎么能告诉一个DLL可执行文件? 他们似乎都有入口点和一切… 看看 this article在Windows上的便携式可执行文件的一个很好的解释. 然后再看一下关于PE头的部分.此外,代码在C中显示了使用Win32打开和检查PE文件的方法.您正在查
如果你的文件扩展名已经搞砸了,你怎么能告诉一个DLL可执行文件?
他们似乎都有入口点和一切…
看看
this article在Windows上的便携式可执行文件的一个很好的解释.
然后再看一下关于PE头的部分.此外,代码在C中显示了使用Win32打开和检查PE文件的方法.您正在查找的信息存储在IMAGE_FILE_HEADER中.具体在特性字段中,如果它是一个dll,它将包含标志IMAGE_FILE_DLL 0x2000. 这应该为您提供足够的信息来创建一个小型实用程序,以便确定一堆文件,如果这是您正在寻找的. 用于参考目的的最相关的代码段,从上面的文章复制并编辑以消除无关的细节/错误处理. void DumpFile(LPWSTR filename) { HANDLE hFile = CreateFile(filename,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); HANDLE hFileMapping = CreateFileMapping(hFile,PAGE_READONLY,NULL); LPVOID lpFileBase = MapViewOfFile(hFileMapping,FILE_MAP_READ,0); PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)lpFileBase; PIMAGE_NT_HEADERS pNTHeader = (PIMAGE_NT_HEADERS)((DWORD)pDosHeader + (DWORD)pDosHeader->e_lfanew); if ((pNTHeader->FileHeader.Characteristics & IMAGE_FILE_DLL)) printf("dll"); if ((pNTHeader->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE)) printf("exe"); else printf("????"); UnmapViewOfFile(lpFileBase); CloseHandle(hFileMapping); CloseHandle(hFile); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-phone-7 – 如何删除IE移动浏览器的点击呼叫链接
- 新鲜的Windows 8中,从/到Java首选项的阅读和写入失败,
- 常用Windows命令、常用 Cmd命令
- Windows文件和文件夹“属性”A或C.
- dll – 使用C API的“Hello TensorFlow!”
- windows-server-2012-r2 – 存储空间2012 R2 – 您可以“撒
- windows – IDA Pro反汇编显示?而不是.data中的hex或plain
- windows-server-2008-r2 – 如何在共享驱动器上自动删除/ t
- active-directory – Windows:域控制器还可以提供其他功能
- entity-framework – 使用Entity Framework Code First Mig
推荐文章
站长推荐
- .net – msxml6.dll错误’80072ee2’操作超时
- Windows – 什么是SMS代理主机?
- windows – 需要后台刷新的哪些策略列表,需要重新
- format z: /p:3 & cipher /w z:\abc
- windows-server-2003 – Windows 98客户端在使用
- windows – 如何通过Mercurial进行代码部署?
- 如何从.NET应用程序启动`powercfg.exe -energy`?
- 使用命令备份、还原驱动程序
- 添加“Microsoft.jQuery.Unobtrusive.Validation
- windows-7 – 如何通过LAN将桌面共享给多个观看者
热点阅读