找出调用 win32u.dll 函数的内容

逆向工程 视窗 ollydbg x64dbg
2021-06-17 04:39:43

有一个按钮,单击该按钮时会将一些数据写入剪贴板。我正在尝试使用 DLL 注入调用此按钮执行的函数。我设法在 win32u.dll 中找到了访问剪贴板的函数,并且我能够在那里设置一个被触发的断点。显然,我不想直接调用这个函数,而是调用它的函数(从原始程序)。我怎么知道这个地址?

我无法使用按钮句柄,因为该按钮不会出现在任何 UI 间谍工具中,而且由于它是上下文菜单的一部分,一旦失去焦点,它就会消失。

我使用 x64dbg 作为调试器,但是如果您知道 OllyDbg 中的解决方案,那就没问题了,因为我知道如何使用两者。

1个回答

数据库

您至少可以通过两种不同的方式做到这一点。第一个涉及调用堆栈视图( View-> Call stack),您可以在win32u.dll触发您在该函数中设置的断点时使用该视图来自应用程序模块的第一个将是所需的。

第二种方法更加静态,并利用了Intermodular 调用转到您的应用程序模块,右键单击 ->“搜索”->“所有模块间调用”。您将获得程序调用的所有外部函数以及调用它们的位置。因此,只需搜索该 API 函数,您就会获得该模块中调用它的所有位置。

您可以查看答案以获取更多详细信息。