我有旧的 Delphi 应用程序。这个应用程序从服务器获取会话密钥,使用这个密钥做一些秘密的事情,比如散列等,然后将密码发回服务器。服务器知道如何从此密码中检索数据。所以简单地说,它是通过默默无闻的安全性。
我想用 C# 重写这个应用程序,然后使用混淆软件来隐藏创建秘密数据的过程。
C# 混淆应用程序是否会比未混淆但二进制的 Delphi 应用程序或多或少“安全”?破解Delphi代码还会更难吗?
注意:我非常清楚,通过默默无闻的安全性并不是真正安全的。
我有旧的 Delphi 应用程序。这个应用程序从服务器获取会话密钥,使用这个密钥做一些秘密的事情,比如散列等,然后将密码发回服务器。服务器知道如何从此密码中检索数据。所以简单地说,它是通过默默无闻的安全性。
我想用 C# 重写这个应用程序,然后使用混淆软件来隐藏创建秘密数据的过程。
C# 混淆应用程序是否会比未混淆但二进制的 Delphi 应用程序或多或少“安全”?破解Delphi代码还会更难吗?
注意:我非常清楚,通过默默无闻的安全性并不是真正安全的。
由于 IL 比程序集简单得多,我想说逆向工程 .NET 程序集(无论是否混淆)比真正的二进制文件更容易。此外,由于 .NET 编译器将大部分优化工作留给了 JIT 编译器,因此与已编译的二进制文件相比,IL 非常简单。
“经过 C# 混淆的应用程序是否会比未经过混淆处理但二进制的 Delphi 应用程序更“安全”?破解 Delphi 代码会更难吗?
我认为如果不了解您的威胁模型,就不可能回答您的问题。谁想攻击应用程序?他们的复杂程度如何?他们想通过攻击达到什么目的?
.NET 框架类库具有一些强大的安全功能,还有SecureString类。因此,这可能会提高您的安全性。
FWIW,我更愿意攻击托管代码而不是本机代码。但是如果有足够的动力,我也很乐意进攻。