3

我们的程序使用第三方库(用 c++ 编写的桌面应用程序),库受到反调试代码、加密/解密层、垃圾代码、触发异常和其他反调试技术的保护,无法正常工作调试模式(在 Visual Studio 2010 上)。

我在库中只使用了两个函数,其余的代码越来越大,但是因为我不能在调试模式下运行它,所以开发起来越来越难。所以我的问题是将这个库与我的应用程序分开并使用调试支持,但仍然能够使用这两个函数,因为我们的应用程序需要它们,这可能是一种实用的方法。

4

2 回答 2

3

如果你需要调试你的库的真实行为(即你不能模拟它),我建议你将库封装在一个小的可执行文件中,通过某种进程间通信(ZeroMQ ... )。

在您的软件中,实现一个包装器,该包装器发布一个看起来像原始库的接口,并通过您的进程间通信调用可执行文件。

由于该库位于不同的可执行文件中,因此不会阻止您调试程序。

于 2013-06-04T14:39:34.550 回答
2

如果您只使用受保护库中的少数函数,您可以创建自己的库,其接口与受保护库中的相同,并使用一些存根数据实现这些函数。

于 2013-06-04T10:48:46.953 回答