C#程序发布时,一定要好好地保护,不然你会后悔的

news2024/11/23 7:31:04

上次分享一个C#混淆开源项目《一个对C#程序混淆加密,小巧但够用的小工具》,发现大家都非常感兴趣,但也发现很多人,不了解为什么没有混淆,就会很容易被破解。

所以今天给大家做一个教程:如何通过工具来反编译代码、修改代码来实现软件的篡改,并实现通过.NETReactor进行加密混淆

一、演示项目

先创建一个演示项目,方便后续破解和加密使用。

1.1、创建控制台项目:ConsoleAppRemo

图片

1.2、选择框架版本,演示用的是.Net6.0

图片

1.3、实现一个功能:2个数字相加

// See https://aka.ms/new-console-template for more information
int num1 = 3;
int num2 = 4;
Console.Write("num1 + num 2 = ");
Console.WriteLine(num1 + num2);
Console.Read();

1.4、运行效果

图片

二、采用dnSpy破解

下面一起来看看,通过工具对演示项目,进行反编译和修改代码。

2.1、安装dnSpy

dnSpy是Github开源项目,我们到Github下载就行
在这里插入图片描述

工具界面:
图片

2.2 、打开dll文件

通过菜单:文件,打开ConsoleAppRemo.dll文件。

图片

2.3、查看代码

通过反编译的结果看,代码完全暴露出来了。

图片

2.4、修改代码

在窗口鼠标右键=》编辑IL指令,打开指令编辑窗口

图片

编辑窗口

图片

2.5、修改变量把数字改为5,并保存

图片

保存效果如下:

图片

2.6、导出dll

选择菜单上的保存按钮,模块类型选择dll,并点击确定,覆盖更新dll。

图片

通过修改时间,我们就可以看到dll已经被更新了

图片

2.7、运行效果

点击exe运行,运行结果已经改变。

图片

到这里,可以说是,我们完完全全地破解了程序了。相信大家看到这,就会发现程序发布时,为什么要进行加密和混淆了。

下面我们一起看看,通过.NETReactor加密情况,以及能否破解。

三、.NET Reactor加密

3.1、下载安装

安装过程比较简单,这里就不展示了。

图片

下载地址:https://www.eziriz.com/reactor_download.htm

3.2、选择待加密的dll文件

选择需要加密的dll文件

图片

3.3、执行加密

点击Protect按钮,进行加密。

图片

3.4、加密成功

工具会自动运行,打印加密的情况(工具是收费的,可免费试用14天)。

图片

执行成功后,工具会创建文件夹,并把加密的文件放入

图片

3.5、检验加密后,我们系统执行情况

拷贝exe文件到Secure文件夹里,并运行,我们的系统可以正常运行

图片

3.6、dnSpy查看反编译情况

通过反编译工具打开加密后的dll,我们会发现文件名、代码都已经被混淆、加密。

图片

总结

通过加密后,还是能比较好地起到保护的效果。通过工具进行加密混淆,主要的目的是增加阅读难度、增加陷阱让破译需要更多的时间与成本。

另外市面上加密工具很多,下面梳理几个比较常用的:

  • ConfuserEx:免费开源的,比较好,只支持.NET Framework,较久未更新。

  • .NET Reactor:收费,比较好,一直有更新。

  • Dotfuscator:收费,比较难用,中间还会出错。

  • Smart Assembly:收费,只有代码混淆,效果不好。

今天就跟大家,分享到这边了,希望对您有帮助**,欢迎点赞关注转发。**

- End -

推荐阅读

  • 一个界面美观、支持团购、拼团、直播、秒杀等营销功能商城系统

  • 盘点5个C#实用的Word、PPT、Excel、Mail第三方库

  • 盘点5个.Net开发的服务器进程监控、性能监控、任务调度的开源项目

  • 盘点10个.NetCore实用的开源框架项目

  • .Net Core导入千万级数据至Mysql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[网络工程师]-传输层协议-UDP协议

用户数据协议(User Datagram Protocol,UDP)是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据附加了源端口号和目标端口号等UDP报头字段后,直接发往目的主机。这时,每个数据报的…

【数据结构】链表

目录 一、线性表接口 二、单链表 2.1 单链表的结构定义 2.2 头插法 2.3中间位置的插入 2.4尾插法 2.5遍历链表 2.6查询线性表中是否包含指定元素 2.7返回索引为index的元素值 2.8修改索引为index位置的元素为新值,返回修改前的元素值 2.9删除链表中索引为…

公众号免费搜题系统

公众号免费搜题系统 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击…

嵌入式FreeRTOS学习十,任务调度和任务就绪链表任务调度过程

一.main函数里面的栈是哪里分配的 main函数里面用到的栈,假设为msp,是汇编代码里面设定的,对于STM32F103,在汇编代码里的向量表设置了一个栈_initial_sp,那这个栈是给谁用的呢? 可以看到,这个_initial_sp在内存中分配了一个空间区…

案例驱动,手把手教你学PyTorch(二)

通过案例学PyTorch。 扫码关注《Python学研大本营》,加入读者群,分享更多精彩 Autograd Autograd 是 PyTorch 的自动微分包。多亏了它,我们不需要担心偏导数、链式法则或类似的东西。 那么,我们如何告诉 PyTorch 做它的事情并计…

python在线及离线安装库

目录 一、配置python环境变量: 二、在线安装python库: 三、离线安装python库: 一、配置python环境变量: 1、以windows10为例,右键电脑->>属性: 2、选择高级系统设置: 3、选择环境变量&#xff1a…

八行代码一键照片转漫画

有些小程序可以实现照片转漫画的功能,本文和你一起来探索其背后的原理。用Python实现八行代码一键照片转漫画。    文章目录一、效果展示二、代码详解1 导入库2 照片转漫画一、效果展示 在介绍代码之前,先来看下本文的实现效果。    喜欢的小伙伴也…

操作系统主引导扇区代码是如何被加载到内存的?

1. 问题:OS引导代码为什么需要org 07c00h? 在前几天在知乎上的的一个回答《想带着学生做一个操作系统,可行性有多大?》中,我们引用了一段主引导扇区MBR中的操作系统加载代码: org 07c00h ; 告诉编译器程…

PCA实现降维的过程

PCA将相关性高的变量转变为较少的独立新变量,实现用较少的综合指标分别代表存在于各个变量中的各类信息,既减少高维数据的变量维度,又尽量降低原变量数据包含信息的损失程度,是一种典型的数据降维方法。PCA保留了高维数据最重要的…

web前端期末大作业 HTML+CSS+JavaScript仿京东

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目| HTML期末大学生网页设计作业,Web大学生网页 HTML&am…

SpringBoot发送邮件

06.发送邮件 在使用javaSE时&#xff0c;我们会发现发送邮件较为麻烦&#xff0c;而在SpringBoot中&#xff0c;发送邮件就变成一件较为简单的时。 导入mail的maven的启动类。 <dependency><groupId>org.springframework.boot</groupId><artifactId>…

DSPE PEG Azide, DSPE-PEG-N3;磷脂聚乙二醇叠氮

中文名称&#xff1a;磷脂聚乙二醇叠氮(DSPE-PEG-N3) 中文别名&#xff1a;N-二硬脂酰磷脂酰乙酰胺-PEG-叠氮 磷脂PEG叠氮 英文名称&#xff1a;DSPE PEG Azide, DSPE-PEG-N3 性状&#xff1a;根据不同的分子量为固体或者粘稠液体。 溶剂&#xff1a;溶于DCM&#xff0c;…

表单标签。。

一、任务目标 掌握表单标签及其属性的使用 二、任务背景 HTML表单用于收集用户输入。表单元素指的是不同类型的 input 元素、复选框、单选按钮、提交按钮等。 三、任务内容 1、<form></form>标签 用于创建HTML表单&#xff0c;常用属性如下&#xff1a; action&…

OpenGL ES 学习(一) -- 基本概念

最近在研究 SurfaceView 和 TextureView&#xff0c;发现栅格化这东西&#xff0c;一直没怎么搞明白&#xff0c;一搜都是关于 OpenGL 的&#xff0c;没办法&#xff0c;当初也是要学习这个&#xff0c;现在重试拾起。 之前接触 OpenGL &#xff0c;是主要解决一个渲染模糊问题…

JavaEE-操作系统

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录操作系统介绍操作系统的定位进程进程控制块内存管理进程间通信思维导图总结操作系统介绍 操作系统是一组做计算机资源管理的软…

文献学习01_Attention Is All You Need_20221119

论文信息 Subjects: Computation and Language (cs.CL); Machine Learning (cs.LG) &#xff08;1&#xff09;题目&#xff1a;Attention Is All You Need &#xff08;你需要的就是关注&#xff09; &#xff08;2&#xff09;文章下载地址&#xff1a;https://doi.org/10.4…

今天给大家介绍一篇基于javaWeb的汽车订票系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

牛客网之SQL非技术快速入门(3)-排序、关联关系

知识点&#xff1a; &#xff08;1&#xff09;order by colunm_name(s) ASC|DESC order by ID ASC,name ASC,sex DESC 不写就是默认升序&#xff0c;DESC降序 &#xff08;2&#xff09;3中关联关系&#xff1a;left join、right join、inner join/join 21、现在运营想要查…

【微信开发第四章】SpringBoot实现微信H5支付

前言 在进行微信公众号业务开发的时候,微信支付可以说是非常重要的一环。该篇文章每一步都有记录&#xff0c;力争理解的同时各位小伙伴也能够实现功能 文章目录前言1、公众号配置2、微信支付实现代码总结1、公众号配置 1、绑定域名 先登录微信公众平台进入“设置与开发”&…

阿里云架构实战之ALB(应用型负载均衡)介绍与搭建

ALB介绍 服务器端负载均衡SLB&#xff08;Server Load Balancer&#xff09;是一种对流量进行按需分发的服务&#xff0c;通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力&#xff0c;并且可以消除系统中的单点故障&#xff0c;提升应用系统的可用性。 阿里云负…