zoukankan      html  css  js  c++  java
  • 使用Dotfuscator混淆你的.net程序

    注:.net自带的Dotfuscator混淆软件,效果比较差,而且很容易还原,这里只是介绍,目前不太好用,推荐使用.NET Reactor

    简介

    众所周知C#等net框架的程序是无法防止反编译的,但可以通过混淆,让反编译出来的代码非常难看.
    Dotfuscator是微软推荐使用的第三方混淆器,用来保护你的net程序.可以在安装VS的时候顺带安装它,也可以从官网下载到独立安装包.
    官网

    本文将简单的测试它的效果,并记录测试过程

    首先写段代码用来测试

    新建个winform工程,添加个定时器,设为100毫秒触发一次:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp2
    {
    	public partial class Form1 : Form
    	{
    		public Form1()
    		{
    			InitializeComponent();
    		}
    		private void Form1_Load(object sender, EventArgs e)
    		{
    
    
    		}
    
    		//一段注释
    		private void timer1_Tick(object sender, EventArgs e)
    		{
    			var datetime = DateTime.Now;
    
    			var strprogress = "";
    			var second = DateTime.Now.Second;
    			for (var i = 0; i < second; i++)
    			{
    				strprogress += "■";
    			}
    			Text = $"当前时间为:{datetime.ToString("HH:mm")} {strprogress}";
    		}
    
    	}//End Class
    }
    

    编译出EXE

    用ILSpy打开

    可以看到,代码除了注释,都是可以反编译出来的.

    安装Dotfuscator

    在VS安装工具中找到它

    如果你用的版本和我一样是VS2017的话,你应该能在安装工具里找到这个:

    安装它!

    在VS的菜单中找到它

    上一步完成后,你将发现这里多了这个:

    打开它!

    注册试用版

    第一次运行Dotfuscator会收集你的信息用来注册试用版,你可以在这填写信息,并获取一个注册码(会发到你的邮箱)
    你也可以不填写,也能正常试用Dotfuscator

    混淆过程

    将编译出来的程序添加进去

    左边菜单,点击"输入",将切换到这个界面,点绿色加号,添加文件:

    如果添加文件时,界面显示很奇怪,比如添加的文件不显示,可以试试先保存配置,再读取配置.

    生成

    点击这里,可开始混淆:

    输出目录

    可以看到输入exe所在的目录多了个文件夹

    里面是混淆过的EXE:

    查看效果

    测试混淆的程序是否可正常运行

    尝试反编译


    可以看到 已编译的 .NET 应用内的类型、字段、属性、方法和参数名称 被改成了无法从名字认出作用的符号.
    由于该软件是收费软件,我使用的只是试用版,如果购买正式版,能开放更强的混淆功能,如"字符串加密"等功能.如果有需要,建议使用正式版.

    找一个大点的程序试试

    由于上面使用的程序测试代码比较短,看不出多好的效果,我这找了个相对比较大的net程序,来试试:

    混淆前的代码:

    混淆后的代码

    可以看到很多地方简直面目全非,认不出啥是啥了.给修改带来了很大的困难

  • 相关阅读:
    使用Fiddler和雷电模拟器抓取安卓https请求
    Robot Framework -- 安装接口测试库
    Robot Framework --为了进行Web测试,安装SeleniumLibrary外部库
    robotframework+python3+eclipse+RED自动化测试框架初学笔记
    LeetCode Weekly Contest 27
    LeetCode Weekly Contest 26
    京东4.7实习笔试题
    牛客网模拟笔试 2
    4.1几道最近的题目
    网易3.25实习笔试
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/15330662.html
Copyright © 2011-2022 走看看