一、地址
1、github地址
https://github.com/cnxy/
https://github.com/0xd4d/dnSpy/releases/download/v6.0.5/dnSpy-net472.zip
備註:dnSpy-net472.zip 必須安裝 .NET Framework 4.7.2或者更高版本。
2、官網地址
https://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/dnSpy.shtml#download
3、軟件界面如下:
二、首先編寫一個Hello World的控制檯運行程序,如下圖所示
代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ChangeString
{
class Program
{
static void Main(string[] args)
{
string str = "Hello World!";
Console.WriteLine(str);
Console.ReadKey();
}
}
}
三、編譯並運行
在這裏程序內部的str變量爲"Hello World!",現在,需要使用dnSpy工具,將內部str的變量改變並在線調試。
四、使用dnSpy工具對程序進行反編譯
①使用dnSpy工具對剛纔生成的ChangeString.exe進行反編譯,如下圖所示:
②在Main函數內右鍵點擊菜單,在彈出的上下文菜單中選擇"編輯方法(C#)",如下圖所示:
③將str變量的內容改爲"Just For Test",並點擊"編譯"按鈕,如下圖所示:
④點擊"全部保存"按鈕,在彈出的界面保持默認值並點擊"確定"按鈕,如下圖所示:
⑤保存完成後,點擊"啓動"按鈕,在彈出的界面保持默認值並點擊"OK"按鈕,接着自動啓動應用程序,如下圖所示:
注意:
編譯時請注意以下事項,否則將不能進行編譯:
①還有其他DLL模塊的,必須把它包含進來;
②如有其他反編譯後有不能識別的字符,請手工修改OK之後再進行編譯。
另外,這個程序不僅對EXE有效,同樣對DLL有效!