我们的程序(用 C++ 编写的桌面应用程序)使用第三方库,库受到反调试代码、加密/解密层、垃圾代码、触发异常和其他反调试技术的保护,这使得它不可能在 Debug模式下工作(在 Visual Studio 2010 上)。
我在库中只使用了两个函数,其余代码越来越大,但因为我无法在 Debug模式下运行它,所以开发变得越来越困难和缓慢。所以我的问题是,有什么实用的方法可以将这个库与我的应用程序分开并使用调试支持,但仍然能够使用这两个函数,因为我们的应用程序需要它们。
最佳答案
如果你需要调试你的库的真实行为(即你不能模拟它),我建议你将库封装在一个小的可执行文件中,通过某种进程间通信(ZeroMQ)发布这两个函数...)。
在您的软件中,实现一个包装器,它发布一个看起来像原始库的接口(interface),并通过您的进程间通信调用可执行文件。
由于库位于不同的可执行文件中,因此不会阻止您调试程序。
关于c++ - 带有反调试代码的第三方库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16915770/