Visual Studio:抑制每个 DLL 的调试输出

2023-11-29

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


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

一种方法可以以任何方式工作是API挂钩(或函数挂钩)。有不同的方法可以做到这一点。

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio:抑制每个 DLL 的调试输出 的相关文章

随机推荐

  • Android:多个警报不起作用

    在我的应用程序中 我设置了两个闹钟 在 ToogleButton 上 我将使用以下代码将其设置为打开 case R id toggleButtonTwoMonth myPrefs this getSharedPreferences myPr
  • 如何在内核中放置微秒延迟?

    我想放置微秒延迟Linux kernel 哪些函数支持它 需要添加什么头文件 你最好读书Documentation timers timers howto txt在linux内核源代码中 简而言之 您可以使用msleep unsigned
  • 为什么PWA提倡添加到主屏幕但只是创建chrome快捷方式而不是安装为apk?

    我检查所有添加到主屏幕条件 我想我在我的 PWA 中提供了所有这些 当用户访问我的 PWA 迷你信息栏时 当用户单击 添加到主屏幕 时 仅将 PWA 的快捷方式添加到主屏幕 但未安装 PWA 不在应用程序列表中 并且深层链接不起作用 UPD
  • SlimDX/DirectX9/C# - 如何访问纹理中的像素数据

    这是我在 StackOverflow 上遇到的第一个问题 万岁 我可以诚实地说 我每天都使用 StackOverflow 来处理我的工作和个人编程谜题 99 9 的情况下 我实际上也在这里找到了我需要的答案 这太棒了 我当前的问题实际上让我
  • 图像处理/超轻OCR

    我有 55 000 个图像文件 JPG 和 TIFF 格式 它们是书中的图片 每个页面的结构是这样的 一些文字 水平线 a number 一些文字 水平线 另一个号码 一些文字 任何给定页面上可以有 0 到 4 条水平线 我需要找到水平线下
  • 将 ASPX 导出为 HTML

    我们正在构建一个 CMS 该网站将由用户在 aspx 页面中构建和管理 但我们希望创建一个 HTML 的静态网站 我们现在的做法是使用我找到的代码here重载 Aspx 页面中的 Render 方法并将 HTML 字符串写入文件 这对于单个
  • Mayavi 纹理覆盖整个表面

    我想做类似的事情 使用 python 和 Mayavi2 进行 3D 地形可视化 作为输入 我有一个图像 地图 其宽度和高度以像素为单位定义 对于此图像 地图 我获得了图像 地图所代表的表面 范围 的数字高程模型 范围由最小 最大经度和纬度
  • 在Python中设置函数签名

    假设我有一个通用函数f 我想要以编程方式创建一个函数f2其行为与f 但有一个定制的签名 更多详情 给定一个列表l和 字典d我希望能够 设置非关键字参数f2到字符串中l 设置关键字参数f2到按键d和默认值的值d IE 假设我们有 l x y
  • 如何添加Access-Control-Allow-Origin?

    当我调用我的 webservice 方法时 出现以下错误 Origin http localhost 4165 is not allowed by Access Control Allow Origin 当参考网络时 我得到了像 add 这
  • 如何检索通过 insert...select 插入的行的标识?

    我正在通过类似于此的查询插入记录 insert into tbl xyz select field1 from tbl abc 现在我想检索插入记录的新生成的 IDENTITY 值 如何以最少的锁定量和最大的可靠性来做到这一点 您可以使用以
  • 如何在 Ajax 调用期间用加载图像替换 TD 内的图像

    我有一个 HTML 表格 每个单元格中都有一个图像 后面跟着一些文本 像这样的事情 td img src image gif This is a test td 我必须运行 jQuery Ajax 调用 在此调用期间 我想将图像更改为我拥有
  • 文件输入为空,但 Request.Files 中显示空“文件”

    我有一个具有以下文件输入的视图
  • 为什么 scanf 不需要字符串的 & 符号并且在 printf (C 语言)中也能正常工作?

    我现在正在学习C语言中的字符串 如何使用 scanf 来获取字符串你可以这样做 scanf s str1 对于 printf 你可以做 printf The string is s n str1 我知道对于 scanf 来说 这是因为字符串
  • 如何同步两个具有相同结构和不同服务器的MySQL表

    我有两台ubuntu服务器 并安装了Mysql 4 0 ServerA和ServerB 我想将ServerA的mysql表同步到ServerB 将ServerATable复制到ServerBTable 保持ServerATable和Serv
  • 主键违规:使用 EF Code First 进行继承

    我有以下 EF 代码第一个代码 我收到以下异常 GiftCouponPayment 不包含标识列 表已在数据库中成功创建 然而 我怎样才能摆脱这个异常呢 另外 这个异常的原因是什么 注意 只要保留域模型 首先使用代码描述 并且可以查询数据
  • Neo4j 空间密码查询 insideDistance 不返回现有节点

    我正在使用 Neo4j 2 0 的空间服务器插件 并遵循以下指南http neo4j github io spatial 添加名为 Stockholm 的节点 POST http localhost 7475 db data ext Spa
  • Windows 关闭时 Java 退出

    我有这个代码 如果我的 Java 应用程序检测到计算机正在关闭 我想退出它 我有这个问题 如果在 Windows 上单击关闭 我的 Java 应用程序将与 Android 应用程序连接断开 我想显示java应用程序已断开连接或者它将退出 C
  • YouTubePlayerFragment 后退堆栈

    我想在我的活动中使用 YouTubePlayerFragment 和 backstack 因此 当我按下后退按钮时 片段会消失 并且在将来执行某些操作 例如单击按钮 时会再次出现另一个视频 这是我的代码 public class YouTu
  • Python Polars 消耗大量内存并花费更长的时间

    这就是我正在尝试做的事情 使用 Polars 惰性数据框扫描 csv 使用函数格式化电话号码 删除空值和重复项 将 csv 写入新文件中 这是我的代码 import sys import json import polars as pl i
  • Visual Studio:抑制每个 DLL 的调试输出

    是否可以抑制第三方 DLL 的详细调试输出 我的调试输出窗口充满了它们 我无法修改有问题的 DLL 我认为没有任何简单的方法可以做到这一点 一种方法可以以任何方式工作是API挂钩 或函数挂钩 有不同的方法可以做到这一点 如果要拒绝导入调试输