gpt4 book ai didi

visual-studio - Visual Studio : suppress debug output per DLL

转载 作者:行者123 更新时间:2023-12-01 12:44:42 27 4
gpt4 key购买 nike

是否可以抑制第三方 DLL 的详细调试输出?我的调试输出窗口充满了它们。我无法修改有问题的 DLL。

最佳答案

我认为没有任何简单的方法可以做到这一点。

无论如何,一种可行的方法是API Hook (或函数 Hook )。有不同的方法可以做到这一点。

如果要拒绝调试输出的DLL直接导入OutputDebugString函数(使用dumpbin/imports thedll.dll)可以补丁PE导入地址表内存中 DLL 的 (IMAGE_THUNK_DATA) 以将引用指向不执行任何操作的虚拟函数。

如果您不清楚第三方DLL具体使用了哪些API,可以使用代码覆盖技术,让内存中OutputDebugString函数的代码您的进程将被更改(JMP 或 CALL 指令),以便您的函数将被调用,您的代码可以检查调用堆栈,如果第三方 DLL 位于其中,您将无能为力。如果您在调用堆栈上找不到第三方 DLL,您可以将调用转发到 OutputDebugString 的原始实现。

这两种描述的技术都用于 DLL 注入(inject)。在您的情况下,您的情况更简单,因为您需要在自己的流程中进行更改,因此不需要特殊的用户权限。

所有描述的技术都不像我在回答开头写的那样简单。我在回答的开头写道,我认为不存在任何简单的方法。另一方面,您不需要自己实现上述所有内容。您可以在互联网上找到足够多的计算机语言的代码示例。

关于visual-studio - Visual Studio : suppress debug output per DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8271449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com