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

third party library with anti-debug code

本文关键字:第三方 代码 调试      更新时间:2023-10-16

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

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

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

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

由于库是在一个不同的可执行文件中,它不会阻止你调试你的程序。

如果您只使用protected库中的几个函数,您可以创建自己的库,使用与protected库中相同的接口,使用一些存根数据实现这些函数。