有搜索已知 DLL 信息的好地方吗?

逆向工程 视窗 dll 图书馆
2021-06-30 19:04:42

我刚刚开始学习一些逆向工程,在运行时导入或调用了很多 DLL,我想知道它们的作用。我原以为会有通用 DLL 或至少所有 Microsoft DLL 的文档页面,但主要是当我在 Google 上搜索有关 DLL 的信息时,有很多如何修复丢失的 VCRUNTIME140.dll 之类的信息。

除了自己查看 DLL 或碰巧在网上的各个地方找到答案或参考之外,真的没有什么很好的方法可以获取有关 DLL 的信息吗?

2个回答

很抱歉必须纠正您,但VCRUNTIME140.dll例如没有已知的 DLL(在 Windows 7 上检查)。“已知的 DLL”实际上是一个术语,指的是一个明确定义的子集,而 NT 对象管理器正是找出哪些是已知 DLL 的方法。

但这可能不是你要问的。相反,您可能想尝试使用Dependency Walker或类似的工具来找出某些 DLL 导出了哪些函数。然后在MSDN上查找这些函数以了解它们在做什么。

但是,如果真的是您的出发点,您可能需要先拿起一本关于 Win32 API 编程的书或阅读一些教程。无论哪种方式,逆向工程都应该遵循工程部分。也就是说,工程专业知识是先决条件。在您的情况下,这意味着熟悉 Windows 的许多方面已经作为先决条件。

无论如何,DLL 已经变得凌乱/有序,这取决于你问谁。自 Windows 7 (IIRC) 起,Windows 就使用所谓的 API 集来对功能进行分组。

查看这两个有关 API 集的资源:

希望这对您入门有所帮助,但老实说,如果您还没有很好的 Windows 编程和体系结构的工作知识,您可能希望推迟为逆向工程选择 Windows 目标。


实际在Windows 7中已知的DLL可以看到(出口)使用类似的工具自己这样的列表这一个

\KnownDlls [Directory]
    advapi32.dll [Section]
    api-ms-win-downlevel-advapi32-l1-1-0.dll [Section]
    api-ms-win-downlevel-normaliz-l1-1-0.dll [Section]
    api-ms-win-downlevel-ole32-l1-1-0.dll [Section]
    api-ms-win-downlevel-shlwapi-l1-1-0.dll [Section]
    api-ms-win-downlevel-user32-l1-1-0.dll [Section]
    api-ms-win-downlevel-version-l1-1-0.dll [Section]
    CFGMGR32.dll [Section]
    clbcatq.dll [Section]
    COMCTL32.dll [Section]
    COMDLG32.dll [Section]
    CRYPT32.dll [Section]
    DEVOBJ.dll [Section]
    difxapi.dll [Section]
    gdi32.dll [Section]
    IERTUTIL.dll [Section]
    IMAGEHLP.dll [Section]
    IMM32.dll [Section]
    kernel32.dll [Section]
    KERNELBASE.dll [Section]
    KnownDllPath [SymbolicLink] -> C:\Windows\system32
    LPK.dll [Section]
    MSASN1.dll [Section]
    MSCTF.dll [Section]
    MSVCRT.dll [Section]
    NORMALIZ.dll [Section]
    NSI.dll [Section]
    ntdll.dll [Section]
    ole32.dll [Section]
    OLEAUT32.dll [Section]
    profapi.dll [Section]
    PSAPI.DLL [Section]
    rpcrt4.dll [Section]
    sechost.dll [Section]
    Setupapi.dll [Section]
    SHELL32.dll [Section]
    SHLWAPI.dll [Section]
    URLMON.dll [Section]
    user32.dll [Section]
    USERENV.dll [Section]
    USP10.dll [Section]
    WININET.dll [Section]
    WINTRUST.dll [Section]
    WLDAP32.dll [Section]
    WS2_32.dll [Section]
\KnownDlls32 [Directory]
    advapi32.dll [Section]
    api-ms-win-downlevel-advapi32-l1-1-0.dll [Section]
    api-ms-win-downlevel-normaliz-l1-1-0.dll [Section]
    api-ms-win-downlevel-ole32-l1-1-0.dll [Section]
    api-ms-win-downlevel-shlwapi-l1-1-0.dll [Section]
    api-ms-win-downlevel-user32-l1-1-0.dll [Section]
    api-ms-win-downlevel-version-l1-1-0.dll [Section]
    CFGMGR32.dll [Section]
    clbcatq.dll [Section]
    COMCTL32.dll [Section]
    COMDLG32.dll [Section]
    CRYPT32.dll [Section]
    CRYPTBASE.dll [Section]
    DEVOBJ.dll [Section]
    difxapi.dll [Section]
    gdi32.dll [Section]
    IERTUTIL.dll [Section]
    IMAGEHLP.dll [Section]
    IMM32.dll [Section]
    kernel32.dll [Section]
    KERNELBASE.dll [Section]
    KnownDllPath [SymbolicLink] -> C:\Windows\syswow64
    LPK.dll [Section]
    MSASN1.dll [Section]
    MSCTF.dll [Section]
    MSVCRT.dll [Section]
    NORMALIZ.dll [Section]
    NSI.dll [Section]
    ntdll.dll [Section]
    ole32.dll [Section]
    OLEAUT32.dll [Section]
    profapi.dll [Section]
    PSAPI.DLL [Section]
    rpcrt4.dll [Section]
    sechost.dll [Section]
    Setupapi.dll [Section]
    SHELL32.dll [Section]
    SHLWAPI.dll [Section]
    SspiCli.dll [Section]
    URLMON.dll [Section]
    user32.dll [Section]
    USERENV.dll [Section]
    USP10.dll [Section]
    WININET.dll [Section]
    WINTRUST.dll [Section]
    WLDAP32.dll [Section]
    WS2_32.dll [Section]

如果它们是您有兴趣了解的 Microsoft dll,那么 ms 通常会在其中提供对其 dll 功能的简明描述 FileVersion 信息

其他合法的 dll 也提供此信息

(恶意软件 dll 或未知作者的 dll 可能没有它或可能是伪造的,因此它只是一个指标,可以信任一个受信任的 dll 库,而不是任意二进制文件)

您可以右键单击有问题的 dll 并查看详细信息选项卡

在此处输入图片说明

或者你可以编写脚本来转储一堆 dll,如下所示

批处理文件的内容

C:\>cat dlldesc.bat
@echo off
for /f %%i in ('dir /s /b c:\windows\system32\*.dll') do powershell -c "(((get-command "%%i).FileVersionInfo).FileDescri
ption)"

执行结果

C:\>dlldesc.bat
Anywhere access client
acadficn
Ease of access  control panel
Microsoft Internet Account Manager Resources
Access Control List Editor
Security Descriptor Editor
Compatibility Tab Shell Extension Library
Action Center
Action Center Control Panel
Unattend Action Queue Generator / Executor
ADs Router Layer DLL
ActiveX Interface Marshaling Library
ADAL.Native for x86
IEAK Global Policy Template Parser
Administrative Templates Extension
adprovider DLL
ADs LDAP Provider DLL
ADs LDAP Provider C DLL
ADs LDAP Provider DLL
ADs Windows NT Provider DLL
Security Audit Schema DLL
Terminate batch job (Y/N)? y

C:\>