.NET程序的代码加壳和脱壳、代码混淆工具和反混淆工具

免费的.NET混淆和反编译工具

一 .NET代码混淆

.NET代码混淆技术: 

Symbol renaming
String encryption and compression
Resource encryption and compression
Constant literals pruning
Method signatures overload induction
Class hierarchy linerization
Code control flow obfuscation
Assemblies merging and embedding
XML documentation filter 

 

免费的.NET代码混淆工具: 

Eazfuscator.NET 

http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx 

Skater .NET Obfuscator Freeware Light Edition 

http://www.rustemsoft.com/freeware_obfuscator.htm 
VisualStudio2010中集成的Dotfuscator for .NET community版本

 

商业的.NET代码混淆工具:

Dotfuscator for .NET  

.NET Reactor
CliSecure
Demeanor
DeployLX CodeVeil
Salamander .NET obfuscator
Skater .NET Obfuscator
SmartAssembly
Spices.Net Obfuscator

 

二 .NET反向编译

 免费的.NET反编译工具:

dotPeek 
http://www.jetbrains.com/decompiler/ 

 

商业的.NET反向编译工具:
http://www.reflector.net/ 

 

希望使用的过的回复下,看看哪个是最好用的哦! 

完! 

 

出处:https://www.cnblogs.com/itech/archive/2011/12/22/2297412.html

=======================================================================================

一、简介

  本文给大家列举一些常用的.net程序反破解代码混淆工具。同时也列取一些反混淆工具。

 

二、混淆工具

复制代码
Agile.NET (aka CliSecure)
Babel.NET
CodeFort
CodeVeil
CodeWall
CryptoObfuscator
DeepSea Obfuscator
Dotfuscator
.NET Reactor
Eazfuscator.NET
Goliath.NET
ILProtector
MaxtoCode
MPRESS
Rummage
Skater.NET
SmartAssembly
Spices.Net
Xenocode
复制代码

 

三、反混淆工具

de4dot (https://github.com/0xd4d/de4dot)

 

 

出处:https://www.cnblogs.com/songxingzhu/p/10474818.html

=======================================================================================

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

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

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

1.代码混淆

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

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

复制代码
 1 using System;
 2 using System.Windows.Forms;
 3 
 4 namespace CodeObfuscator
 5 {
 6     public partial class Form1 : Form
 7     {
 8         private readonly User _currentUser;
 9         public Form1()
10         {
11             InitializeComponent();
12             _currentUser = new User
13             {
14                 UserID = 1,
15                 UserName = "Parry@cnblogs"
16             };
17         }
18 
19         private void ButtonAlertClick(object sender, EventArgs e)
20         {
21             MessageBox.Show(_currentUser.UserName);
22         }
23     }
24 
25     public class User
26     {
27         public int UserID { getset; }
28         public string UserName { getset; }
29     }
30 }
复制代码

我们使用最常用的反编译工具Reflector对生成的exe反编译查看源码。

下面我们打开.NET Reactor进行代码混淆,载入exe后,在一般设置里可以设置压缩选项,不过设置后程序初始化速度会变慢,是因为需要将代码解压缩后再加载到内存中。

在混淆选项里将Enable设置为启用,混淆公共类型,字符串加密等常用的也设置成启用。其他的选项Tips里都有详细的解释,就不一一讲解。

 

当我们再使用Reflector反编译查看时,发现没有看到混淆后的代码,而是看到了这个结果。

猜想应该是.NET Reactor程序对exe进行处理后打了个包,我们使用查壳工具查看后发现果然是这样,外面套了一层Delphi的东西,这个还不是壳,只是一些额外数据。

关于Overlay相关内容可以查看这里

2.加壳与脱壳

加壳实际上就是一种加密方式,被加壳的程序在运行前要先运行一段附加指令,这段附加的指令完成相关操作后会启动主程序,程序就像被包在一个壳里一样,加壳的技术在病毒编写的时候也被大量使用。

我们使用北斗加壳程序对上面的exe加壳后,再来反编译看一看。

反编译后我们已经找不到之前程序任何相关名称、代码,完全被一个“壳子”包裹了起来,在程序运行时,程序将先运行我们反编译看到的main函数进行一系列的解压、解密动作后将代码加载到内存中运行原始的程序,这样就实现了对程序的保护功能。

脱壳就是对程序进行解压缩、解密,将外面的一层壳脱去后,继续进行逆向工程进行破解。 

而关于脱壳,本人也是略知皮毛,不敢胡乱卖弄,感兴趣的可以去论坛里学习相关知识。

这里介绍的混淆、加壳的方法也只是为了在需要对自己的程序进行保护时的一种方法。

觉得文章还行的话就推荐下吧,哈哈。

 

 

出处:https://www.cnblogs.com/parry/archive/2012/11/14/Dot_NET_Code_Obfuscator.html

=======================================================================================

.net混淆、反编译工具

常用的工具列表[比较常见的]

混淆器、加密

Dotfuscator

VS默认带的工具,不过是个社区版

强度不大

dotNET Reactor

使用了NativeCode 和混淆的形式

Xenocode Postbuild

专业工具

{smartassembly}.Setup.msi

 

反编译工具

Reflector

最富盛名的一个工具,很多插件都开源

Xenocode Fox

专业工具,商业版本

ildasm

Vs带的工具

组件合并、虚拟工具:方便软件发布的工具,如合并多个dll文件等

Xenocode Studio

将所有的组件和涉及的.net框架都可打在一个执行文件中,简化了部署和安装

Dotfuscator

组件合并

[处理时需要注意选择是库文件还是执行文件,两个方式不太一样,发布出去前需要用以上的反编译验证是否正确的处理了,可以起到保护的作用]

工具可找到名称

DotNETReactor.rar

Xenocode+Postbuild+2010+for+.NET.rar:可用

Xenocode_Virtual_Application_Studio_ISV_Edition.msi:windows 7下使用存在问题,其它正常

XenocodeFox2007_v5.2_build_6675.rar:fox可用,其它的需要联网

{smartassembly}.Setup.msi

dotfuscatorpe42_rt20.zip: 专业版本,和vs自带的版本功能基本一样,不过是专业版

网络资料

http://www.cnblogs.com/jason_z/archive/2009/10/19/1585804.html

分享:几款代码混淆器(DotFuscator, .NET Reactor, xenocode)

在介绍工具之前,我需要说明几点:

1.如果你编写的软件不涉及商业用途的话,本着开源的思想,本人不推荐使用代码混淆器

2.使用代码混淆器存在一定的风险,在使用前最好做好相关代码备份

3.凡是需要序列化成二进制的代码,是不能用混淆器的。混淆后的代码将不能正常序列化![类的域名等混淆后,序列化后不一样]

DotFuscator是VS里面一个自带的代码混淆器,VS——工具——Dotfuscator Community Edition

具体使用方法,及产生的混淆效果,可参考:http://blog.csdn.net/netjxz/archive/2006/12/12/1439866.aspx

.NET Reactor,这个非常小巧,免安装,而且不需要注册。他只是将代码换成随机码,但是混淆后的代码都能正常使用。

具体的使用方法都比较简单,下载地址:https://files.cnblogs.com/ghost79/DotNETReactor.rar

xeoncode 则是一款相对更加专业的代码混淆软件,混淆后的程序集可以屏蔽一些反编译工具(Ildasm之类的),具体使用方法:

用法一:
  1、导入要加密的dotNET程序或assembly文件(.dll/.exe)  
  2、选择第二个选项卡“Protect”  
  3、点击“Select   Pattern”  
  4、选中所有“Object   Type”和所有“Visiblility”  
  5、“Action”选择“Do   not   obfuscate”,Apply,把所有的内容都设为不进行混淆
  6、“Action”选择“Obfuscate”,“Visibility”只选择“Private”,Apply  
  7、右下角按下“XenoCode   Assemblies”,导出混淆后的文件
用法二:
  1、选中Application标签
  2、点击Add按钮,加载要混淆的Dll、Exe文件
  3、如果是Dll文件则选中Preset列表框中的第二项,反之选中第一项
  4、点击Apply按钮
  5、选中Protect标签
  6、选中Supress   other   reflection   tools复选框
  7、点击Select   String按钮进行设置
  8、点击XenoCode按钮完成混淆工作
  9、再换一个文件进行混合到全部文件混淆完毕为止!

以上摘自网络,仅供参考。

2009最新版,注册的license也在压缩包里

下载地址:http://d.download.csdn.net/down/1702658/Danny_Su

http://seednet.to/html2/v5199.htm

Xenocode R Virtual Application Studio 可讓您在虛擬包中定制和預先配置您的

桌面應用程式,它可以立刻在任何地方進行部署。

Virtual Application Studio的新特性:

在一個單一的可執行檔中部署複雜的應用軟體通過在一個單一預先配置的、能在任

何地方立即運行的可執行檔中的部署,大大簡化了應用程式的部署和維護。消除安

裝步驟、用戶配置、DLL hell或丟失的關聯。運行Xenocode虛擬應用程式不需要代

理或設備驅動。不具備基本設備改變的流將您的虛擬應用程式放在標準的網路共用

或網站上,使其能立即供用戶使用。不需要Active Directory、流伺服器或其他設

備。執行.NET和Java應用程式不需要運行時的安裝通過一個點擊就能將可分配的運

行控制項嵌入到您的虛擬應用程式中。虛擬應用程式能在沒有運行庫(或其他運行

庫版本)的情況下在主機上正常運行。 在Vista上運行遺留應用程式在Xenocode虛

擬作業系統上的執行消除了在 Windows Vista上與部署遺留應用程式相關的相容性

問題。 獨特的Internet Explorer 6仿真模式允許基於IE-6的應用程式被部署在Vi

sta本地桌面上。 在鎖定桌面上執行Xenocode虛擬化技術能夠使應用程式避免訪問

保密的檔系統和註冊表資源,使其在一個鎖定的桌面上執行。當在 Windows Vista

上部署時,避免UAC的提示和應用程式故障。 全用戶模式執行Xenocode虛擬化技術

並不依賴於任何代理或設備驅動程式的支援以及消除所需的用戶端安裝或管理的許

可權。 可立即在鎖定的桌面和自助終端上運行。 前所未有的虛擬化性能與整機虛

擬化系統不同,Xenocode應用程式虛擬化技術能使虛擬的應用程式的執行速度基本

與應用程式在本地運行的速度相同。在虛擬應用程式二進位檔中不包含作業系統控

制項或檔,這在最大程度上減少了佔用空間。透明的資料壓縮進一步降低了有效載

荷的大小。充分利用現有的管理工具Xenocode的獨立於代理和伺服器的設計能讓虛

擬的應用程式簡單地整合到現有的應用程式管理設備中,包括Microsoft SMS、LAN

Desk管理套包、Novell ZENworks以及Symantec AppStream 。虛擬應用程式能作為

獨立的EXE檔或通過使用MSI安裝包進行部署。

http://www.crazycoder.cn/BlogDigest/Article76985.html

破解版下载地址:

http://download.csdn.net/source/1733855

安装后,按照下面的步骤注册

<?xml version="1.0" encoding="utf-16"?>

<LicenseCertificate version="2" publisher="Xenocode">

<LicenseType>Retail</LicenseType>

<LicenseModel>Site</LicenseModel>

<ProductCode>ALL</ProductCode>

<LicenseeName>Danny Su</LicenseeName>

<AccountNumber>74149478E1G67EDCFD64CGF054868C64</AccountNumber>

<Signature>

ef6033cc7aabadd60994281c92373b321a41137e45c0e920ef0e6f175c641f25

284b6211033128e7cf6330908aca22278592abe2aad98e9616ca65130c2c6c0a

d5144a04913d35332f837959168d485324fd6c55f4473317da156625a00af262

df019e69bf2c833136991e8989107bbce794c635cf3294476636d2355479f25f

</Signature>

</LicenseCertificate>

 

 

出处:https://www.cnblogs.com/2018/archive/2010/05/14/1735781.html

=======================================================================================

分享几款代码混淆器(DotFuscator, .NET Reactor, xenocode)

在介绍工具之前,我需要说明几点:

1.如果你编写的软件不涉及商业用途的话,本着开源的思想,本人不推荐使用代码混淆器

2.使用代码混淆器存在一定的风险,在使用前最好做好相关代码备份

3.凡是需要序列化成二进制的代码,是不能用混淆器的。混淆后的代码将不能正常序列化!

 

DotFuscator是VS里面一个自带的代码混淆器,VS——工具——Dotfuscator Community Edition

具体使用方法,及产生的混淆效果,可参考:http://blog.csdn.net/netjxz/archive/2006/12/12/1439866.aspx

 

.NET Reactor,这个非常小巧,免安装,而且不需要注册。他只是将代码换成随机码,但是混淆后的代码都能正常使用。

具体的使用方法都比较简单,

下载地址:https://files.cnblogs.com/ghost79/DotNETReactor.rar

备份下载:DotNetReactor_v2.6.4.0.rar

 

xeoncode 则是一款相对更加专业的代码混淆软件,混淆后的程序集可以屏蔽一些反编译工具(Ildasm之类的),具体使用方法:

 

用法一:  
   
  1、导入要加密的dotNET程序或assembly文件(.dll/.exe)  
  2、选择第二个选项卡“Protect”  
  3、点击“Select   Pattern”  
  4、选中所有“Object   Type”和所有“Visiblility”  
  5、“Action”选择“Do   not   obfuscate”,Apply,把所有的内容都设为不进行混淆  
  6、“Action”选择“Obfuscate”,“Visibility”只选择“Private”,Apply  
  7、右下角按下“XenoCode   Assemblies”,导出混淆后的文件  
   
  用法二:  
   
  1、选中Application标签  
  2、点击Add按钮,加载要混淆的Dll、Exe文件  
  3、如果是Dll文件则选中Preset列表框中的第二项,反之选中第一项  
  4、点击Apply按钮  
  5、选中Protect标签  
  6、选中Supress   other   reflection   tools复选框  
  7、点击Select   String按钮进行设置  
  8、点击XenoCode按钮完成混淆工作  
  9、再换一个文件进行混合到全部文件混淆完毕为止! 

以上摘自网络,仅供参考。

2009最新版,注册的license也在压缩包里

下载地址:http://d.download.csdn.net/down/1702658/Danny_Su 

 

 

出处:https://www.cnblogs.com/jason_z/archive/2009/10/19/1585804.html

=======================================================================================

posted on 2019-07-05 14:50  jack_Meng  阅读(10270)  评论(0编辑  收藏  举报

导航