码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C#程序发布时,一定要好好地保护,不然你会后悔的


    上次分享一个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
    • 2
    • 3
    • 4
    • 5
    • 6

    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

  • 相关阅读:
    moke、动态图片资源打包显示
    452页13万字现代智慧乡镇雪亮工程整体解决方案2022版
    macOS 关闭系统更新以及相关提示
    时间格式记录
    51单片机智能语音识别分类垃圾箱桶新国标垃圾分类4种垃圾脚踏开关4个舵机
    指针和数组笔试题解析
    java写一个用于生成雪花id的工具类
    枚举类、泛型、API
    排序算法——归并排序以及非递归实现
    linux纯离线安装whl包,下载tensorboard
  • 原文地址:https://blog.csdn.net/daremeself/article/details/127948674
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号