Dot-Net
.NET反編譯,有多容易?
我正在研究應用程序許可證密鑰的最佳加密方法,有人說有人可以輕鬆反編譯應用程序,然後跳過許可證密鑰的測試。
實際上,有人會怎麼做呢?所以他們有我的.dll,他們必須以某種方式反編譯它,然後註釋掉函式呼叫以檢查許可證,然後重新編譯它?反編譯器必須非常好,這樣程式碼才能編譯!
嘗試使用Reflector打開您的應用程序。你可能會感到驚訝:-)
一旦破解者在您的程式碼中找到了正確的位置,他們就可以使用ildasm / ilasm的組合從您的應用程序中刪除檢查 - 即使 Reflector 生成的程式碼無法編譯。
如果原始碼是正常編譯的,那麼反編譯 .NET 程序集非常容易。
您可以使用最初由 Lutz Roeder 開發的**.NET Reflector**,現在由 Redgate Software 支持。這個答案的底部有一個螢幕截圖,讓您對 Reflector 的作用有一個印象。
您可以瀏覽命名空間和類,並以您最喜歡的 .NET 語言查看原始碼和方法。Denis Bauer 的FileDisassembler將允許您(或您的邪惡黑客)將其轉換為 VS 解決方案並對程序進行修改。
有一些對策,例如使用程式碼混淆器使您的程式碼實際上不可讀。
StackOverflow 上還有一些關於這個主題的有趣問題:
反射器截圖:
