简而言之:我想监视从应用程序到DLL的所选调用。

我们有一个旧的VB6应用程序,我们丢失了源代码(该公司当时没有使用源代码控制..)。此应用程序使用第三方DLL。

我想在新的C ++应用程序中使用此DLL。不幸的是,DLL API只是部分记录,所以我不知道如何调用某些函数。我确实有功能签名。

由于VB6应用程序使用此DLL,我想看看它如何调用多个函数。到目前为止,我已经尝试或看过 -

  1. APIHijack - 要求我为每个功能编写C ++代码。由于我只需要记录值,这似乎有点过分。
  2. EasyHook - 与1相同,但允许使用.NET语言编写代码。
  3. OllyDbg uHooker - 我仍然需要为每个函数编写代码,这次是在Python中。另外,我必须使用struct模块在Python中进行许多转换,因为大多数函数都使用指针传递值。
  4. 由于我只需要记录函数参数,我想要一个简单的解决方案。是否有任何自动化工具,我可以告诉哪些功能需要监控及其签名,然后获取详细的日志文件?

有帮助吗?

解决方案 2

更多Google搜索找到了我要找的内容: WinAPIOverride32 。它允许编写文本文件,例如:

CustomApi.dll|void NameOfFunction(long param1, double& param2);

稍后,可以在程序内部使用这些文件来记录对NameOfFunction的所有调用。现在我只需要弄清楚如何记录数组和结构参数。

其他提示

A <!> quot; static <!> quot;解决方案(在某种意义上它可以按需捕获堆栈跟踪)将是 流程监控

一个更动态的解决方案是 ApiMonitor ,但它可能太旧而无法兼容要监控的应用程序值得一试。

scroll top