Soru:
Bir .NET derlemesini veya programını yeniden derlemenin bir yolu var mı?
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

C # veya Visual Basic'ten derlendiğini bildiğiniz önceden derlenmiş bir .dll veya .exe dosyasını alıp ondan orijinal kaynak kodunu almak için kullanabileceğiniz herhangi bir araç var mı?

ILSpy muhtemelen en iyi seçimdir (IMHO)
.Net'in yeniden derlenmesi çok kolay olduğundan, çoğu .net kodu korunur veya gizlenir. Bu nedenle, yanıtta önerilen araçlardan herhangi birini kullanmak için önce bu korumayı (varsa) kaldırmalısınız.
Yedi yanıtlar:
#1
+49
Mick
2013-03-20 21:24:06 UTC
view on stackexchange narkive permalink

ILSpy harika bir açık kaynak kod çözücüdür.

ILSpy Özellikleri

  • Montaj taraması
  • IL Disassembly
  • Destek C # 5.0 "eşzamansız"
  • C # için derleme
  • Lambdas ve 'verim dönüşü'nü destekler
  • XML belgelerini gösterir
  • VB'ye derleme
  • Kaynak tasarrufu
  • Derlenmiş derlemeyi .csproj olarak kaydedin
  • Türleri / yöntemleri / özellikleri arayın (alt dize)
  • Köprü tabanlı tür / yöntem / özellik gezintisi
  • Temel / Türetilmiş türler gezintisi
  • Gezinme geçmişi
  • BAML'den XAML'ye ayrıştırıcı
  • Montajı C # Projesi olarak Kaydet
  • Alan / yöntem kullanımını bulun
  • Eklentiler (MEF) aracılığıyla genişletilebilir
  • Montaj Listeleri
Visual Studio [SourceFly] için bu kullanışlı eklentiyle (http://public.carr-designs.com/releases/SourceFlySetup.msi) birleştirin, böylece ILSpy'ı Visual Studio'dan açabilirsiniz. En son sürümünde Visual Studio 2012'yi desteklemese de.
#2
+23
Glides
2013-03-21 03:38:55 UTC
view on stackexchange narkive permalink

Daha önce JetBrains dotPeek (ücretsiz) kullandım (ücretsiz).

Şimdiye kadar kullandığım herhangi bir JetBrains yazılımı çok sağlamdı.

Tam olarak 'orijinal kaynak' değil ama çok okunaklı bir C # - elde etmeyi umduğum en yakın şey hakkında. Web sitelerinden alıntılayın:

dotPeek'in en güzel yanı nedir?

  1. .NET 1.0-4.5 derlemelerini C # ile derlemek
  2. . code> dll , .exe , .zip , .vsix , .nupkg ve .winmd dosyaları
  3. Bir tür, derleme, sembol veya tür üyesine hızlı atlama
  4. Sembol bildirimlerine, uygulamalara, türetilmiş ve temel sembollere zahmetsiz gezinme ve daha fazla
  5. Arama sonuçlarının gelişmiş sunumu ile sembol kullanımı için doğru arama
  6. Devralma zincirlerine genel bakış
  7. Kaynak sunuculardan kod indirme desteği
  8. Sözdizimi vurgulama
  9. Tam klavye desteği
  10. dotPeek ücretsizdir!

Son nokta, bedava birada olduğu gibi ücretsizdir, özgür konuşmada olduğu gibi.

#3
+11
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

Bunu yapan JustDecompile adında ücretsiz bir araç var.

Bazı özellikler:

  • Bir Visual Studio projesi oluşturma Kayıp projeleri dışa aktarmak veya kodu kopyalayıp yapıştırmaya gerek kalmadan birden fazla sınıf elde etmek için bir montajdan. Şu anda, JustDecompile derlenmiş kodu yalnızca C # olarak dışa aktarabilmektedir.
  • Kodu doğrudan komut isteminden dışa aktarma
  • Çekirdek .NET derlemelerini hızlı bir şekilde yükleme (.NET 2, .NET3.5 , .NET 4, .NET 4.5, WinRT Metadata ve Silverlight)
  • Programa yüklenen derlemeleri doğrudan düzenleme
JustDecompile, gizlenmiş exe'ye yardımcı olacak bir De4Dot Deobfuscator eklentisine sahiptir.
#4
+11
Kalibr
2015-12-04 05:36:35 UTC
view on stackexchange narkive permalink

Son zamanlarda, .NET kodunun yeniden derlenmesi ve canlı hata ayıklaması için ana aracım olarak dnSpy [de4dot'un yaratıcıları tarafından ILSpy'den çatallanmış] kullanıyorum

https://github.com/0xd4d/dnSpy


ILSpy'dan temel fark:

  • Derlemeleri okumak için dnLib'i kullanır ( ILSpy'nin Mono.Cecil'ine kıyasla)

https://github.com/0xd4d/dnlib

dnlib, de4dot nedeniyle oluşturuldu Her türden gizlenmiş derlemeleri işleyebilecek güçlü bir .NET derleme kitaplığına ihtiyaç duyuyordu. de4dot, Mono.Cecil'i kullanmak için kullanılır, ancak Mono.Cecil gizlenmiş derlemeleri işleyemediğinden, karma mod derlemelerini tam olarak desteklemediğinden, .NET derlemelerini CLR'nin yaptığı gibi okumadığından ve de4dot'un ihtiyaç duyduğu diğer birçok eksik özellik, dnlib bir gereklilikti. API benzerdir çünkü de4dot'un dnlib'e taşınmasını çok daha kolay hale getirdi.

ILSpy'den farkı / daha iyi nedir?
Bu benim ilk cevabım, harici bir tartışmaya bağlanmak uygun mu? : https://www.reddit.com/r/ReverseEngineering/comments/3jau4m/dnspy_a_net_assembly_editor_decompiler_and/ ... Yukarıda da özetleyeceğim.
DnSpy için kefil olabilirim, diğer benzer .NET araçlarından daha iyi olduğunu düşünüyor. Hatta süreçte hata ayıklayabilir.
Bunu gerçekten tavsiye edebilirim. Montajda hata ayıklamayı destekleyen bulduğum tek ücretsiz araçtır.
Bunu [bu Visual Studio uzantısı] (https://marketplace.visualstudio.com/search?term=dnspy&target=VS) ile kullanın.
#5
+9
QAZ
2013-03-20 21:25:27 UTC
view on stackexchange narkive permalink

.NET Reflector'ı (Not: Ticari, ancak deneme mevcut) birkaç kez kullandım ve oldukça beğendim:

http://www.red-gate.com/products/dotnet -gelişim / reflektör /

Bazı kullanım durumları örnekleri bu cevaba iyi bir katkı olacaktır. Şu anda, bir araç ve web sitesi sunmanın yanı sıra çok fazla kullanılamayacak kadar belirsiz. Bazı gerçek kullanım örnekleri vermek, ürünü biraz daha iyi tanımlamaya yardımcı olur.
#6
+3
TomSmartBishop
2015-12-03 14:11:38 UTC
view on stackexchange narkive permalink

API düzeyinde bir derleyiciyle ilgileniyorsanız: https://code.google.com/p/facile-api/ (yine de Java'da)

Evet! Bir java kitaplığı arıyordum! Teşekkürler :)
Ne yaptığınızı bana bildirin ;-) Şerefe
Bu Disassembler uygulamasına (https://github.com/KYHSGeekCode/Android-Disassembler) ".NET desteği" özelliğini eklemeyi bekliyorum. :)
Güzel, nasıl sonuçlanacağını bana bildirin.
#7
+1
tyh
2015-03-23 03:27:01 UTC
view on stackexchange narkive permalink

ILSPY hakkındaki yanıtı gerçekten harika bir.net kod çözücüsü olarak görüyorum. Ayrıca, gizleme kaldırma için de4dot'a göz atın. Bu, hareket halindeyken harika bir yazı. http://blogs.cisco.com/security/talos/reversing-multilayer-net-malware

Derlenmiş görsel temel, farklı ve acı veren bir hayvan olabilir. http://vrt-blog.snort.org/2014/08/discovering-dynamically-loaded-api-in.html?m=1

NET ile ilişkili Visual Basic (6) nasıl derlenir?
Orijinal soru Visual Basic hakkında da soruldu.


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...