从逆向工程中保护 C++ DLL
Secure C++ DLL from reverse engineering
我有一个必须保护的 C++ DLL。我的意思是我的问题是,当我使用反编译器时,我可以看到我的函数名称,然后这很容易逆转。
所以我的问题是:如何保护我的代码以隐藏函数名称、变量等以防止逆向工程?
我一直在寻找混淆但从未找到本机 C++ 代码的解决方案(仅托管代码)。
谢谢。
你能写一个脚本来遍历 .cpp 和 .h 文件并使函数名称成为一些随机的乱码吗?
如果函数名称是泄露的,请编写一个小程序来检查文本文件(在编译它们之前)并更改所有函数名称。
我不知道这是否有帮助,但它至少会隐藏名字。
您可以为此使用预处理器。例如,只需构建一个包含所有函数名称的列表并给它们起无用的名称,如下所示:
#define FunctionFoo f1
#define FunctionBar f2
etc
在您的源代码中,您将继续通过函数的真实名称(FunctionFoo
等)调用函数,但在编译后,剩下的将是无意义的名称,例如 f1
、f2
等
我有一个必须保护的 C++ DLL。我的意思是我的问题是,当我使用反编译器时,我可以看到我的函数名称,然后这很容易逆转。
所以我的问题是:如何保护我的代码以隐藏函数名称、变量等以防止逆向工程? 我一直在寻找混淆但从未找到本机 C++ 代码的解决方案(仅托管代码)。
谢谢。
你能写一个脚本来遍历 .cpp 和 .h 文件并使函数名称成为一些随机的乱码吗?
如果函数名称是泄露的,请编写一个小程序来检查文本文件(在编译它们之前)并更改所有函数名称。
我不知道这是否有帮助,但它至少会隐藏名字。
您可以为此使用预处理器。例如,只需构建一个包含所有函数名称的列表并给它们起无用的名称,如下所示:
#define FunctionFoo f1
#define FunctionBar f2
etc
在您的源代码中,您将继续通过函数的真实名称(FunctionFoo
等)调用函数,但在编译后,剩下的将是无意义的名称,例如 f1
、f2
等