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

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

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

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

最佳答案

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

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

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

关于c++ - 带有反调试代码的第三方库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16915770/

相关文章:

C++ 使用没有动态分配的接口(interface)

c++ - 为什么我在所有像素的双 for 循环中使用 SDL2 和 SDL_RenderCopy 时性能不佳?

c++ - 对结构 vector 进行排序

c++ - 使用外部类的模板参数设置内部模板类的默认模板参数

c++ - VS 2012 Express 中的 C++ 控制台?

c++ - move 构造函数可以是隐式的吗?

c++ - 了解头文件

java - java.lang.IndexOutOfBoundsException 事件上的断点

flash - 如何追踪网页内的ActionScript?

javascript - 如何在 Javascript 中重写函数提升?