是不是说C#可以进行逆向工程?如何轻松做到这一点呢?我们可以说C#在安全性方面还不够好吗?与C#相比,与反编译相比,C++又如何呢?
发布于 2009-10-01 09:27:40
这是真的!
使用Reflector查看您自己的一个可执行文件。
这是否意味着C#“在安全方面还不够好”?不,这不是那个意思。
C#的安全性没有任何问题。如果你不想让世界知道你发布的可执行文件,你只需要确保你不会把任何秘密放在里面。(这几乎适用于任何语言,不仅仅是C#。所有的可执行代码都可以进行反向工程,只是某些语言/框架比其他语言/框架更容易。)
发布于 2009-10-01 09:38:15
哦,亲爱的。
即使你用C或其他语言编写你的程序,你总是可以从可执行文件中提取机器代码(即使它是一些奇怪的自我修改的代码),然后你总是可以得到汇编表示。这是必要的,因为CPU只能执行机器代码。这对于为任何图灵机编写的任何程序来说都是固有的。
这一事实在任何游戏或应用程序发布几天后就会出现裂缝,无论开发人员多么努力地试图混淆代码,都很好地说明了这一点。有一些混淆技术,但最终,总是有可能对机器代码(或.NET中的IL代码)进行逆向工程。市面上也有非常好的汇编-> C反编译器。
只要接受这样的事实,你的代码可以被逆向工程,如果有人需要足够的源代码并愿意在上面投入一些时间,你就会做到这一点。通过牢记这一点来设计你的软件。
发布于 2009-10-01 09:56:49
显然,您可以使用来查看其源代码。但是你可以使用像这样的混淆器来使它变得有点困难。
但正如每个人都说的那样,你不能让它变得不可能逆向工程。
https://stackoverflow.com/questions/1502888
复制相似问题