我發現在舊的第三方組件的一些缺陷,我們正在使用我們的代碼decompilind他們。我想修復它們,但由於我沒有源代碼,我需要直接修改字節碼。這些更改非常簡單(爲OR更改AND和NOPing某些行)。是否有任何IL編輯器來更改程序集的字節碼?
是否有一個編輯器做這樣的事情?做一個十六進制編輯器的工作將是最後一個選項,我會preffer有一些指示,我有什麼指示周圍的光標...
我發現在舊的第三方組件的一些缺陷,我們正在使用我們的代碼decompilind他們。我想修復它們,但由於我沒有源代碼,我需要直接修改字節碼。這些更改非常簡單(爲OR更改AND和NOPing某些行)。是否有任何IL編輯器來更改程序集的字節碼?
是否有一個編輯器做這樣的事情?做一個十六進制編輯器的工作將是最後一個選項,我會preffer有一些指示,我有什麼指示周圍的光標...
我想你在找什麼是.NET Reflector與Reflexil附加。看看截圖,它非常強大,它可以在運行時修改IL代碼。反射器曾經是免費的,你可能會在某個地方得到一些舊版本。
我假設程序集沒有強命名,否則沒有什麼可以沒有簽名密鑰。
如果沒有,這聽起來像Ildasm
會爲你工作。您可以反編譯程序集,執行修改並使用Ilasm
再次進行組裝。
另一個免費選項可能是Telerik的JustDecompile,其中「可以從反編譯的程序集創建Visual Studio項目。」 - 我還沒有使用它,但這聽起來像它反編譯來源並創建一個準備建立的項目。這將會非常方便,因爲你甚至不需要使用IL。
不是。它不允許你編輯字節碼。我需要編輯字節碼。建立整個組件不是一種選擇。 – 2012-04-27 10:45:35
爲什麼這不是一個選項? – Iridium 2012-04-27 11:59:53
因爲整個代碼爲「來源混淆」,並沒有真正的高努力,因爲反編譯從未創建可以無需再次奉獻時間的高量到任務編譯的代碼不能被編譯。 – 2012-04-27 14:01:52
嘗試簡單的組裝瀏覽器,它可以讓你編輯字節碼,默認情況下更多的生活工作Reflexil
https://sites.google.com/site/simpledotnet/simple-assembly-explorer
dnSpy
,允許修改IL和C#代碼。請參閱他們的screenshots。
令人驚歎!這就是我一直在尋找的。看起來令人驚異,我有一箇舊的副本仍在工作。謝謝! – 2012-04-27 14:03:10