热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#防反编译工具

链接:https:pan.baidu.coms1r6x_2aQQzKheXrNHZDCWyA提取码:w0brDotfuscator的定位:

链接:https://pan.baidu.com/s/1r6x_2aQQzKheXrNHZDCWyA
提取码:w0br                              


Dotfuscator的定位:                                     

        是一种用于doNet应用程序的开发后重编译系统,是一款功能强大的NET混淆器和压缩器。它可以混淆流程、密字符串、加入水印、程序签名等。


Dotfuscator的优点:

        增强了代码安全性?

        采用了最先进的反编译技术,可以有效的保护您的程序代码,防止您的应用程序被反编译。

        减小doNet程序的体积?

        Dotfuscator Professional Edition 分析应用程序并精确计算出您真正需要使用的应用程序部分。据此,它可以剥离出这部分,使您得到尽可能小的可执行文件。

        提高运行时性能?

        通过移除不需要的程序元素并将标识符重命名为短小的名称,Dotfuscator可切实提高程序运行速度。

防反编译之模糊处理:

模糊处理这种技术能够对程序几中的符号进行无痕迹可寻的重命名,dotfuscator还提供很多其他手段,从而阻止进行反编译。

       模糊处理(obfuscation)意在引起混淆。原始的模糊处理程序实质上是将在代码中找到的标识符重命名为不可读的内容。他们可能使用哈希技术,或者对字符集进行算术偏移,将字符变为不可读字符或不可输出字符。这些技术虽然表面上很有效,但是它是可逆的技术,因此很难起到保护作用。

        PreEmptive的模糊处理工具远远超过了这种原始的重命名方法,它使用很多其他颇具独创性的“引起混淆”的方法,使得几乎不可能对他人的知识产权进行反向处理。


模糊处理过程:

模糊处理这一过程应用于已编译的MSIL代码而不是应用源代码,理解这一点十分重要。开发环境和工具无需更改就可以适应重命名技术。源代码不会以任何方式被更改,甚至不会被读取。经过模糊处理的MSIL代码在功能上等效于传统的MSIL代码,它在公共语言运行库(CLR)上执行并产生与原始MSIL代码相同的结果。(但是,不能进行逆向操作。即使可能将经过高度模糊处理的MSIL进行反编译,和原始的源代码相比,它在语义上也有重大不同。)下图说明使用Dotfuscator进行模糊处理的流程。


Dotfuscator 4.9的使用过程:

1.打开Dotfuscator软件,选择Create New Project,然后点击OK。

2.点击如下图所示的文件夹图标。

3.点击Browse按钮选择要要加密的可执行文件(.exe),然后点击OK。

4.勾选需要混淆的文件,默认是全选。着重说下下图红色框中的这个选项,Library选项是对类名进行加密混淆,如果勾选它则对类名、方法名等进行混淆。

6.点击Settings选项,将Disable String Encryption选项改为No。(意思是对字符串进行加密)

7.选择Rename下的Options选项,将Use Enhanced Overload induction打勾,Renaming Scheme选Unprintable(不能打印的)。

8.点击String Encryption,选择要加密的文件,然后点击运行(绿色三角)。

9.如果你的项目是用的.Net Framwork4.0以上版本,运行后编辑就会不通过。

解决办法:

在Settings选项卡下的Project Properties选项

点击“Create New Property”,创建一个属性。依次添加

ILASM_v4.0.30319 

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe(注意:我的ilasm.exe是在这个路径下,因个人安装位置而定)

再次点击“Create New Property”,创建一个属性。依次添加

ILDASM_v4.0.30319

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe(注意:我的ildasm.exe是在这个路径下,因个人安装位置而定)

添加好之后再次点击运行(绿色三角)就可以编辑了。如下图:

此时就可以在该文件夹下找到加密混淆后的可执行文件了。


我遇到过使用Dotfuscator打开可执行文件时的异常解决,如下图:

添加要混淆程序时报“Invalid Input Assembly”。startIndex不能大于字符串长度。

出现这个错误的原因因为我程序中对象名使用了中文。我在程序中将所有中文部分全部替换成英文就可以加载进来了,所以在程序设计时尽量不要使用中文作为程序部分。


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
author-avatar
伊雅曦1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有