【发布时间】:2016-03-08 07:16:22
【问题描述】:
我有一个必须保护的 C++ DLL。我的意思是我的问题是,当我使用反编译器时,我可以看到我的函数名称,然后很容易反转。
所以我的问题是:如何保护我的代码以隐藏函数名称、变量等以防止逆向工程? 我一直在寻找混淆,但从未找到本机 C++ 代码(仅托管代码)的解决方案。
谢谢。
【问题讨论】:
-
你能给我们看看你的代码吗?
-
您的目标是什么环境,您使用的是什么编译器?您正在使用哪些编译器选项?如果反编译器能够从机器代码(名称和所有)重新构建您的 c++ 函数,则函数名称必须包含在已编译程序集中的某个位置。这让我感到惊讶,因为我想任何相当健壮的优化编译器都会将名称更改得面目全非,以减少编译程序集的大小并缩短程序加载时间。
-
@dogjones 如果函数是从 DLL 加载的,那么编译器通常别无选择,只能将这些名称原样嵌入到可执行文件中。
-
啊,我明白了。我以为 OP 是在问如何防止人们对他的 DLL 的底层结构进行逆向工程。混淆您打算向库用户公开的函数名称对我来说似乎是浪费时间......
标签: c++ dll reverse-engineering