【Unity】DnSpy斷點調試Unity已發行遊戲的dll

前言

DnSpy是本人一直在用的反編譯軟件,很好用,今天閒來無事的時候用DnSpy的調試功能斷點調試了一下Unity的遊戲【發行版】,很好用,於是想着要分享給大家。

前期準備

DnSpy下載
Unity調試教程(英文教程)

使用方法【僅針對發行版】

本方法僅針對發行版,即已經寫好並且發佈的遊戲。

1. 查看遊戲開發的Unity版本

查看遊戲是用哪一個版本的Unity開發的可以通過AssetStudio【一款專門查看Unity遊戲的資源文件的軟件】查看,當然這是比較複雜的,不過一定是可以查詢出來的。
這裏介紹一個簡單的方法,找到你要打開的遊戲的EXE可執行文件,【右鍵屬性-詳細信息】就可以看到。
文件版本
可以看到,我這邊開發使用的Unity版本就是5.2.4,記住這個版本號。

2.Mono.dll下載

Mono文件下載
下載頁面找到Unity那些文件,根據自己的版本下載對應的壓縮包。
Mono的壓縮包
我這邊因爲版本爲5.2.4,所以這裏下載5.x版本。
不同的Unity版本使用不同的mono.dll文件名。較舊的Unity遊戲使用.NET 2.0-3.5程序集並使用mono.dll,而較舊的Unity遊戲使用.NET 4.x程序集mono-2.0-bdwgc.dll。此文件存儲在不同的位置,具體取決於Unity版本,一般的話就是以下幾個位置:

<root> \ <GAME> _Data \ Mono \ mono.dll
<root> \ <GAME> _Data \ Mono \ EmbedRuntime \ mono.dll
<root> \ <GAME> _Data \ MonoBleedingEdge \ EmbedRuntime \ mono-2.0-bdwgc.dll
<root> \ Mono \ EmbedRuntime \ mono.dll
<root> \ MonoBleedingEdge \ EmbedRuntime \ mono-2.0-bdwgc.dll

將dnSpy的補丁mono.dll/ mono-2.0-bdwgc.dll找到對應版本後將文件複製到遊戲中,覆蓋其文件。

3. DnSpy調試

在我們想要調試的地方打上斷點【快捷鍵:F9
斷點
然後點擊【調試-啓動調試】
啓動調試
然後配置如下,基本上選定要運行的EXE文件和啓動目錄之後(默認會選定好),然後選擇自己喜歡的端口(一定要沒有被佔用),然後點擊OK就可以開始調試了。
調試程序配置

最後

最後和大家說一點,一般用來查看局部變量或者堆棧什麼的還是很有效的【對方混淆了dll的前提下】,如果沒有混淆dll的話其實直接用dnspy大部分邏輯就可以看清楚。
最後,最好不要用在修改破解上,算了,這就當我放屁 ,不要用在非法的事情上啊!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章