带有反调试代码的第三方库

时间:2013-06-04 10:43:10

标签: c++ debugging visual-c++ visual-studio-debugging

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

由于库是一个独特的可执行文件,因此不会阻止您调试程序。