C#可以进行逆向工程吗?怎么这么容易?我们可以说C#在安全方面不够好吗?那么C++与C#相比反编译呢?
这是真的!
使用Reflector查看您自己的可执行文件之一.
这是否意味着C#"从安全方面来说还不够好"?不,这并不意味着.
C#的安全性没有任何问题.如果您不希望全世界了解它们,您只需确保不在已发布的可执行文件中放置任何秘密.(这几乎适用于任何语言,而不仅仅是C#.所有可执行代码都可以进行逆向工程,只是某些语言/框架比其他语言更容易.)
噢亲爱的.
即使你用C语言或任何语言编写程序,你总是可以从可执行文件中提取机器代码(即使它是一些奇怪的自修改代码),然后你总是可以获得程序集表示.这是必要的,因为CPU只能执行机器代码.对于任何为图灵机编写的程序而言,这本质上都是正确的.
无论开发人员多么努力地混淆代码,在发布后的几天内,任何游戏或应用程序都会出现裂缝,这充分说明了这一事实.有混淆技术,但最终,总是可以对机器代码(或.NET的情况下的IL代码)进行逆向工程.那里还有非常好的Assembly - > C反编译器.
只需接受这样一个事实,即您的代码可以进行逆向工程,并且如果有人需要足够的源代码并且愿意花一些时间在其中.记住这一点来设计您的软件.