怎么都是明码?随便一个什么refractor之类的啥代码都看得到

时间:2022-09-08 20:48:41
非要自己另外想办法加密?好像很多不都知道代码是可以随便看的,以为没有源代码别人就不懂了

微软怎么想的?

10 个解决方案

#1


为什么需要模糊处理
针对 .NET 编写的程序很容易进行反向工程处理。这并不是 .NET 的一个设计缺陷,而只是由于这个现代化的中间编译语言的固有性质所致。.NET 使用表述性文件语法提供可执行代码或 MSIL(Microsoft 中间语言)代码。这些中间文件比二进制机器代码高级得多,其中充满了一眼就可看出并且最终可理解的标识符和算法。毕竟,既要做到易于理解、灵活且可扩展,同时又要隐藏关键细节,这显然很难实现。

所以,任何人只要有一个可免费得到的 .NET 反编译器就可以轻易对代码进行反向工程处理。一时间,所有人都有了更多的机会可以看到软件许可代码、复制保护机制以及专有的业务逻辑,无论这样做是合法还是非法。任何人都可出于任何目的来研究软件细节。他们能够搜索安全缺陷并加以利用,窃取独有的创意并破解程序等等。

但是,这不应该成为一种风险或发展障碍。对 .NET 平台上的知识产权问题心存疑虑的组织需要了解,有一种解决方案可帮助他们应对反向工程这个难题。模糊处理技术能够对程序集中的符号进行无迹可寻的重命名,并提供很多其他手段,从而阻止进行反编译。正确地应用模糊处理技术,可使应用程序的抗反编译保护能力以指数级增加,而应用程序不会受到任何影响。



--------------------------------------------------------------------------------

© 2002-2007 PreEmptive Solutions. 保留所有权利。

#2


微軟當時就沒想到,呵呵呵,更有就說有意,這樣才升級的更快

#3


到底有没有人不知道 C#等写的程序即使封装成EXE了一样是可以随便看源代码的?

反正我是过了很久才知道

#4


引用楼主 badiku 的回复:
非要自己另外想办法加密?好像很多不都知道代码是可以随便看的,以为没有源代码别人就不懂了

微软怎么想的?


是你才那么“以为”的吧?!

#5


顺便告诉lz,这种问题在java中即使10几年前就已经不时髦了。

#6


楼上说得对啊,我是初学,觉得这个很不可思议. 

一般的教材上都没说,但好像高手都知道. 为啥不在最入门的教材上说呢.反正MSDN联机帮助上翻遍了也没看见

完全是忽悠啊

#7


要么模糊,要么重要的部分用C/C++写成DLL,C/C++的反向工程比.Net的反射难的多,还有个办法,放弃.Net,改用其它能编译成本地代码的语言

#8


c#真的这么悲剧?

#9


使用NGen编译C#程序为本机代码,这种代码的逆向工程难度要比C++编写的软件的逆向难度要大得多.

#10


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

   

#1


为什么需要模糊处理
针对 .NET 编写的程序很容易进行反向工程处理。这并不是 .NET 的一个设计缺陷,而只是由于这个现代化的中间编译语言的固有性质所致。.NET 使用表述性文件语法提供可执行代码或 MSIL(Microsoft 中间语言)代码。这些中间文件比二进制机器代码高级得多,其中充满了一眼就可看出并且最终可理解的标识符和算法。毕竟,既要做到易于理解、灵活且可扩展,同时又要隐藏关键细节,这显然很难实现。

所以,任何人只要有一个可免费得到的 .NET 反编译器就可以轻易对代码进行反向工程处理。一时间,所有人都有了更多的机会可以看到软件许可代码、复制保护机制以及专有的业务逻辑,无论这样做是合法还是非法。任何人都可出于任何目的来研究软件细节。他们能够搜索安全缺陷并加以利用,窃取独有的创意并破解程序等等。

但是,这不应该成为一种风险或发展障碍。对 .NET 平台上的知识产权问题心存疑虑的组织需要了解,有一种解决方案可帮助他们应对反向工程这个难题。模糊处理技术能够对程序集中的符号进行无迹可寻的重命名,并提供很多其他手段,从而阻止进行反编译。正确地应用模糊处理技术,可使应用程序的抗反编译保护能力以指数级增加,而应用程序不会受到任何影响。



--------------------------------------------------------------------------------

© 2002-2007 PreEmptive Solutions. 保留所有权利。

#2


微軟當時就沒想到,呵呵呵,更有就說有意,這樣才升級的更快

#3


到底有没有人不知道 C#等写的程序即使封装成EXE了一样是可以随便看源代码的?

反正我是过了很久才知道

#4


引用楼主 badiku 的回复:
非要自己另外想办法加密?好像很多不都知道代码是可以随便看的,以为没有源代码别人就不懂了

微软怎么想的?


是你才那么“以为”的吧?!

#5


顺便告诉lz,这种问题在java中即使10几年前就已经不时髦了。

#6


楼上说得对啊,我是初学,觉得这个很不可思议. 

一般的教材上都没说,但好像高手都知道. 为啥不在最入门的教材上说呢.反正MSDN联机帮助上翻遍了也没看见

完全是忽悠啊

#7


要么模糊,要么重要的部分用C/C++写成DLL,C/C++的反向工程比.Net的反射难的多,还有个办法,放弃.Net,改用其它能编译成本地代码的语言

#8


c#真的这么悲剧?

#9


使用NGen编译C#程序为本机代码,这种代码的逆向工程难度要比C++编写的软件的逆向难度要大得多.

#10


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