DnSpy中文版是一款可移植的調試器和.NET程序集編輯器,用于編輯和調試程序集,即使源代碼不可用,可以幫助用戶各種程序集進行反編譯,以更好地了解它們的功能。
1、無需設置
由于它是一個便攜式工具,它不需要您將其安裝在目標計算機上,因為只需拆包其存檔并啟動可執行文件即可完全訪問其功能。
您還可以從可移動存儲介質(如USB閃存驅動器或外部HDD)運行它。此外,它不會修改系統中的注冊表項,也不會在您的PC上生成其他文件或文件夾,但未經您的明確許可。
2、綜合界面
dnSpy配備了一個時尚,全面的用戶界面,包含廣泛的有用功能,它們整齊地組織在主窗口的標準菜單中。
更重要的是,它具有標準配置窗口,您可以在其中調整各種組件的設置,如其反編譯器,調試器或十六進制編輯器,但也可以修改顯示或其他參數。
3、.NET反匯編程序
如果您需要一個高效的工具,可以通過為您提供各種有用的工具來幫助您反編譯.NET程序集,您可以轉到dnSpy。它配有一個反編譯器,一個調試器,一個十六進制編輯器和一個程序集編輯器,讓你以有效的方式處理程序集。
主窗口附帶了一個Assembly Explorer窗格,您可以在其中訪問所需程序集的樹視圖。您可以通過從計算機指定適當的文件或使用“從GAC打開”選項打開程序集,該選項為您提供全局程序集緩存中可用的條目列表。
4、.NET程序集的可靠反向工程工具
所有考慮的事情,dnSpy是一個方便的應用程序,使您能夠以有效的方式逆向工程.NET程序集,為您提供廣泛的有用工具,包括反編譯器,程序集編輯器和調試器。它不需要安裝,具有全面,平滑的用戶界面,并為您提供了一個標準配置窗口,您可以在其中調整各種組件的設置。
1.我們需要準備dnSpy軟件,這個軟件度娘一下到處都有下載.
2.下載好之后,打開軟件,左上角 文件→打開,選擇游戲目錄下的Assembly-Csharp.dll文件
例如: ..\ChildrenOfMorta\ChildrenOfMorta_Data\Managed
3.然后就可以看到左側程序集資源管理器下出現相關內容
4.然后我們就可以參考上面鏈接中的帖子,來進行修改了.
例如:我們找到Zyklus.Stat下的StatStaticDataContainer下的AddXPDirect
找到需要修改的行
右鍵選擇"編輯IL指令",將目標數值改為100即可
5.改好之后,直接保存退出.然后進入游戲,開爽.
dnspy中文版反編譯后怎么導出?
下載dnspy軟件,然后安裝,一步到位,安裝很簡單的。然后打開軟件,
如上圖紅色圈出位置,打開要反編譯的可執行程序,exe、dll等。打開后,如下圖。
我
點擊左側目錄,可看到本程序的框架,右側可看到每個框架構成的代碼。如下圖。
有點點擊,如下圖,選擇編輯類,則可以直接修改該程序代碼了。
修改完成后,點擊右下角的編譯,如果編譯成功,則修改成功了,如果編譯失敗則是語法錯誤。需要重新修改。
修改完成后,且編譯成功,那么就直接導出模板,如下圖。替換原來的可執行文件exe,就可以了。
使用反編譯工具dnspy動態修改代碼教程:
1.打開dnspy
bin目錄下有dnspy.exe和dnspy_x86.exe,若是32位程序則選擇_x86.exe
2.點擊文件-->打開,選擇要調試的dll
3.點擊調試-->啟動調試,選擇要調試的應用程序,一般為.exe;
或者點擊調試-->附加到進程,選擇正在運行的程序
4.選擇要編輯的文件,右鍵
5.選擇編輯類或者編輯方法,然后進行你想要的編輯,編輯完成后點擊編譯
建議選擇編輯方法,因為這樣在編譯的時候只會編譯這個方法單元,而不會編譯這個類,若編輯整個類,編譯的時候會報比較多的錯誤,需要修復
我在代碼中添加了一句 int x=0; ,然后選擇編譯,但是可以看到下方報錯了,這是由于沒有引入該類所引用的依賴項導致
很多人都會卡在這一步,編譯不過,報一些奇奇怪怪的錯誤,以下是我的一些經驗:
上面這個錯誤是缺失dll,既紅框圈出的Newtonsoft.dll,所以我們需要引入這個dll,菜單欄-->打開-->選擇需要的dll,引入即可
如果還是報錯,可以查看該dll引用的dll, 如果還有dll沒引入,選擇dll引入
或者看dnspy的提示,標紅的代碼就是出錯的地方,可以嘗試手動修改錯誤,就像是在VS上開發一樣
有時候錯誤會很奇怪,明明有這個變量,卻提示沒有,這時可以對比下真正的源代碼,你會發現,反編譯后的代碼是錯的,會自動添加一些莫名其妙的邏輯,尤其是在使用匿名函數的時候,這個時候就需要我們手動刪除這些錯誤的邏輯,是的沒錯,你不太可能用dnsny對應用程序做大量的修改,hook整個程序(如果有大神這么干了,請告訴我怎么做。 ,一般只是做一些外科式手術般的改動,既修改一些關鍵地方,做一些小的改動,那么就可以嘗試刪除一些錯誤的代碼和無關的代碼,使編譯能通過!
6.保存
點擊編譯后如果沒有錯誤了,則已經成功,但是沒有任何提示
但實際上已經保存在右側菜單欄中了,可以看到有兩個同名的dll
點擊菜單欄-->文件->保存模塊或者全部保存,即可
7.然后使用新的dll替換老的dll,就可以測試了