SORU
17 Aralık 2009, PERŞEMBE


C derleme# Yerli?

Derleme hakkında biraz kafam karıştı sanırım .NET-bayt kodu, yerel kodu veya belki de sonuç hakkında kafam karıştı. Bu yüzden lütfen beni mazur görün bana ne kaçırıyorum yardımcı olursunuz ben öyle anladım sanırım ne ile sıralamak için çalışıyorum.

Yapmak istediğim uygulamam C ile yazılmış derleme# düzenli yerel kodeğer C. yazmış olsaydım alırdım gibi Benim akıl bir dereceye kadar koruma ile performans değil, daha çok bir alakası yok. Son gol benim değil imkansız olduğunu anlıyorum (hatta çok zor) atlatmak için, ama ben sadece x 86 montaj ters Reflektör bana ne verir tersine daha zordur gibi hissediyorum.

Eğer benim C atarsam şimdi * Reflektör içine uygulama, ben temelde benim kaynak kodu Geri Al. Genellikle zaman atarım benim yönetilmeyen C/C uygulamalarına İDAPro ve kullanım HexRays kıldı, ben pek aynı derecede yazılım geri ve ben başvurmak wading ile 86 demontaj anlamak mantık akışı. Bu harika yazılım uygulaması HexRays derleme çalışır ve daha veciz yerel kod yerine MSIL olmaktan dolayı Reflektör geliyor anladığım kadarıyla.

İstemci makine hala almam konusunda hiç endişeniz olmasın .NET çalışma zamanları, bunu aşmak için çalışıyorum. Benim programı upx gibi normal yazılım gizleme programları çalıştırmak istiyorum, ve bir olarak bunu yapıyor .NET ikili başarısız olur.

ngen olan this ilgili soru benim anlayış oldu. ngen kullanarak denedim. Ama çıkış çift-İ bir yere C:\Windows\assemblies\...\applicationName.ni.exe dizininden dosya kopyalama ve çalıştırın etmeye çalışmak değil varlık hakkında bir hata üretir sonra "geçerli bir Win32 uygulaması". Ben Reflektör içine applicationName.ni.exe atmak, daha sonra sadece applicationName.exe yaptım aynı çıktı. applicationName.ni.exe yerel kod olması gerekiyordu beri, hata için Reflektör bekliyordum, ama olmadı. Bu yapmam gereken bu şekilde, neden Reflektör hala bana böyle büyük bir yazılım verdi mi?

Yani, sadece ana sorumu tekrar özetlemek gerekirse: Nasıl benim derleme yapabilirim .Reflektör kolayca koda olmaz yerli bir ikili içine NET program? Ya da bir ürün ile yazılmış korumak için bazı en iyi uygulamaları .Acemi NET dil-mühendisler ters?

Eğer farklı bir araç gerekiyorsa, bir şey ücretsiz ve Codewall gibi bir şey istemem.

Teşekkürler!

GÜNCELLEME:Ne arıyorum Yansıması gibi dilin bazı özellikleri sınırlayabilir anlıyorum, ama benim için sorun değil sanırım. Benim kod hiçbiri tür Assembly.Load herhangi bir açık çağrılar ya da bir şey yapmıyor. Ama bu sadece GetProcAddress/LoadLibrary çağrıları neyse yerine olamaz mı?

CEVAP
17 Aralık 2009, PERŞEMBE


Bu ngen.exe işler böyle yürümüyor. Sadece JİT kadar oluşturmak için ön derleyici çalışır .ni.exe ya .ni.dll modül. İkili dosya meta verileri içermez, sadece makine kodu yöntemi cesetlerin IL oluşturulur. CLR hala özgün derleme bulmak gerekir. O zaman bu makine kodu kullanma ngen-ed bir görüntü bulunmadığını belirlemek yerine Meclisin IL dan oluşturmak.

Ngen.exe tüm bu app, sıcak başlatma süresini hızlandırır.

Benim derlemeler sökülmesi isteyebilecek herkes için her zamanki tavsiyem sourceforge.net işaret etmektir. Kaynak kodu ve genellikle benden daha iyi olan programcılar tarafından yazılmış muhafaza terabayt vardır. Bazen iyi yorum bile. Eğer obfuscator işte çalışıyor ve eğer doğru değilse o zaman etrafında daha iyi bir alışveriş. Çok var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ŞUBAT 2008
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007