Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Win表单应用程序的安全性_C#_Winforms_Security - Fatal编程技术网

C#Win表单应用程序的安全性

C#Win表单应用程序的安全性,c#,winforms,security,C#,Winforms,Security,假设我们有一个Win Forms应用程序,它有一个按钮,如果按下该按钮,它将检查一条语句,如果计算结果为真,它将执行一个操作 private void Button_Click(object sender, EventArgs e) { if(a==b) { //do something here } else { //do nothing }

假设我们有一个Win Forms应用程序,它有一个按钮,如果按下该按钮,它将检查一条语句,如果计算结果为真,它将执行一个操作

private void Button_Click(object sender, EventArgs e)
    {
        if(a==b)
        {
            //do something here
        }
        else
        {
           //do nothing
        }
    }
这里的问题是安全问题。据我所知,使用诸如IlSpy或Reflector之类的工具,可以查看源代码、修改源代码并重建新的可执行文件。因此,在这种情况下,绕过此条件对于攻击者来说是微不足道的,就像将a==a替换为a==b一样

让我们假设有一个解决方案可以完全解决这个问题,现在唯一的选择是使用类似x64dbg的调试器调试程序集

问题是:在这种情况下,是否有可能劫持应用程序的执行?
如果是,有没有办法防止这种情况发生?

//如果是,有没有办法防止这种情况发生//

Signtool是这里的助手

签名工具是一种命令行工具,用于对文件进行数字签名、验证文件中的签名以及时间戳文件

下面是一篇关于好/坏的好文章:


签署您的代码是确认您发送的东西可以被其他人信任的一个非常重要的步骤。但是,这是有代价的,因为您需要向证书颁发机构支付有效证书的费用。

人们再次拒绝投票,但没有给出解释。“signtool”怎么与OP提出的问题无关?“如果是的话,有没有办法避免这种情况?”当问题是关于用户重新编译反编译代码并明确允许跳过所有验证时,对程序集进行签名有什么意义?您的问题非常广泛,internet上提供了大量信息。最好的保护是让你的应用程序逻辑在你的服务器上运行,而你的窗口只显示/发送数据。嘿,我可以反映整个.net框架。正如@T.S.所说,微软似乎对此没有意见——关于这个话题有很多讨论。。。你真的不能保护任何代码,除非你能控制代码运行的机器。一般来说,普通用户设备(电话、笔记本电脑、台式机)不能提供太多保护。如果您需要这种类型的保护考虑游戏控制台PS/XBOX/任天堂-他们作出更多的努力,以保证执行的代码匹配您发布的代码…如果您的treat模型不那么严格,则商店应用程序将具有某种级别的保护,仅运行匹配的二进制文件。。。