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