C#写出来的代码,反编译之后能看到源代码,怎么样防止别人的反编译。求高手指点

2024-11-20 06:59:56
推荐回答(2个)
回答(1):

C#代码最终会被编译为 IL,对 IL 进行逆向工程比较简单,因此一种办法是向第三方购买一个混淆器(obfuscator),能通过打乱程序集元数据中的私有符合名称,让人难以阅读。但本质上,这种保护是有限的,只是难以阅读,而不能从根本上避免。
另一种办法是,在非托管模块中实现你比较重要的算法,然后通过 CLR 的平台互操作,来使托管代码调用它,这样程序仍然能够正常工作,但对非托管的本地代码进行反编译,就很困难。
一般来说,除非你的这部分代码非常重要,或涉及核心机密,才需要考虑防止反编译的做法。一般来说,混淆器也足够了。

回答(2):

混淆与加密!

混淆只是将一些变量等关键词变是毫无意义,可读性极差。加密目前国内较好的是maxcode,多费版本只有15天.