.net程序 混淆、强签名、加密

大家都知道.net开发的软件,无论WebForm项目还是WinForm项目,发布的时候都是编译成dll或者exe文件。但是我们经常会无论是出于学习还是其他什么目的,想查看软件源代码和解除软件的某些限制。这时反编译技术就派上了用场。上面提到的reflector就是这样一个工具。


他可以把dll或者exe等目标文件反编译成源代码。如果目标文件没有经过混淆、加密等处理,往往反编译得到的源代码跟软件编译前的源代码几乎一模一样。这样就为程序的版权、安全等带来严重的隐患。

另外还有个工具ILDASM可以把目标文件反编译成IL源代码。然后我们就可以修改IL源代码,然后再使用ILASM编译这个IL源代码,就可以得到一个修改过的目标文件,这个目标文件解除了程序的某些限制,例如时间限制、使用次数限制。

那么我们如何保护我们的程序不被修改呢?

这两天实际操作了下编译、反编译、混淆。总结如下:

项目中,增加强签名。具体操作方法:右键单击项目,选择属性,找到签名选项卡,新建签名文件,输入密码即可。 

项目发布以后,对dll、exe文件进行混淆,混淆工具: Dotfuscator Professional Edition 4.2  ,如果是混淆web项目,请排除web项目文件的重命名功能。免得aspx文件无法引用dll程序集。同理HttpModule一类的引用也要注意。 

另外如果还不放心,可以对混淆过的文件进行加壳。加壳工具:  MaxtoCode.Professional.2007.v3.21-Lz0.rar 该工具我没有亲自试用过,有兴趣的自己研究。 

通过以上三层保护,应该可以对付一般的破解菜鸟了。本来文章都没什么可说的,但是想想还是介绍一下,对没有接触混淆的网友应该能有帮助。免得走弯路。

我就走了很多弯路。找Dotfuscator Professional Edition 4.3版找了好久,用其他的混淆软件也摸索了许久,这里不得不提到一个软件:Xenocode Postbuild,最新版本是2008,该软件是非常出名的混淆器。但是我没有找到好用的下载,有该软件的朋友请发给我。还有 NET Reactor(带注册文件) 也是一个混淆器,可以混淆.net 2.0以前的版本。

总结:以上提到的两个方法“强签名”和“Dotfuscator Professional Edition 4.2”混淆是简单易用的保护程序集的办法。推荐使用。 

 

转载于:https://www.cnblogs.com/zjoch/archive/2012/09/04/2670248.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本源码用.NET实现了发送方数字签名、再加密,以及接收方的解密和签名认证过程。 技术文章在:http://blog.csdn.net/lion888/archive/2010/07/11/5727647.aspx 在软件安全领域,经常要用到数字签名加密功能,在.NET 中提供了比较方便的库来实现这两个功能。 数字签名主要实现了: 1)信息的完整性保护,即信息本身或签名的任何改变,都能在接收方识别出来; 2)信息发送者的身份认证,即可以证明信息是从签名的发送者发出的,具有不可抵赖性。 加密则实现了信息的加密传输。 Microsoft .NET签名加密功能,都在System.Security.Cryptography中,详细可以查看:http://msdn.microsoft.com/en-us/library/92f9ye3s.aspx 数字签名一般采用非对称加密算法,用发送方私钥加密进行签名,接收方用发送方公钥解密进行校验(和加密过程刚好相反,用非对称算法加密时,加密方用接收方的公钥加密,接收方用自己的私钥解密)。在本文中,我们采用最常用的RSA算法。 加密一般采用对称加密算法(非对称加密一般性能较差,对被加密文本有长度限制,所以比较长的文本需要拆分逐段加密),本文采用3DES加密。 软件总体架构如下: 程序源码不再解释,说一下测试的情况: 正常测试 先用“Generate New Keys”生成RSA算法的Public/Private Key,同时生成3DES加密算法的Key/Iv,这些参数被保存在四个文本文件中,便于以后读取; 再在Tab页“Sign”的“Original Message”中输入待处理的文本,然后依次点击“1.Sign”“2.Combine”“3.Crypt”,完成对文本的签名加密,其中签名附在原始文本明文的后面; 再点击“Verify”进行签名的验证,此时必然是成功的。 模拟Cracker破解了3DES加密算法后,修改原始文本 随意修改“Original Message”内容; 不要点击“1.Sign”,只依次点击“2.Combine”“3.Crypt”; 再点击“Verify”进行签名的验证,此时必会提示验证失败。 模拟Cracker破解了3DES加密算法后,修改原始签名 随意修改“Sign”内容; 不要点击“1.Sign”,只依次点击“2.Combine”“3.Crypt”; 再点击“Verify”进行签名的验证,此时必会提示验证失败。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值