msvcp*.dll包含C++相关函数,因此如果导入了这类dll,便可推测是C++程序。
55.1.1命名管理
命名通常以问号?开始。
获取更多关于MSVC命令管理的信息:51.1.1节
55.2 GCC
除了*NIX环境,Win32下也有GCC,需要Cygwin和MinGW。
55.2.1 命名管理
命名通常以_Z符号开头。
55.2.2 Cygwin
cygwin1.dll经常被导入。
55.2.3 MinGW
msvcrt.dll可能会被导入。
libifcoremd.dll,libifportmd.dll和libiomp5md.dll(OpenMP支持)可能会被导入。
libifcoremd.dll中许多函数以前缀名for_开始,表示FORTRAN。
55.4Watcom,OpenWatcom
55.4.1 命名管理
命名通常以W符号开始。
举个例子,下面是“class”类名为“method”的方法没有任何参数并且返回void的加密:
命名通常以@符号开始,然后是类名、方法名、加密方法的参数类型。
这些名称会被导入到.exe,.dll和debug信息内等等。
Borland Visual Component Libarary(VCL)存储在.bpl文件中,而不是.dll。比如vcl50.dll,rtl60.dll。
其他可能导入的DLL:BORLNDMM.DLL。
55.5.1 Delphi
几乎所有的Delphi可执行文件的代码段都以“Boolean”字符串开始,和其他类型名称一起。 下面是一个典型的Delphi程序的代码段开头,这个块紧接着win32 PE文件头:
数据段(DATA)最开始的四字节可能是00 00 00 00,32 13 8B C0或者FF FF FF FF。在处理加壳/加密的 Delphi可执行文件时这个信息很有用。
55.6其他有名的DLLs
- vcomp*.dll Microsoft实现的OpenMP