.NET程序的代码混淆、加壳与脱壳

通常我们通过代码混淆、加密的形式达到软件保护的目的。在Web开发里我们接触过的可能就是JS代码加密了,可以通过对JS代码进行混淆、加密从而实现对核心JS代码的保护。如果没有接触过的可以在这里简单了解一下,这次我们就不去细说了。

在以前Win32的软件中,加壳脱壳的技术已经发展的非常成熟,美国服务器,国内有大名鼎鼎的看雪、吾爱破解等论坛,三四年前还在上学时,论坛里的大牛一直都是自己的偶像。

而.NET程序因为编译结果不是机器代码语言,而是IL语言,所以加壳脱壳相关的软件还不是很多,我搜索到了一些,如VS自带的DotFuscator、.NET Reactor、xeoncode等,这次我们就简单介绍下手边有的.NET Reactor。

1.代码混淆

代码混淆主要通过一些名称替换、移位、流程混淆的方式来实现。

先来看一个测试的DEMO程序,网站空间,很简单的一个Winform程序,实例化窗体时实例化一个User类,点击按钮显示用户名,这样也可以测试加密、加壳后程序是否能够继续运行。

1usingSystem;2usingSystem.Windows.Forms;34namespaceCodeObfuscator5{6publicpartialclassForm1:Form7{8privatereadonlyUser_currentUser;9publicForm1()10{11InitializeComponent();12_currentUser=newUser13{14UserID=1,16};17}1819privatevoidButtonAlertClick(objectsender,EventArgse)20{21MessageBox.Show(_currentUser.UserName);22}23}2425publicclassUser26{27publicintUserID{get;set;}28publicstringUserName{get;set;}29}30},香港服务器要铭记在心;每天都是一年中最美好的日子

.NET程序的代码混淆、加壳与脱壳

相关文章:

你感兴趣的文章:

标签云: