问题标签 [dbghelp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
421 浏览

dll - 如何追踪哪个应用程序将 dbghelp 注入所有其他进程?

似乎在特定系统上,正在将 dbghelp.dll 加载到所有进程中。由于我认为这不是正常行为,我猜测它是由其他一些应用程序注入的。有没有办法追踪哪个应用程序正在这样做?实际的问题是这种注入导致 system32\dbghelp.dll 在我们自己安装的版本之前被加载。这是一个问题,b/c 我们需要加载我们安装的 6.7.5.0 版本,其中包括在旧 dll 中找不到的 SymGetSymbolFile。我目前打赌其他一些应用程序、防病毒软件或病毒正在调用 CreateProcessWithDll() 以在执行时将 dbghelp.dll 加载到所有应用程序中。我只是需要一些方法来弄清楚是谁在做这件事?

0 投票
1 回答
131 浏览

c++ - 如何从 DIA SDK 过滤非内核(用户导入)dll?

我需要专门过滤所有用户导入的 dll。DIA SDK 提供 SymTagCompiland 下的所有模块,其中包括所有未明确链接的内核和其他导入。

我只需要那些在运行时或编译时显式链接的依赖 Dll(模块)(在项目配置的链接器的输入区域中提到)。

我该如何过滤这个?

问候,乌斯曼

0 投票
1 回答
552 浏览

c++ - 我们可以从 DIA SDK 计算/提取虚拟表地址吗?

如果实现了 DIA SDK 的 vtable 函数,我们可以提取一个类型的 vtable 的起始基地址吗?

问候,乌斯曼

0 投票
1 回答
111 浏览

visual-c++ - 为什么 DIA SDK get_guid 总是为 Class guid 返回 Bad ptr(0x000)?

我正在使用 DIA SDK 来枚举 COM 二进制文件(dlls/exes)的类型和接口。但是 get_guid 总是为该组件内使用的每个 Class(CoClass & Interface) 返回 Bad Ptr(0x0000) 吗?

我们可以从 co 类和接口的 pdb 中获取 guid 的任何其他方法。

问候乌斯曼

0 投票
1 回答
289 浏览

c++ - dbgHelp 新版本


我想将我的 DbgHelp 版本从 5.1 升级到 6.11(我听说 5.1 有点错误)所以我下载了“Windows 调试工具”,因为那是 dbgHelp 应该在的地方,但是当我查看目录中的内容时( “C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib”),我只找到 DbgHelp.lib。DLL应该在哪里?:)
哦...如果我没有 DLL,我怎么知道 dbgHelp 的版本?

0 投票
2 回答
16697 浏览

c++ - 列出 DLL 的导出函数

我正在寻找一种方法(在 C++/Windows 中)使用 dbgHelp 列出 DLL 的导出函数(甚至可能是未导出的方法)。
有人知道哪种方法可以做到吗?

0 投票
1 回答
350 浏览

visual-studio-2005 - 使用 .dll 函数生成一个小型转储,其中应用程序不是由 Visual Studio 创建的

我有一个用 Visual Studio 2005(非托管 C++)生成的 .dll 文件。在 DLL 中的各种函数中,我可以检测错误并调用 DLL 中的另一个函数来生成 minidump(使用 dbghelp.dll)。

当使用 DLL 的应用程序也是 VS2005 生成的程序时,这非常有效。但是,当我使用 National Instrument Measurement Studio/CVI 生成应用程序时(用纯 C 语言,这并不重要),它没有得到 .pdb 文件(惊喜!)。结果,当我用 VS2005 打开生成的 .dmp 文件时,它告诉我应用程序不是通过调试构建的(但它是!)并且显示的堆栈是无用的。

CVI 应用程序成功使用了此 DLL 中的许多 (40+) 其他函数。这似乎表明从非 VS 应用程序成功访问 DLL 函数。

National Instruments 显然可以使用 DrWatson 的完整转储,所以它一定是可能的。

有人知道如何获得使用 .dmp 文件所需的内容吗?

总结一下:没有 .NET,函数访问很好,生成的 minidump 文件似乎不适用于 Visual Studio。

谢谢你的帮助。

0 投票
3 回答
6586 浏览

c++ - c++ & 上下文结构

有人知道我在哪里可以找到有关 C++ 中 CONTEXT 结构字段的一些信息吗?

0 投票
6 回答
6704 浏览

c# - 如何以编程方式读取 C# 中的本机 DLL 导入?

如何以编程方式分析本机 DLL 以读取其导入?


[编辑:我最初的问题如下所示,还有一大块有缺陷的代码。请参阅下面的答案以获取更正确的代码。]

此链接上的 C# 代码旨在打印本机 DLL 的导入。

我发现当我使用原始示例的目标 MSCOREE.DLL 运行示例代码时,它可以很好地打印所有导入。但是当我使用 GDI32.DLL 或 WSOCK32.DLL 等其他 dll 时,不会打印导入。这段代码缺少什么可以打印所有导入,例如 DUMPBIN.EXE 所做的?

0 投票
2 回答
3095 浏览

c# - 在 C# 中查看非托管 dll 上的导出表

我目前正在尝试创建一个允许我从非托管 DLL 查看导出表的 C# 应用程序。我的问题是,一旦我拥有了我需要的所有指针,我就不知道如何遍历 API 提供给我的信息。这是我现在所拥有的:

我最担心的是我可能在结构上的一些编组错误。但是,总而言之,我不知道从这里去哪里。谁能给我一些帮助?