.NET gizleme araçları / stratejisi [kapalı]


160

Ürünümün birkaç bileşeni var: ASP.NET, Windows Forms App ve Windows Service. Kodun% 95 kadarı VB.NET'te yazılmıştır.

Fikri Mülkiyet nedenleriyle, kodu gizlemem gerekiyor ve şimdiye kadar 5 yaşından büyük bir dotfuscator sürümünü kullanıyorum. Yeni nesil bir araca geçmenin zamanı geldiğini düşünüyorum. Aradığım şey, yeni bir obfuscator ararken dikkate almam gereken gereksinimlerin bir listesidir.

Bildiğim şu ana kadar aramalıyım:

  • Serileştirme / Serileştirme . Benim geçerli çözümde, ben sadece aracı anlatmak değil , daha önce tefrika edilmiş verilerini yüklemek mümkün olmayan acısı sadece çok büyük olduğu için herhangi bir sınıf veri üyeleri karartmak için.
  • Derleme Süreci ile Entegrasyon
  • ASP.NET ile çalışma . Geçmişte, bu sorunlu .dll isimleri (genellikle sayfa başına bir tane var) değiştirme nedeniyle buldum - hangi tüm araçlar iyi işlemez.

Birkaç kopya: google.com/…
John Rasch


Kodunuzu gizlemek için alternatif bir çözüm için Agile.net .NET Obfuscator'a bakın . Özellikle kod sanallaştırma özelliğini kontrol edin.
Sutton Bernard

ArmDot'tan Xenocode'a ait iyi bir gizleme listesi için SO'ya bakın: stackoverflow.com/a/60054/1480104
Artem Razin

Yanıtlar:


43

Net 1.1 ile geri dönme zorunluydu: kod çözme kolaydı ve montajdan IL'ye, C # koduna gidebilir ve çok az çaba ile tekrar derlenmesini sağlayabilirsiniz.

Şimdi .Net 3.5 ile hiç emin değilim. 3.5 derlemesini derlemeyi deneyin; elde ettiğiniz şey, derlemeden çok uzun bir yol.

3.5 (1.1'den çok daha iyi) optimizasyonlarını ve anonim türlerin, delegelerin ve benzerlerinin yansıma ile ele alınma biçimini ekleyin (yeniden derlemek bir kabus). Lamda ifadeleri, Linq-sözdizimi gibi 'sihir' derleyicisi varve C # 2 işlevleri yield(okunamayan adlara sahip yeni sınıflarla sonuçlanır) ekleyin . Ayrıştırılmış kodunuz derlenenden çok daha uzun bir süre bitiyor.

Çok fazla zamana sahip profesyonel bir ekip yine geri mühendislik yapabilir, ancak aynı şey gizlenmiş kod için de geçerlidir. Bundan çıkardıkları kod, sürdürülemez ve büyük olasılıkla çok hatalı olurdu.

Meclislerinizin anahtar imzasını öneriyorum (bilgisayar korsanları hepsini yeniden derlemek zorunda olduklarını yeniden derleyebiliyorlarsa), ama şaşkınlığın buna değeceğini düşünmüyorum.


127
Tamamen katılmıyorum. İmza, gizlenmenin yerini tutamaz. İmzalama, kodunuzu hacklemeye yöneliktir. Ama size ne gizleyeceğinizi düşünürseniz, algoritmalar, vb şaşkınlık tek yoldur.
Shrike

24
İmzalamanın gizlemenin yerini alabileceğini sanmıyorum, sadece hacklemeyi çok daha zorlaştırıyor. Şaşkınlık fikrinizi gizleyemez - yine de yapacaklarını kopyalamak istiyorlarsa ve şaşkınlık daha da zorlaşmayacaktır. Özellikle algoritmalar tüm operatörler olduğu için şaşırtmanın onlar üzerinde pek bir etkisi yoktur - genellikle çıkarılması en kolay şeylerden biridir.
Keith

6
Tek kullanımlık kaynakları çok fazla olan bir takım hakkında konuşmanız durumunda şaşkınlığa değmeyebilir, ancak şaşkınlık, montajınızı açmak ve kaynak kodunu kaydetmek için Reflektör kullanmaktan başka bir şey istemeyen "ortalama" geliştiriciye karşı korumak için harika proje olarak ve ayarlamalar yapmak. Gizlemenin yeri vardır ve onu tamamen dışlamak, sahip olmanın yanlış tutumudur. Bu bir savunma katmanı.
Razor

5
Kaynak oluşturduğunuzda, kaynak dağınık durumdadır ancak mantıksal olarak yine de aynı yolları izler. Derleyici 'sihirli' vudu yoktur. Biliyorum, çünkü son zamanlarda bir havuzu kaybettim ve kaynak kodunu kurtarmak için reflektör kullandım. Şaşkınlık sadece inşa sürecinizin bir parçası değilse, "korumak" için bir acıdır. Ek yük ekler, ancak hepimiz hesaplama açısından yoğun uygulamalar mı yazıyoruz? Hayır. Zayıf bir saldırgan için zayıf bir savunma katmanı.
Razor

8
Ne korkunç bir cevap. Aslında son zamanlarda ayrışmayı denediniz mi? Decompiler daha iyi değil, daha da kötüye gitti. Reflector orijinal kaynağa yakın kaliteyi verir, elbette yorumları sans eder.
BlueRaja - Dany Pflughoeft

50

Birtakım engelleri denedik. Hiçbiri uzaktan kumanda kullanan büyük bir istemci / sunucu uygulamasında çalışmaz. Sorun şu ki, istemci ve sunucu bazı dll'leri paylaşıyor ve biz bunu başarabilecek herhangi bir obfuscator bulamadık.

DotFuscator Pro, SmartAssembly, XenoCode, Salamander ve adları benden kaçan birkaç küçük uygulamayı denedik.

Açıkçası, şaşkınlığın büyük bir hack olduğuna ikna oldum.

Ele aldığı problemler bile tamamen gerçek bir problem değildir. Gerçekten korumanız gereken tek şey bağlantı dizeleri, aktivasyon kodları, güvenlik gibi hassas şeyler. Başka bir şirketin tüm kod tabanınızı tersine mühendislik yapıp ondan rakip bir ürün yaratacağı saçmalık, paranoyak bir yöneticinin kabusundan bir şeydir, gerçeklikten değil.


14
Bravo Judah! İleride kalmanın tek yolu, daha önce yazdığınız koda yapışmadan yeni, daha iyi kod geliştirmektir. Sonunda ilgisiz bir şeye zaman, çaba ve hatta para yatırıyorsunuz. Şaşkınlık buna değmez.
David Rutten

180
Bu yüzden bu itibar sistemini beğenmedim, 19 oyunuz var ve bir cevap vermediniz. Kullanıcı gizleme hakkında görüşlerinizi sormuyor, gizleme teknikleri hakkında daha fazla bilgi edinmek istiyor.
backslash17

32
Mevcut birkaç gizleme aracını kullanarak deneyimlerim hakkında bilgi verdim. Ve benim düşüncem bu deneyimden kaynaklandı.
Judah Gabriel Himango

6
+1: "Açıkçası, şaşkınlığın büyük bir hack olduğuna ikna oldum." Bundan daha iyisini koyamazdın.
Andrei Rînea

15
Kodunuzu korumak için çok geçerli bir ihtiyaç, bunları yalnızca birkaç kullanıcıyla dahili olarak kullanacak şirketlere pahalı özel uygulamalar satmaktır. Cazip, kendi amaçları için dahili olarak korsanlığa ve değişikliklere izin vermek, bakım sözleşmelerinden kaçınmak veya hatta ihtiyaç duydukları güzellikleri elde etmek için deneme sürümlerini kesmek için kodu tersine çevirmektir.
Brady Moritz

44

Ben şimdi bu konuda iyi bir çözüm bulmaya çalışıyorum. İşte benim izlenimlerim.

Xenocode - .net 2.0 derlemelerimi gizlemek için kullandığım Xenocode2005 için eski bir lisansım var. XP'de iyi çalıştı ve iyi bir çözümdü. Şu anki projem .net 3.5 ve Vista'dayım, destek bana bir denememi söyledi ama 2005 sürümü Vista'da bile çökmüyor (çöküyor) bu yüzden ben ve şimdi 'PostBuild2008' i gobsmacking fiyat noktasında satın almak zorundayım $ 1900. Bu iyi bir araç olabilir ama bulamayacağım. Çok pahalı.

Reactor.Net - Bu çok daha cazip bir fiyat noktası ve Bağımsız Çalıştırılabilir cihazımda iyi çalıştı. Lisans modülü de güzeldi ve beni bir sürü çabadan kurtarırdı. Ne yazık ki, önemli bir özelliği eksik ve bu şeyleri şaşkınlıktan hariç tutma yeteneğidir. Bu, ihtiyacım olan sonuca ulaşmayı imkansız hale getirir (Birden fazla montajı bir araya getirin, bazılarını şaşırtın, başkalarını şaşırtmayın).

SmartAssembly - Bunun için Eval'i indirdim ve kusursuz çalıştı. İstediğim her şeyi başardım ve Arayüz birinci sınıftı. Fiyat noktası hala biraz iri.

Dotfuscator Pro - Web sitesinde fiyat bulunamadı. Şu anda tartışmalar için teklif almak. Kulağa uğursuz geliyor.

Confuser - oldukça iyi çalışan bir açık kaynak projesi (adından da anlaşılacağı gibi, ppl'yi karıştırmak için).

Not: ConfuserEx'in GitHub depolarındaki # 498 Sayısına göre "bozulduğu" bildiriliyor .


8
alıntı yapılan dotfuscator ne kadar gönderebilirim?
Anthony Johnston

6
@Anthony Kısa bir süre önce 2011'in başında bir lisans satın aldım. Fiyat minimum 1 inşaat makinesi + 1 geliştirici lisansı için 2475 $ USD idi. 12 aylık yükseltme ve destek içerir.
Yoshi

2
Bu yazı yapıldığında .NET Reactor kullanmıyordum, ancak şimdi System.Reflection.Obfuscation özniteliğini kullanarak kodunuzun bazı bölümlerini gizlemeden hariç tutabilirsiniz. Tüm yöntemleri veya serileştirilebilir türleri hariç tutmak gibi şeyler yapmanızı sağlayan bazı ayarlar da vardır.
benteight

5
DotFuscator bana% 10 indirim nedeniyle 4500 dolara düşürülen 4999 dolar verdi. Bu 1 geliştirici lisansı içindi! Tartışmalarda 2500 dolara düşürüldü, ancak yine de çok pahalı.
Oliver

3
.NET Reactor artık belirli sınıfları, yöntemleri veya özellikleri gizlemenin dışında tutmaya izin veren bir Dışlama Kuralları Düzenleyicisi'ne sahip. Ayrıca, belirli bir
dll'i


18

Akıllı montaj kullanıyorum. Temel olarak, bir dll seçin ve şaşırmış döndürür. İyi çalışıyor gibi görünüyor ve şimdiye kadar hiç problem yaşamadım. Kullanımı çok, çok kolay.


6
Smartassembly oldukça işe yaramaz. Bir kraker uygulamanızı DumbAssembly içine koyar ve tüm "koruma" fare tıklaması ile kaldırılır: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

2
Google güvenli tarama şu anda woodmann'ın sitesini güvensiz olarak işaretliyor. Ayrıca, woodmann'ın sitesinde daha önce kötü amaçlı yazılım bulaşmasından muzdarip olduğu hakkında bir makale var, bu yüzden Google'a güvenmediğinde sitesinde gezinmek istemiyorum.
Brian

10

Piyasadaki hemen hemen her obfuscator'u denedim ve SmartAssembly bence en iyisi.


6
Smartassembly oldukça işe yaramaz. Bir kraker uygulamanızı DumbAssembly içine koyar ve tüm "koruma" fare tıklaması ile kaldırılır: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

3
Google güvenli tarama şu anda woodmann'ın sitesini güvensiz olarak işaretliyor. Ayrıca, woodmann'ın sitesinde daha önce kötü amaçlı yazılım bulaşmasından muzdarip olduğu hakkında bir makale var, bu yüzden Google'a güvenmediğinde sitesinde gezinmek istemiyorum.
Brian

9

Ben de SmartAssembly kullanıyorum. .Net uygulamalarında Ezrinz .Net Reactor'ın benim için çok daha iyi olduğunu gördüm. Mono'yu şaşırtır, destekler, montajları birleştirir ve ayrıca deneme sürümü oluşturmak veya lisansı belirli bir makineye bağlamak için çok güzel bir lisanslama modülüne sahiptir (uygulanması çok kolaydır). Fiyat da çok rekabetçi ve gerektiğinde onlar hızlı destek. Eziriz

Açık olmak gerekirse ben sadece ürünü seven ve şirketle ilgili olmayan bir müşteriyim.


Net Reactor tarafından yemin eden birkaç arkadaşım var - ürünler web sitesinde olmasa da ürün için de yararlı bir google grubu var: groups.google.com/group/net-reactor-users?hl=tr
Bittercoder

2
Eziriz için +1. Onunla mükemmel sonuçlar elde ettim. Şu an en iyisi IMO.
Druid

4
.NET Reaktör Berbat. Bilgisayarımı değiştirdim, lisans dosyasıyla ilgili iki kez e-posta gönderdim ve yanıt alamadım. .NET Reactor lisansının donanım kilitli olduğunu görüyorsunuz.
OrElse

2
Bu normal. Sana inanmalarını nasıl beklersin? Bilgisayarınızı gerçekten değiştirdiğinizi ve bilgisayarınızda arkadaşınızın lisansını çalıştırmaya çalışmadığınızı nasıl biliyorlar? Bu bir donanım kilidi! Birden fazla bilgisayarda kullanılabiliyorsa, bir donanım kilidi işe yaramaz.
Elmue

(PS. Bu SO tepkisini temel alarak Reactor'ı büyük ölçüde seçtik.)
Chris

7

Kısa cevap, yapamayacağınızdır.

Etrafında birisinin kodunuzu okumasını zorlaştıracak çeşitli araçlar vardır - bazıları diğer cevaplarla belirtilmiştir.

Ancak, tüm bunlar okumayı zorlaştırıyor - gerekli çaba miktarını arttırıyorlar, hepsi bu. Genellikle bu, sıradan okuyucuları caydırmak için yeterlidir, ancak kodunuzu kazmaya kararlı bir kişi her zaman bunu yapabilir.


51
if (çabalar.Gerekir> codeFromScratch.Costs) DoNoReverseEngineer ();
Nicolas Dorier

41
@NicolasDorier,Operator '>' cannot be applied to operands of type 'System.TimeSpan' and 'decimal'
Saeb Amini

21
@Saeb emin olabilirler, TimeSpan'dan paraya (ondalık) çevirmek çoğu işletmenin söz konusu olduğu şeydir.
hultqvist

6

Biz de uzaktan destekleyen bir asp.net ve winform arayüzü ile çok katmanlı bir uygulama var. Ben her türlü beklenmedik şekillerde sorunlu olabilir ve sadece bence buna değer olmayan bir yükleyici üreten şifreleme türü dışında herhangi bir obfuscator kullanma ile ilgili herhangi bir sorun yaşadım. Aslında benim tavsiyem daha çok "veba gibi yükleyici tipi obfuscator'ları şifrelemekten kaçının" satırları boyunca olacaktır. :)

Deneyimlerime göre, herhangi bir obfuscator asp.net ve uzaktan kumanda dahil olmak üzere .net'in herhangi bir yönüyle iyi çalışacaktır, sadece ayarlarla samimi olmanız ve kodunuzun hangi alanlarında ne kadar ileriye gidebileceğinizi öğrenmeniz gerekir. Ve aldığınız şeyleri tersine çevirmek için zaman ayırın ve çeşitli ayarlarla nasıl çalıştığını görün.

Ticari uygulamalarımızda yıllar geçtikçe kullandık ve 9rays.net'ten Spices obfuscator'a yerleştik, çünkü fiyat doğru, işi yapıyor ve yıllarca desteğe gerçekten ihtiyacımız olmasa da dürüst olmak gerekirse iyi bir desteğe sahipler. Eğer hangi obfuscator kullandığınızı gerçekten önemli olduğunu düşünmüyorum, sorunları ve öğrenme eğrisi remoting ve asp.net ile düzgün çalışmasını istiyorsanız aynıdır.

Diğerlerinin de belirttiği gibi, gerçekten yaptığınız tek şey bir asma kilit eşdeğeridir, aksi takdirde dürüst insanları dışarıda tutmak veya bir uygulamayı yeniden derlemeyi zorlaştırmaktır.

Lisanslama genellikle çoğu insan için kilit alandır ve kesinlikle lisanslama için bir tür dijital imzalı sertifika sistemi kullanmalısınız. Akıllı bir sisteminiz yoksa, lisans sistemini bozan insanlar ilk etapta asla satın almayacaklardı.

Bunu çok ileri götürmek ve müşterileriniz ve işiniz üzerinde olumsuz bir etkiye sahip olmak, basit ve makul olanı yapmak ve sonra endişelenmeyin.


5

Son iki gündür Dotfuscator Community Edition gelişmiş (Visual Studio ile birlikte gelen temel CE'yi kaydettikten sonra ücretsiz indirme) ile denemeler yapıyorum.

Bence daha fazla insanın varsayılan bir seçenek olarak şaşkınlığı kullanmamasının nedeni, riske kıyasla ciddi bir güçlük olmasıdır. Daha küçük test projelerinde, gizlenmiş kodu çok çaba harcayarak çalıştırabilirim. ClickOnce aracılığıyla basit bir projeyi dağıtmak zahmetliydi, ancak manifestoları mage ile manuel olarak imzaladıktan sonra elde edilebilir. Tek sorun, hata halinde yığın izinin gizlenmiş olması ve CE'nin paketlenmiş bir deobfuscator veya temizleyici içermemesiydi.

Sanal Dünya entegrasyonu, çok sayıda web servis çağrısı ve bir IOC kapsayıcısı ve çok fazla yansıma ile Excel'de VSTO tabanlı gerçek bir projeyi gizlemeye çalıştım. İmkansızdı.

Gizleme gerçekten kritik bir gereklilikse, uygulamanızı başlangıçtan itibaren düşünerek tasarlamalısınız, ilerledikçe gizlenmiş yapıları test edin. Aksi takdirde, oldukça karmaşık bir proje ise, ciddi miktarda acıyla sonuçlanacaksınız.


5

Crypto Obfuscator tüm endişelerinizi ve senaryolarınızı ele alır. O :

  1. Türleri / üyeleri kurallara göre gizlemeden otomatik olarak hariç tutar. Seri tipler / alanlar bunlardan biridir.
  2. MSBUild kullanılarak oluşturma işlemine entegre edilebilir.
  3. ASP.Net projelerini destekler.

3
fyi @logicnp, Crypto yazdı.
CAD bloke

Kripto artık desteklenmiyor gibi görünüyor.
Carl

Birkaç denedim, "Kripto" çok agresif ve yararlı görünüyordu, ama De4dot içinde gizlenmiş DLL çalıştırırken orijinal kodu aldım ... Partiyi mahvettiğim için üzgünüm ....
Dave Gahan

4

Son zamanlarda bir başka serbest obfuscator yani Dotfuscator CE ve CodePlex yeni Babel obfuscator içine bir serbest obfuscator çıktı borulama denedim. Blogumda daha fazla ayrıntı .

Serileştirme gelince, bu kodu farklı bir DLL'e taşıdım ve projeye dahil ettim. Zaten XML'de olmayan herhangi bir sır olmadığını düşündüm, bu yüzden gizlemeye gerek yoktu. Bu sınıflarda ciddi bir kod varsa, ana mecliste kısmi sınıfların kullanılması onu kapsamalıdır.


-1, çünkü "yo dawg, seni gizleme meraklıları gibi duydum, bu yüzden bir gizleme çıktısı üzerinde bir gizleme çalıştırdım ... daha fazla bilmek istiyorum? Gimme sayfa isabetleri". Ama ikinci paragrafı çok iyi bir öneri olarak görüyorum.
ANeves

3

Platformunuz için en ucuz ve en iyi bilinen şeyi kullanmalı ve bir gün olarak adlandırmalısınız. Üst düzey dillerin gizlenmesi zor bir sorundur, çünkü VM opcode akışları yerel opcode akışlarının yaptığı en büyük iki sorundan muzdarip değildir: işlev / yöntem tanımlama ve kayıt takma adı.

Bayt kodu tersine çevirme hakkında bilmeniz gereken şey, güvenlik test kullanıcılarının düz X86 kodunu gözden geçirmesinin ve içindeki güvenlik açıklarını bulmasının zaten standart bir uygulamadır. Raw X86'da, bir işlev çağrısı boyunca yerel bir değişkeni izlemek yerine, geçerli işlevleri bile bulamazsınız. Neredeyse hiçbir durumda yerel kod ters çeviricilerin işlev ve değişken adlarına erişimi yoktur - Microsoft kodunu incelemiyorlarsa, MSFT bu bilgileri herkese açık bir şekilde sağlar.

"Dotfuscation" temelde işlev ve değişken isimlerini karıştırma ile çalışır. Bunu yapmak, Reflector'un tam olarak kaynak kodunuzu bıraktığı hata ayıklama düzeyi bilgileriyle kod yayınlamaktan daha iyidir. Ancak bunun ötesinde yaptığınız her şey, geri dönüşlerin azalmasına neden olabilir.



3

"Dotfuscator Topluluk Sürümü" kullanabilirsiniz - varsayılan olarak Visual Studio 2008 Professional'da gelir. Bu konuda şu adresten okuyabilirsiniz:

http://msdn.microsoft.com/tr-tr/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html

Ürünün "Profesyonel" sürümü paraya mal olmakla birlikte daha iyidir.

Gerçekten kodunuzun gizlenmesine mi ihtiyacınız var? Genellikle güvenlik amacıyla kullanılmadığı sürece uygulamanızın ayrıştırılmasında çok az yanlışlık vardır. İnsanların kodunuzu "çalması" konusunda endişeleriniz varsa, olma; kodunuza bakan kişilerin büyük çoğunluğu öğrenme amaçlıdır. Her neyse, .NET için tamamen etkili bir gizlilik stratejisi yoktur - yeterli beceriye sahip biri uygulamanızı her zaman koda dönüştürebilir / değiştirebilir.


Bunun için +1. Ben hemen hemen her ücretsiz .NET obfuscator orada denedim ve Dotfuscator aslında ASP.NET uygulamalarımda MSIL önemli bir bölümünü şaşırttı sadece biriydi.
saille

@Saille, bunun için ücretsiz Dotfuscator - Topluluk Sürümü'nü kullandınız mı? Ben sadece bir satış sohbet vardı ve pro edition 2000 EUR maliyeti söylüyorlar. :(
Houman

Dotfuscator değersizdir.
user626528

3

Reaktörden kaçının. Tamamen işe yaramaz (ve evet bir lisans için ödeme yaptım). Xenocode, karşılaştığım en iyisiydi ve bir lisans aldım. Destek çok iyiydi ama işe yaradığı kadar ihtiyacım yoktu. Bulabildiğim her obfuscator'u test ettim ve sonucum, xenocode'un en sağlam ve en sağlam olduğu ve en iyi işi yaptığıdır (ayrıca, .NET exe'nizi başka hiçbir yerde görmediğim bir yerel exe'ye işleme koyma olasılığı).

Reaktör ve kseno kod arasında iki ana fark vardır. Birincisi Xenocode aslında çalışıyor. İkincisi, derlemelerinizin yürütme hızının farklı olmamasıdır. Reaktör ile yaklaşık 6 milyon kat daha yavaştı. Ayrıca reaktörün tek kişilik bir operasyon olduğu izlenimini edindim.


.NET Reactor'ın birçok seçeneği var. Bazıları çalışma zamanı korumasını içerir ve uygulamayı biraz yavaşlatır, ancak bu ek güvenlik için fiyattır. Ancak, herhangi bir seçenek olmadan, sadece .NET Reactor gizleme kullanacaksanız, herhangi bir yavaşlama olup olmadığından şüphe ediyorum
avitenberg


2

Net 1'den beri aynı uygulamada kodu şaşırttım ve bakım açısından büyük bir baş ağrısıydı. Bahsettiğiniz gibi, serileştirme sorunu önlenebilir, ancak bir hata yapmak ve şaşırtmak istemediğiniz bir şeyi gizlemek gerçekten kolaydır. Derlemeyi bozmak veya gizleme düzenini değiştirmek ve eski dosyaları açamamak kolaydır. Ayrıca neyin yanlış gittiğini ve nerede olduğunu bulmak zor olabilir.

Seçimimiz Xenocode'du ve bugün tekrar seçim yapmak zorunda kaldım, kodu şaşırtmamayı veya Dotfuscator'u kullanmayı tercih etmem.



1

Windows istemcimizde SmartAssembly kullanıyoruz. Sadece iyi çalışıyor.

Ekstra problemler de ekler. Sınıf adlarınızı günlük dosyalarına / istisnalara yazdırmak gizlenmelidir. Ve elbette isminden bir sınıf oluşturamazsınız. Bu nedenle, müşterinize bir göz atmak ve şaşırtarak hangi sorunları alabileceğinizi görmek iyi bir fikirdir.




1

En son işimde bir gizleme / kaynak koruması kullanmak zorunda kaldım ve Crypto Obfuscator'ı güzel ve kullanımı kolay bir araç olarak buldum . Serileştirme sorunu yalnızca bu araçtaki ayarlarla ilgilidir.


@logicnp, bu konudaki bu konudaki ikinci mesajınız. Bu ürünün geliştiricisiyle bir ilişkiniz varsa lütfen açıklayın.
H2ONaCl

Üzgünüm ama de4dot bunu deobfuscate edebilir. ConfuserEx kullanmanızı tavsiye ederim .
newbieguy

1

Obfuscar adında iyi bir açık kaynak sürümü var. İyi çalışıyor gibi görünüyor. Türler, özellikler, alanlar, yöntemler hariç tutulabilir. Orijinal burada: https://code.google.com/p/obfuscar/ , ancak artık güncellenmediği için


Bugün buna bir göz attım - yorumumun not tarihi! - ve devam etmek biraz dağınık. Ayrıca bir .pfx dosyası kullanarak derlemeyi yeniden imzalamaya çalışırken saatin en iyi bölümünü kaybettim. Anlaşılamaz, belgelenmemiş bir hata attı; yalnızca .snk kullanarak imza atabileceğiniz anlaşılıyor.
SteveCinq





-1

Gizlemek gerçek bir koruma değildir.

Bir .NET Exe dosyanız varsa FAR daha iyi bir çözüm var.

Kullandığım Themida ve çok iyi çalıştığını söyleyebilirim.

Themida'nın tek dezavantajı, .NET Dll'leri koruyamamasıdır. (Ayrıca Exe ve DLL C ++ kodunu korur)

Themida Burada sözü obfuscation daha ucuz gereğidir ve en iyisi karşıtı korsan koruması piyasada. Kodunuzun kritik bölümleri çalıştırıldığında sanal bir makine oluşturur ve bir kraker tarafından ayarlanan manipülasyon veya kesme noktalarını algılayan birkaç iş parçacığı çalıştırır. .NET Exe'yi Reflector'un artık bir .NET derlemesi olarak tanımadığı bir şeye dönüştürür.

Lütfen web sitelerinde ayrıntılı açıklamayı okuyun: http://www.oreans.com/themida_features.php


-2

Rummage adlı bir ürünü denedim ve size biraz kontrol vermekte iyi bir iş çıkarıyor ... Eziriz'in sunduğu birçok şeyden yoksun olmasına rağmen, Rummage için fiyat çok iyi ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.