採訪/編輯:
棒!城市編輯部
更新時間:
2019-06-17 00:12
發佈時間:
2017-11-06 08:33
分享:
累積人次:
29

dnSpy,無需源碼也能修改 .NET 程式


 2018-05-22 14:02

dnSpy 是 0xd4d 開發的 .NET 程式調試神器。

說它是神器真的毫不為過!它能在完全沒有源碼的情況下即時偵錯工具,甚至還能修改程式!本文講向大家介紹如何使用 dnSpy 修改 .NET 程式。

dnSpy 的主打功能是無需源碼的調試,林德熙 有一篇文章 中斷點調試 Windows 原始程式碼 介紹了這個方法。而本文主要說其另一項強大的功能 —— 修改程式集。

本文內容
看看 dnSpy
實操修改程式集
保存修改的程式集
發揮想像力的時候到了
看看 dnSpy
 dnSpy

dnSpy 長著一身 Visual Studio 一樣的外觀,調試的時候給你熟悉的感覺。

我們只需要講我們需要調試或修改的程式集拖入左側的程式集清單中即可(它會自動為我們把此程式集依賴的程式集也添加進來)。我把以前我寫過的一個程式 ManipulationDemo 拖進來了。

實操修改程式集
現在我們來修改它,修改什麼好呢?為了讓效果明顯一點,我決定在啟動時彈一個視窗。於是我們展開進入到 App 類中。

App 類

然後在類中右鍵“Edit class (C#)”:

右鍵 -> 編輯類

在裡面重寫 OnStartup 方法。發現,它竟然連智慧感知提示都做了!

重寫 OnStartup 方法

MessageBox.Show

改完只需要點擊一下右下角的編譯,即可講修改應用到我們剛剛打開的程式集中。

編譯

保存修改的程式集
如果只是修改了可以立刻運行,那麼充其量只是可以輔助調試。但是 dnSpy 是可以將程式集另存到本地的。

點擊“File”->“Save Module”:

保存模組

為了以示區分,我寫了一個新的名字:

保存

保存完之後,運行:

運行

我們會發現,我們剛剛新增的對話方塊已經彈出來了。“OK”之後原來的視窗才會顯示出來。

發揮想像力的時候到了
既然有如此簡單的修改程式集的方法,那麼我們可以用來做什麼事兒呢?用來做什麼事兒呢?做什麼事兒呢?什麼事兒呢?事兒呢?呢?

想像力時間

順便說一下,就算程式集被混淆了也難不倒它。
 

標籤