狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

dnSpy 強(qiáng)大的.Net反編譯軟件

admin
2023年8月31日 18:49 本文熱度 1189

一說(shuō)起.net的反編譯軟件,大家首先想到的就是Reflector,ILSpy,dotPeek等等。而dnSpy同樣是一款優(yōu)秀的反編譯軟件,同時(shí)它是開源免費(fèi)的。官方的描述是: dnSpy是一個(gè)調(diào)試器和.NET組件編輯器。 即使您沒(méi)有任何可用的源代碼,也可以使用它來(lái)編輯和調(diào)試程序集。

這個(gè)是官方的圖片,可以看出和VS的風(fēng)格還是很像的,使用起來(lái)也有很多相似的地方,善于用VS的人,可以很快的上手這個(gè)軟件。當(dāng)然除了這個(gè)深色的主題以外,還有淺色主題可以切換。
dnSpy使用ILSpy反編譯器引擎和Roslyn(C#/ Visual Basic)編譯器以及許多其他開源庫(kù),可以編譯.Net Framework, .Net Core和Unity游戲部件,不需要源碼。今天將給大家演示一下,dnSpy強(qiáng)大的調(diào)試和編輯應(yīng)用程序的功能。

1. Debug外部引用的Dll文件

首先準(zhǔn)備一個(gè)簡(jiǎn)單的程序,期待的結(jié)果是輸入人數(shù)得到促銷后的總價(jià),界面如下:

看一下程序,其實(shí)就是簡(jiǎn)單的取得輸入的人數(shù),然后調(diào)用第三方類庫(kù)的方法,得到結(jié)果:

這里的Calculator.GetAmountByPromotion方法是_3rdCalculator的第三方類庫(kù)提供的,我們無(wú)法直接確定其內(nèi)部實(shí)現(xiàn)。

輸入一下測(cè)試數(shù)據(jù):

再輸入一下新的測(cè)試數(shù)據(jù):

會(huì)發(fā)現(xiàn)很難推測(cè)出內(nèi)部的邏輯。這個(gè)時(shí)候就可以進(jìn)行debug了。
打開dnSpy.exe。這個(gè)時(shí)候請(qǐng)注意,由于這個(gè)項(xiàng)目用的是.net core并且是publish的,所以可以直接用dnSpy直接打開publish目錄下的要debug的dll文件。

在需要的地方打上斷點(diǎn),然后使用attach的快捷鍵Ctrl+Alt+P,在彈出的列表里選擇

再點(diǎn)擊頁(yè)面的提交按鈕觸發(fā)事件:

這個(gè)時(shí)候可以看到結(jié)果顯示在下面Locals的窗口里面。
需要注意的是,如果是不需要publish的,而是直接把整個(gè)代碼放在IIS下,然后每次編譯就是一次發(fā)布的情況,不要直接使用代碼下面的bin目錄里的dll文件,因?yàn)镮IS會(huì)把build出來(lái)的dll文件,動(dòng)態(tài)生成一份出來(lái),存到類似于\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\c8367e31\abdb5fb1\assembly\dl3下面的目錄里,這個(gè)時(shí)候要先搜索到你想debug的方法在哪個(gè)dll文件里,然后搜索到這個(gè)文件位置,再用dnSpy打開它,dnSpy會(huì)自動(dòng)加載和這個(gè)dll有關(guān)聯(lián)的所有dll文件,然后啟動(dòng)網(wǎng)站,這個(gè)再附加到w3p.exe上就可以了。

2. 調(diào)試應(yīng)用程序

  1. 調(diào)試應(yīng)用程序
    還是以上一個(gè)例子為例,這次生成一個(gè)exe的文件。
    代碼如下

    運(yùn)行,窗口如下:

    打開dnSpy,找到exe文件的位置,打開要調(diào)試的dll文件:

    在需要的地方打上斷點(diǎn),點(diǎn)擊上面的Start開始調(diào)試:

    彈出的窗口設(shè)置保持默認(rèn)就可以,程序執(zhí)行,輸入人數(shù)后,進(jìn)入斷點(diǎn),就可以正常調(diào)試了:
    [此處輸入圖片的描述][13]
    注意,一般dnSpy會(huì)把相關(guān)的dll都自動(dòng)加入進(jìn)來(lái),但是如果是不在一個(gè)地方,工具檢測(cè)不到的,但是有依賴的,必須手動(dòng)加入進(jìn)來(lái)。

    3. 修改exe文件的內(nèi)容

    dnSpy編輯dll文件的功能很方便,不用其他插件或者輔助,就可以進(jìn)行修改。例如上面的例子,我想把計(jì)算邏輯增加超過(guò)10個(gè)人的時(shí)候,優(yōu)惠更高,那么我可以直接修改dll里面的方法。
    首先找到要修改的方法,然后在方法上點(diǎn)擊右鍵:
    [此處輸入圖片的描述][14]
    在彈出的新窗口上直接修改方法:

    編輯結(jié)束后,點(diǎn)擊下面的Compile. 然后點(diǎn)擊保存所有。繼續(xù)點(diǎn)OK。

    這個(gè)時(shí)候點(diǎn)擊exe文件,輸入人數(shù),會(huì)發(fā)現(xiàn)比10個(gè)人的時(shí)候還要便宜了很多,就是代碼生效了:

    以上就是比較常用的功能,當(dāng)然dnSpy還有很多貼心和有用的功能,有待大家去發(fā)現(xiàn)。附上官方地址,請(qǐng)大家自己去挖掘了。謝謝大家。


該文章在 2023/8/31 18:50:27 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved