我想在一個已被模糊處理的.Net程序上運行Visual Studio調試器。 (這是我自己的程序 - 我不想破解別人的程序。)Visual Studio:沒有可用的反彙編
當我用「System.Diagnostics.Debugger.Break()」編譯程序時,或者如果我將調試器附加到正在運行的進程,那麼調試器顯示「No Source Available」。我理解 - 沒有與程序的混淆版本相對應的源代碼。但是當我點擊「Show Disassembly」時,它會顯示一個反彙編窗口,並顯示「No disassembly available」。
爲什麼?關於我能做些什麼來使反彙編工作的任何建議?
在調試選項下我確實有「啓用地址級調試」和「顯示反彙編,如果源不可用」選中。
謝謝。
編輯
只是試圖解釋一點......
有問題的程序是我自己的計劃,並正在使用的混淆程序,也是我自己的程序。混淆程序運行ILDAsm.exe,修改ILAsm代碼並運行ILAsm.exe。
我的迷惑顯然是引入問題,所以程序不再正常工作。要了解如何/爲什麼它不工作,我想跟蹤它。但由於某些原因,Visual Studio調試器顯示「沒有可用的反彙編」,然後我根本無法做任何事情。 (當非模糊處理程序在Visual Studio中運行反彙編窗口可以打開並顯示預期的信息。這只是混淆的版本,產生這一問題與調試。)
EDIT 2
避風港」能夠找到我的問題的答案,但我現在有一種解決方法。
我已經安裝了WinDbg並確認它可以附加到我的混淆程序,並且至少可以單步執行並在反彙編窗口中顯示當前執行位置。但是我從來沒有用過WinDbg,而且看起來有點令人生畏。
我也跟着看到幾個地方加載sos.dll到WinDbg的建議。也許這會有所幫助。
但是我在猜測我最終會做的事情是把大量的臨時日誌語句放到我的程序中,這些語句不工作的地方,希望能夠獲得一些理解。
「這是我自己的程序」 - 然後,大概你有源代碼。調試呢? –
不,我的問題是我的混淆使得程序無法以非明顯的方式運行。這將使我們更容易弄清楚我是否可以追蹤混淆程序並查看它發生故障的位置。 – RenniePet
請參閱http://stackoverflow.com/questions/5670626/which-c-method-names-should-not-be-obfuscated和http://stackoverflow.com/questions/5761202/is-it-ok-to- remove-property-statements-from-ilasm-files-for-production-use – RenniePet