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