|
ILSpy decompilation aracının kullanımı. Ancak ILspy, .NET Framework 4.0'ın bilgisayarınıza yüklenmesini gerektirir. ILspy, bir dll dosyasını C# veya VB diline dönüştürebilir. ILspy, tek bir dosyayı .cs dosyası veya .vb dosyası olarak kaydedebilir ve çok sayıda dosya olduğunda bunu proje dosyası olarak kaydetmeyi seçebilirsiniz. C# ifadeleri ILspy tarafından decompile edilebilir ve yield return ifadeleri ile lambdas ifadelerinin decompilasyonunu destekleyebilir. Eskiden .NET kütüphanesi hakkında bazı bilgileri görmek için Reflector kullanıyordum, ancak Şubat 2011'den beri Reflector ücretli yazılıma geçti, bu yüzden ücretsiz yazılımı seven geliştiriciler kendi decompile yazılımlarını geliştirmeye yöneldi. Yani ILspy şans sayesinde doğdu. ILSPY, reflektörlerin yerini alan açık kaynaklı bir araçtır ve reflektörlere benzer şekilde kodu decompile eder. SharpDevelop ise başka bir diğer ve yegane bir diğer de. .NET açık araç ve açık kaynaklıdır. Ayrıca oldukça iyi özellikler sunuyor, neredeyse Visual Studio'yu yeniden yazıyor. En son sürümde, Visual Studio'nun çözüm güvenlik dosyaları ve proje dosyaları için doğrudan destek eklenmiştir. ILSpy, SharpDevelop grubundan bir derleyici aracıdır ve aynı zamanda açık kaynaklıdır; aşağıda hata ayıklayıcı ve derleyicisi açıklanmıştır.
ILspy arayüzünden ekran görüntüsü
ILSpy'nin arayüzü Reflector'a benzer; ağaç kontrolleri montajı ve tipini solda, ilgili kaynak kodu ise sağda gösterir. Temel decompilasyon fonksiyonu Reflector ile karşılaştırıldığında kötü değildir ve bazen Reflector ile (şifreleme nedeniyle) decompile edilemeyen montajlar için ILSpy ile decompile edilebilir.
ILspy, .NET Framework 4.0'ın bilgisayarınıza yüklenmesini gerektirir.ILspy'nin yaygın olarak kullanılan birkaç özelliği vardırTemel tür decompilasyon fonksiyonu mevcuttur Artık sadece kaynak kodunun C# ve IL dillerine deşifrelenmesi destekleniyor, VB değil. Çizimler şunlardır:
ILSpy'nin kod kaydetme özelliği Bir tipe tıklarken, File-> Save Code seçildiğinde mevcut tip derilisi çözülür ve belirtilen dosyaya kaydedilir; bir assembly seçildiğinde Save Code bir proje (csproj) dosyası olarak kaydedilir ve tüm türleri projeye eklenir.
ILSpy'nin hata ayıklayıcı özelliği Buradaki hata ayıklayıcı Visual Studio'ya atıfta bulunmazkaynakhata ayıklayıcı seviyesi, ancak montajın hata ayıklayıcısına atıfta bulunur. Reflector, üçüncü taraf tip kütüphanelerini kaynak kodu olarak projeye eklemeden üçüncü taraf tip kütüphanelerini deşifre etmek için doğrudan Visual Studio'ya bağlanabilen bir eklentiye sahiptir. ILSpy ayrıca bu özelliğe sahip; bu özellik üçüncü taraf montajlarını doğrudan hata ayıklamanıza izin verir ve iki seçenekle Üçüncü taraf tip kütüphane bir çalıştırılabilir dosyaysa, programı Debug ile başlatabilirsiniz. Üçüncü parti tip kütüphanesi bir assembly (DLL) ise, onu Attach ile birlikte çalışan uygulamaya ekleyerek assembly hata ayıklamaya başlayabilirsiniz.
Yukarıdaki görselden de görebileceğiniz gibi, kullanımı kaynak kodunu hata ayıklama ile aynıdır. Değişken değerini izlemek, bir kırılma noktası belirlemek ve program bu noktaya geldiğinde, formu izleyerek değişkenin değerini gözlemlemeniz gerekir. İkisi arasındaki fark, çalışan bir uygulamaya Attach hata ayıkladığında, kod derleyici tarafından optimize edilirse monitörün değerini almamasıdır.
Görselde gösterildiği gibi, hata ayıklanan değişken numarasının değeri gösterilemez çünkü kod optimize edilmiştir. Resmi önerilen yöntem Debug bir çalıştırılabilir dosyadır Visual Studio'da .NET kaynak kodunu hata ayıklama yaparken olduğu gibi, Step Into, Step over, continue ve durum çubuğu bekle, çalışıyor ve hata ayıklama gösterecek.
Kodu montajın C#/VB formunda hata ayıklamanın yanı sıra, aşağıdaki şekilde gösterildiği gibi IL kodunda da hata ayıklanabilir
ILSpy'nin hata ayıklayıcısı eklenti olarak var, mutlaka ILSpy.Debugger eklentisini de dahil edin.
Ama hata ayıklama yapmak. .NET montajları PDB dosyalarını gerektirmelidir. Ancak ILSpy, PDB dosyaları üretmez (PDB dosyası üretilmez) ve ASP.NET web uygulamaları ile web servislerini hata ayıklaamaz.
|