Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                                                                                            
                
        
我正在与一个认识C#的朋友一起编写应用程序。
我想用最难反编译的代码进行编码。
C#和C ++之间的安全性区别是什么? (在查看已编译的可执行文件中的代码方面)

最佳答案

假设发布版本没有调试信息,则相当简短且易于解释:

C/C++:您将获得汇编代码,仅此而已。根据一次反编译的知识,这可能很容易理解,或者根本不可能。这里没有一般性的答案,因为这也取决于代码本身的复杂性(即“它实际上在做什么?”)。

C#:对于所有.NET语言,反编译要容易得多,因为生成的二进制文件实际上仅包含即时语言代码,您可以将其反编译为可读代码。这并不一定会导致您获得相同的代码(变量名可能会丢失,没有注释,并且优化可能会使某些代码难以理解),但最终,它更容易理解和修改。

有可用的代码混淆器使阅读反编译的.NET代码更难理解,但是通常,您应该始终假设总会有人能够理解和反向工程您的代码,即使您的代码只是一个黑匣子。

关于c# - C#与C++安全性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17809187/

10-13 04:33