带有反调试代码的第三方库
third party library with anti-debug code
我们的程序(用c++编写的桌面应用程序)使用第三方库,库受到反调试代码、加密/解密层、垃圾代码、触发异常和其他反调试技术的保护,这使得它无法在调试模式下工作(在Visual Studio 2010上)。
我在库中使用的只有两个函数,其余的代码越来越大,但是因为我不能在调试模式下运行它,所以开发起来越来越难,越来越慢。所以我的问题是,什么是一种实用的方法,可以将这个库从我的应用程序中分离出来,并使用调试支持,但仍然能够使用这两个函数,因为我们的应用程序需要它们
如果你需要调试你的库的真实行为(即你不能模拟它),我建议你把库封装在一个小的可执行文件中,通过某种进程间通信(ZeroMQ…)发布这两个函数。
在你的软件中,实现一个包装器,它发布一个看起来像原始库的接口,并通过进程间通信调用可执行文件。
由于库是在一个不同的可执行文件中,它不会阻止你调试你的程序。
如果您只使用protected库中的几个函数,您可以创建自己的库,使用与protected库中相同的接口,使用一些存根数据实现这些函数。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 为什么无法覆盖涉及第三方代码的模板类的运算符<<?
- 与第三方公共图书馆/代码接口
- 如何从支持linux/mac操作系统的第三方代码为我的c#项目创建dll
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- gcc 可以使用较旧的第三方库编译 C++17 代码吗?
- 修复第三方代码:"error: ‘enable_if’ in namespace ‘std’ does not name a template type"
- 在Visual Studio 2019中构建简单的点云可视化代码时,来自PCL的第三方库的多个错误
- 该代码注入第三方Qt应用程序并执行一些方法来获取Qt应用程序信息
- 如何在Visual Studio代码中使用第三方DLL
- 如何正确地将指针传递给第三方代码的成员函数
- 仅仅使用(稳定的)第三方库就可以使我的代码无法工作
- 带有反调试代码的第三方库
- 从第三方代码检查库版本
- 当第三方代码中没有警告时,为什么不将所有警告视为错误?
- 第三方代码中的编译时错误(保证有效)
- 分析我的代码(开源)和第三方代码(封闭源代码)的内存使用情况的最佳策略
- 在我的c++应用程序中包含第三方代码时遇到麻烦