在Visual Studio中使用gflags“Show loader snaps”

j2datikz  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(112)

我试图设置“显示加载器快照”系统范围内,以便看到详细的日志时,dll的加载,但我没有看到任何额外的日志在输出控制台。

  1. 'WindowsProject1.exe' (Win32): Unloaded 'C:\Windows\System32\rpcrt4.dll'
  2. 'WindowsProject1.exe' (Win32): Unloaded 'C:\Windows\System32\oleaut32.dll'

这就是我如何设置选项:

够了吗?在“Kernel Flags”下有相同的选项,但是在该选项卡中,该选项无法保存。(尽管我在运行gflags时有管理员权限)。
是否有方法检查加载程序快照是否已启用?会有什么问题呢?

vsikbqxv

vsikbqxv1#

没有提供系统范围DLL加载程序快照日志的机制。
“Show Loader Snaps”在系统范围内应用时,仅输出内核驱动程序加载和卸载的内容。(source
对于系统范围(注册表或内核标志),此标志显示有关驱动程序加载和卸载操作的信息。
因此,您需要一个附加到系统的内核调试器来查看驱动程序的加载和卸载,但它不适用于DLL。
另一方面,它是按进程工作的:
对于每个进程(图像文件),此标志显示有关DLL加载和卸载的信息。
正如文档中所说,它适用于单个进程。在gflags中:

  • 转到“图像文件”选项卡并输入可执行文件的名称(不是完整路径,只是可执行文件的名称,例如:foo.exe)。
  • tab键。
  • 勾选“show loader snaps”复选框。
  • 用调试器启动进程。

关于Visual Studio,您将在Output窗格中看到输出:

  1. 'Test.exe' (Win32): Loaded 'G:\CPP\Test\x64\Debug\Test.exe'. Symbols loaded.
  2. 'Test.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
  3. 23ac:01f4 @ 610683718 - LdrpInitializeProcess - INFO: Beginning execution of Test.exe (G:\CPP\Test\x64\Debug\Test.exe)
  4. Current directory: G:\CPP\Test\
  5. Package directories: (null)
  6. 23ac:01f4 @ 610683718 - LdrLoadDll - ENTER: DLL name: KERNEL32.DLL
  7. 23ac:01f4 @ 610683718 - LdrpLoadDllInternal - ENTER: DLL name: KERNEL32.DLL
  8. 23ac:01f4 @ 610683718 - LdrpFindKnownDll - ENTER: DLL name: KERNEL32.DLL
  9. 23ac:01f4 @ 610683718 - LdrpFindKnownDll - RETURN: Status: 0x00000000
  10. 23ac:01f4 @ 610683718 - LdrpMinimalMapModule - ENTER: DLL name: C:\WINDOWS\System32\KERNEL32.DLL
  11. 'Test.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
  12. 23ac:01f4 @ 610683781 - LdrpMinimalMapModule - RETURN: Status: 0x00000000
  13. 23ac:01f4 @ 610683781 - LdrpPreprocessDllName - INFO: DLL api-ms-win-core-rtlsupport-l1-1-0.dll was redirected to C:\WINDOWS\SYSTEM32\ntdll.dll by API set
  14. 23ac:01f4 @ 610683781 - LdrpFindKnownDll - ENTER: DLL name: KERNELBASE.dll
  15. 23ac:01f4 @ 610683781 - LdrpFindKnownDll - RETURN: Status: 0x00000000
  16. 23ac:01f4 @ 610683781 - LdrpMinimalMapModule - ENTER: DLL name: C:\WINDOWS\System32\KERNELBASE.dll
  17. 'Test.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
  18. ...
展开查看全部

相关问题