问题标签 [apimonitor]

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 投票
0 回答
556 浏览

debugging - 识别 PowerBuilder 10 应用程序中 combase!CStdMarshal::UnmarshalIPID 上的 NULL_CLASS_PTR_READ_c0000005 的原因

有哪些替代步骤可用于确定此访问冲突读取崩溃的根本原因。我无权访问源代码或客户环境,因此需要指定收集所需信息的步骤。该问题仅在运行 3rd 方防火墙软件时出现,当使用 ProcMon堆栈摘要功能时,可以在进程的堆栈跟踪中看到它的驱动程序。但是,我需要更明确地弄清楚问题是如何引起的,以启用来自 3rd 方防火墙供应商的修复。

我试图引导客户捕获API Monitor 跟踪Time Travel Debugging Trace,但是它们会在问题重现之前触发应用程序崩溃。

该应用程序似乎是使用 PowerBuilder 10.2.1.0 构建的。故障转储输出显示以下内容:

传递给 COM API 的参数是:

这似乎引用了具有以下注册表信息的IAccessible接口:

这似乎是指 PSOAInterface:

在 PowerBuilder 运行时(即 pbvm100.dll)中将崩溃函数反转为伪代码:

0 投票
1 回答
52 浏览

c++ - 检查给定目录树中的打开文件

有没有办法用 C++ 确定给定目录树中是否打开了任何文件?

Cmd.exe立即知道我是否尝试重命名文件夹并且该目录树中的文件当前处于打开状态。我使用 API Monitor 来确定 cmd.exe 使用NtOpenFile()后跟NtSetInformationFilewithFileRenameInformation并在文件打开时返回STATUS_ACCESS_DENIED,但我无法确定较低级别发生了什么。

我试图确保在开始批处理之前没有打开任何文件,而不必单独检查每个文件,因为目录树中可能有数十万个文件。

任何人都可以对此进行扩展吗?

谢谢,史蒂夫脱粒机。

0 投票
1 回答
234 浏览

windows - 通过 Windows API 更改轻松访问设置:SystemParametersInfo

我正在尝试通过SystemParametersInfoAPI 调用切换轻松访问中的三个设置。

例如,我可以像这样在 Windows (1) 中关闭显示动画:

我可以通过调用以下方法关闭显示桌面背景图像 (3):

但是,我找不到如何在 Windows (2) 中切换显示透明度。

参考:https ://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa

我曾尝试使用API Monitor监控 API 调用,但没有成功。它显示了上面的调用,但仅SPI_GETHIGHCONTRAST在切换透明度时调用。

有谁知道该怎么做?

易用性设置

0 投票
1 回答
269 浏览

c# - 使用 EasyHook 从 C# 连接到 Win32 打印 API

之前有人问过类似的问题,但没有收到任何答案。我的问题有点笼统。

我正在寻找一种在 C# 应用程序中使用EasyHook 库的方法,这将使我能够拦截来自例如 notepad.exe 的关键打印 API 调用。

我的目标是将记事本的打印重定向到与选择的记事本不同的打印机

当然,这只是一个人为的测试。但如果证明成功,我将使用该解决方案从无法配置目标打印机的实际遗留应用程序重定向打印。它只是打印到系统默认打印机,用户并不总是可以接受。

此外,该应用程序的原始源代码在多年前供应商停业时已经丢失,因此没有机会对其进行修改。但正如解释的那样,我希望使用 API 挂钩来解决它。

现在,问题是我不完全确定要挂钩哪些 API!

使用API Monitor v2我能够确定记事本调用了OpenPrinterW内部PrintConfig.dll。我无法找到这个特定 DLL 的标头,但我在winspool.drv中找到了一个非常相似的函数。

注意:我已经确定之前的陈述是错误的,这让我很高兴!除了winspool.drv中的功能之外,没有任何其他功能。我误读了 API Monitor 的输出,并假设它PrintConfig.dll是实现库,而实际上它只是调用库。呸!但可悲的是,仍然没有雪茄,所以问题是存在的。

不幸的是,我所有的钩子尝试都失败了。我的代码根本没有被调用。另一方面,在我的所有测试中,钩子例如kernel32.dll's 的工作正常。ReadFile

值得一提的是,我并没有特别赞同挂钩的想法OpenPrinterW。我选择从这里开始的原因是:

  1. API Monitor 显示它确实是被调用的那个(至少被记事本调用)。
  2. 看起来是正确的,因为它接受打印机名称并返回一个句柄,然后将其传递给其他打印调用。如果我可以在调用实际之前更改我的钩子中的打印机名称OpenPrinterW,我会觉得我可能 90% 在那里。

所以...有什么想法吗?

0 投票
1 回答
98 浏览

embedded - Segger Jlink flash下载机制

我正在使用 Rohitab 出色的 API 监控工具来监控 Keil uVision 对 Segger 的 JLinkARM.dll 进行的 DLL 调用,以便我可以在自动化测试环境中复制它们。

作为其中的一部分,我试图了解 uVision 与闪存加载程序通信以下载正在调试的图像的机制。

我知道 uVision 下载是一个闪存加载程序到目标设备的 RAM,并且加载程序与板载闪存交互以擦除它并下载新图像,尽管我很难看到由 uVision 进行的 DLL 调用以实际流式传输图像下载到闪存加载器。

我本来希望看到一大堆JLINKARM_WriteMem调用来流式传输数据,但我没有。我可以看到一堆JLINK_WriteRegJLINK_ReadReg调用,但不足以构成图像。我的猜测是它们用于监视闪烁过程。我知道 Jlink 支持许多与 Flash 下载相关的 API,但我没有看到它们在这里使用。我也没有看到任何经过的路径。JLink 自己的日志文件在这里同样没有帮助。我在这里缺少一些带外机制吗?

0 投票
1 回答
108 浏览

apimonitor - 如何在 API Monitor 中激活/启用进程通知功能?

API Monitor具有自动监视新进程启动并询问您是否要监视它的功能。但是,我无法使它真正起作用。我能找到的程序中唯一似乎相关的选项是文件菜单“暂停进程通知”选项。但是,这是禁用的,这给我的印象是它无法关闭,而且它应该“开箱即用”自动工作。但是每当我开始一个新进程时,什么都没有发生。

具体来说,我指的是这里描述的功能:

进程通知

API Monitor 拦截进程创建并允许您选择要监视的进程。每次系统创建进程时,都会显示一个通知窗口,其中包含监视、跳过或终止进程的选项。这对于监视生命周期较短的进程或在后台自动启动的进程特别有用。进程通知还可用于监视在不同桌面上运行的应用程序,例如许可.exe(UAC 提示符)。

以下屏幕截图显示了在启动需要提升的应用程序时显示的进程通知窗口的示例

在此处输入图像描述

我已经尝试过以普通用户和管理员身份运行的 32 位和 64 位版本的 API Monitor(版本 2.0 Alpha-r13);没什么区别。

如何激活此功能?


我想使用这个功能的具体原因是我有A一个启动 process的进程BB我需要监控它。A并且B每次只运行几秒钟,所以我无法手动让它足够快地监控。

0 投票
0 回答
61 浏览

windows-services - 使用 rohitab API monitor 监控 Windows 服务启动

有没有办法使用 Rohitab API Monitor 监控 Windows 服务启动?看起来只能附加到正在运行的进程。谢谢,加布里埃尔