分析恶意软件或第三方软件时,识别静态链接的库并理解库中函数的功能是一项挑战。
idenLib.exe 是一个从 .lib/.obj/.exe 文件生成库签名的工具。
idenLib.dp32/idenLib.dp64 是 x32dbg/x64dbg 的插件,用于识别库函数。
idenLib.py 是 IDA Pro 的插件,用于识别库函数。
.lib/.obj 文件),获取函数地址和函数名称列表。
使用 zstd 压缩签名
将签名保存到 SymEx 目录下。如果输入文件名为 zlib.lib,则输出为 zlib.lib.sig 或 zlib.lib.sig64。
如果 zlib.lib.sig(64) 已存在于 SymEx 目录中(来自之前的执行或旧版本的库),下一次执行将附加不同的签名。
如果你使用不同版本的 .lib 文件多次运行 idenLib.exe,生成的 .sig/sig64 文件将包含所有唯一的函数签名。
签名内部(已压缩):

idenLib.exe /path/to/file 或 idenLib.exe /path/to/directorymain 函数签名:idenLib.exe /path/to/pe -getmain
x32dbg/x64dbg、IDA Pro 插件使用:SymEx 目录复制到 x32dbg/x64dbg/IDA Pro 的主目录下

main 函数签名:如果你想为使用 MSVC 14 编译的 main 函数生成签名,你需要使用相应的编译器创建一个 hello world 应用程序,并将该应用程序作为 idenLib 的输入。

main 函数签名文件为 EntryPointSignatures.sig 和 EntryPointSignatures.sig64


main 函数签名的注意事项idenLib 使用 DIA APIs 浏览 PDB 文件中存储的调试信息。要使用 -getmain 参数运行 idenLib,你需要确保 msdia140.dll(位于 Microsoft Visual Studio\2017\Community\DIA SDK\bin)已注册为 COM 组件,方法是使用 regsvr32.exe 注册该 DLL。有两种应用签名的方式:精确匹配和使用 Jaccard 索引

C 运行时库 (CRT) 的详细信息