使用Dotfuscator混淆你的.net程序


簡介

眾所周知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程序,來試試:

混淆前的代碼:

混淆后的代碼

可以看到很多地方簡直面目全非,認不出啥是啥了.給修改帶來了很大的困難


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM