从反汇编程序中隐藏 C# 中的应用程序信息
在 MSIL 反汇编器中打开我的可执行文件时,它会显示我的应用程序的信息(如文字、函数、属性、资源...),即使我将它们分配为私有之后也是如此。
我怎样才能从反汇编程序中隐藏这些信息。
On opening my executable file in MSIL disassembler it shows information of my application(like literals, function, properties, resources,...) even after I assigned them private.
How can I hide these information from disassembler.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您想要寻找混淆解决方案。请记住,虽然其他代码无法访问私有成员,但它们仍然存在。然而,混淆可能会使辨别代码正在做什么变得更加困难。
You want to look for an obfuscation solution. Remember that while private members cannot be accessed by other code, they still do exist. However, obfuscation can make it more difficult to discern what your code is doing.
一个混淆者。信息仍然存在,但名称将是无意义的,旨在尽可能令人困惑。
An obfuscater. The information will still be there but the names will be nonsense designed to be as confusing as possible.
一般来说你不能。如果您担心有人对您的代码进行逆向工程,最好的选择是考虑以下技术:
最后一个选项几乎违背了 .NET 程序集的目的,但是从本机程序集到 C# 代码的逆向工程比从 MSIL 到 C# 的逆向工程要困难得多。但现实情况是,如果有人拥有您的 DLL,那么只要付出足够的努力和/或时间,就可以开发原始(或相当接近)的源代码。
Generally speaking you can't. Your best bet if you are worried about someone reverse engineering your code is to consider the following techniques:
The last option pretty much defeats the purpose of .NET assemblies however it will be much harder to reverse engineer from the native assembly to C# code than from MSIL to C#. The reality is though that if someone has your DLL(s) then given enough effort and/or time the original (or fairly close) source can be developed.