朋友很久以前给我说过反编译的问题,当时没有在意,总以为C++没啥问题,C#应该不会差吧。
昨天朋友再次提到这个问题,我觉得似乎有些严重,刚刚上网搜了一下,简直令我万分震惊。我的天,这是如今的软件业吗,C#写的程序就这样轻易被搞定了吗,随便下一软件,打开自己的exe,代码便顺利反编译出来,一模一样,基本上没任何差别,而且还可以直接转换为其它语言。
原本对C#了解不多,于是抓紧时间search了一把,也没啥,仅仅是中间语言,可以很便捷地被反编译,尽管微软也提供了一些混淆的机制来防止反编译,但似乎不怎么管用而且会很大程度上折磨开发人员的激情,因为变量类等名称被改的面目全非,public的变量还不能加入混淆的行列,否则,自己写的dll自己也无法调用,每次都如此,我如何调试如何打包,这又会徒增多少工作量...
我不知道微软发布这类产品的初衷是什么,尽管方便快捷,尽管见效快,但是黑道中人见效更快,而且甚至优化和完善后比原作者做的还要好上很多很多。而且,微软提供的工具也非常不适用,市面有比较好的工具但又都是付钱的,这又得徒增开发投入,看来,我真的找不出C#这类软件存在的必要了,至少对于企业用户来讲。当然我可以买加密的,可以自行写加密进一步保护,而且目前基本上所有的软件都得进一步通过加密狗加密,但像C#这类语言被反编译的如此彻底,我还绝对没有想到。如果真正如此泛滥的时候,我不知道这世界还能怎么运作,版权、发明、创新等等都是扯淡。