iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#dll代码混淆加密的实现
  • 410
分享到

C#dll代码混淆加密的实现

C#dll代码混淆加密c#dll混淆加密 2023-02-06 12:02:37 410人浏览 泡泡鱼
摘要

目录一、需求二、用法1.新建C#项目2.开始加密3.常见的错误4.添加加密规则5.导出加密dll6.调用加密dll一、需求 C# 项目生成 dll,在反编译工具下,好比皇帝的新装,d

一、需求

C# 项目生成 dll,在反编译工具下,好比皇帝的新装,dll 内部的代码看的一清二楚,在这里推荐一个工具ConfuserEx,可以给C#代码混淆,甚至 exe 文件都可以加密,软件是免费开源的,但是,目前已经停止维护,并且不支持最新的 .net6。

下载地址:

GitHub - yck1509/ConfuserEx: An open-source, free protector for .NET applications

特征:

1.支持.NET Framework 2.0/3.0/3.5/4.0/4.5
2.符号重命名(支持 WPF/BAML)
3.防止调试器/分析器
4.防止内存转储
5.防止篡改(方法加密)
6.控制流混淆
7.常量/资源加密
8.引用隐藏代理
9.禁用反编译器
10.嵌入依赖
11.压缩输出
12.可扩展的插件 api

二、用法

1.新建C#项目

新建一个基于 .NET Framework  的类库项目,就用默认添加的 class1 好了,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace 加密程序集1
{
    public class Class1
    {
        public static string User { get; set; } = "张三";
 
        public static string PassWord { get; set; } = "erwtyyhghdgh";
 
        public static void Test()
        {
            Console.WriteLine("f**k you");
        }
    }
}

添加完代码后,点击生成,我们用工具 dnSpy 打开这个 dll 看看

代码一览无余 ,下面我们就开始加密这个 dll

2.开始加密

打开 ConfuserEx,将 dll 拖入界面,并设置导出路径,路径我这里选择的是桌面,和需要加密的dll放在一起。

3.常见的错误

我试过导出路径用 D 盘,但结果发现报错。

导出的时候,路径就容易报这种错误,不知道是什么原因。

另外,如果使用 .NET6 类库,在导出的时候也会报下面的错误:

4.添加加密规则

在完成第二节的操作后(拖入DLL,选择导出路径),接下来点击 Settings 选项卡,按下面步骤操作:

开始添加加密规则

我这里连点五下,然后按 1-5 的顺序选择加密规则,选择完成后,点击 Done。

这里并不推荐使用过多的加密规则,越高混淆越强,但性能越低,兼容性也越差。

5.导出加密dll

选择 Protect 选项,点击 Protect 按钮

如果出现了图中的绿字,说明加密成功了,找到对应的位置

用 dnSpy 打开这个加密的 DLL,可以看到,代码已经混淆了

6.调用加密dll

新建一个 .NET Framework 的控制台项目,将加密的 dll,放入项目的 Debug 目录下。

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
 
namespace 调用加密dll
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Assembly dll = Assembly.LoadFrom("加密程序集1.dll");
            Type[] types = dll.GetTypes();
            //获取类名
            Type type = types.Where(arg => arg.Name.Equals("Class1")).FirstOrDefault();
            //获取方法名
            MethodInfo methodInfo = type.GetMethod("Test");
            //方法无参数的话
            methodInfo.Invoke(null, null);
 
            //如果方法有参数的话,下面的 value 是返回值,没用返回值则返回null
            //object value = methodInfo.Invoke(null, new object[]{param1,param2});
 
            //获取指定的属性
            object value1 = type.GetProperty("User").GetValue(type);
            Console.WriteLine(value1);
 
            object value2 = type.GetProperty("Password").GetValue(type);
            Console.WriteLine(value2);
 
            Console.ReadKey();
        }
    }
}

运行:

到此这篇关于C# dll代码混淆加密的实现的文章就介绍到这了,更多相关C# dll代码混淆加密内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#dll代码混淆加密的实现

本文链接: https://www.lsjlt.com/news/194331.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#dll代码混淆加密的实现
    目录一、需求二、用法1.新建C#项目2.开始加密3.常见的错误4.添加加密规则5.导出加密dll6.调用加密dll一、需求 C# 项目生成 dll,在反编译工具下,好比皇帝的新装,d...
    99+
    2023-02-06
    C# dll代码混淆加密 c# dll 混淆加密
  • golang代码混淆加密怎么实现
    在 Go 语言中,代码混淆和加密是通过不同的技术实现的。代码混淆是通过对代码进行变换和重组,使得代码难以被理解和分析。加密是通过对代...
    99+
    2023-10-27
    golang
  • Python源代码保密、加密、混淆
    有时候用Python开发一些功能但不希望用户得到源代码,就希望对Python代码加一些保密措施。目前可行的方案可能是将核心代码用cython编译成os文件。分析如下: 生成方式看这里。Python作为脚本语言,基本上只要是能得到...
    99+
    2023-01-31
    源代码 Python
  • PHP加密混淆如何实现
    本篇内容介绍了“PHP加密混淆如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是PHP加密混淆?加密混淆是将PHP代码转换为另一种...
    99+
    2023-07-05
  • Swift实现代码混淆详解
    目录1. 新建相关文件2. 导入文件至项目3. 修改项目配置3.1 修改TARGETS配置3.2 修改指令文件3.2.1 打开confuse.sh文件,复制并粘贴一下文本3.2.2 ...
    99+
    2024-04-02
  • PHP中如何进行代码混淆和加密?
    PHP是一种流行的服务器端编程语言,广泛用于Web开发。然而,由于PHP代码易读易学,攻击者很容易对其进行攻击。为了加强PHP代码的安全性,可以使用代码混淆和加密技术。本文将探讨PHP中如何进行代码混淆和加密。什么是代码混淆和加密?代码混淆...
    99+
    2023-05-14
    PHP代码混淆 PHP代码加密 代码保护
  • Android使用插件实现代码混淆
    目录1.下载AndroidProPlugin插件并安装重启 2.Android Studio安装插件3.成功安装AndroidProguardPlugin插件后我们在打包的...
    99+
    2024-04-02
  • PHP中什么是加密混淆?怎么实现?
    PHP是一种流行的服务器端脚本语言,广泛应用于互联网和应用程序开发。由于PHP使用的是开源代码,因此开发者能够轻松地阅读和编辑代码。但这也意味着黑客可以轻松地读取您的代码并找到漏洞。开发人员必须加倍谨慎,确保他们编写的代码是安全可靠的。其中...
    99+
    2023-05-14
    加密混淆 php
  • 如何在vue项目中通过配置 webpack-obfuscator实现代码加密混淆
    如何在vue项目中通过配置 webpack-obfuscator实现代码加密混淆?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。安装npm install ...
    99+
    2023-06-06
  • c++实现md5加密的代码
    最近发现md5加密算法挺有趣,特点是单向加密不可逆,加密后的字符串长度相等,于是就用C++尝试实现了一下 头文件定义 #ifndef __MD5_ENCODE_H__ #defin...
    99+
    2024-04-02
  • PHP混淆加密以及常用的一些加密工具
    PHP混淆加密是一种将源代码转换为难以理解和阅读的方式,以保护代码的安全性。以下是一些常见的PHP混淆加密方法: 代码压缩:使用代码压缩工具(如UglifyJS)将PHP代码压缩为一行,去除空格、换行...
    99+
    2023-10-23
    php 开发语言
  • PHP在线加密SG11-SG14组件加密GoTo、DECK混淆多层加密-保护原创源码
    PHP解密PHP加密sg11加密sg11解密全网最厚道的SG11解密方法 sg11解密 php解密 SourceGuardian解密sg_load解密去除域名IP授权 众所周知,sg11加密的PHP文...
    99+
    2023-09-06
    php 开发语言 同态加密
  • Matplotlib绘制混淆矩阵的实现
    对于机器学习多分类模型来说,其评价指标除了精度之外,常用的还有混淆矩阵和分类报告,下面来展示一下如何绘制混淆矩阵,这在论文中经常会用到。 代码如下: import iterto...
    99+
    2024-04-02
  • android不混淆高德的实现接口
    在 Android 中使用高德地图的接口时,可以通过在混淆规则文件(proguard-rules.pro)中添加以下规则来禁止混淆高...
    99+
    2023-08-24
    Android
  • matplotlib画混淆矩阵与正确率曲线的实例代码
    混淆矩阵     混淆矩阵(Confusion Matrix)是机器学习中用来总结分类模型预测结果的一个分析表,是模式识别领域中的一种常用的...
    99+
    2024-04-02
  • 深入了解Webpack:特性、特点和结合JS混淆加密的实例
    Webpack是现代前端开发中最受欢迎的构建工具之一,其强大的特性和灵活性使得开发者能够更有效地管理和优化项目资源。在本文中,我们将深入探讨Webpack的特性和特点,并结合实例演示如何使用Webpack与JS混淆加密相结合。 Webpac...
    99+
    2023-08-30
    webpack javascript 前端
  • C#实现常见加密算法的示例代码
    目录前言1. Base64编码1.1 原理介绍1.2 C#代码2. 凯撒密码2.1 原理介绍2.2 C#代码3. Vigenere密码3.1 原理介绍3.2 C#代码4. DES4....
    99+
    2024-04-02
  • 使用c++实现异或加密的代码示例
    目录加密原理异或加密的实现ShellCode 编写注意事项加密原理 由于展示最基本最简单的实现,使用算法加密就没用复杂的。如果使用比较复杂的加密,首先你在C++代码层面和汇编层面要有...
    99+
    2024-04-02
  • C++实现RSA加密解密算法是示例代码
    目录一、什么是RSA算法1.对称加密2.非对称加密3.非对称加密的应用二、RSA算法的基础操作步骤1.生成公钥和私钥2.用公钥加密信息 3.用私钥解密信息三、AC代码四、R...
    99+
    2024-04-02
  • python实现凯撒密码加密解密的示例代码
    凯撒加密就是通过将字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,被替换成密文。例如,当偏移量是2的时候,所有的字母B将被替换...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作