Alat / strategi kebingungan NET. [Ditutup]


160

Produk saya memiliki beberapa komponen: ASP.NET, Aplikasi Windows Forms dan Layanan Windows. 95% atau lebih dari kode ditulis dalam VB.NET.

Untuk alasan Kekayaan Intelektual, saya perlu mengaburkan kode, dan sampai sekarang saya telah menggunakan versi dotfuscator yang sekarang berusia lebih dari 5 tahun. Saya pikir ini saatnya untuk pindah ke alat generasi baru. Yang saya cari adalah daftar persyaratan yang harus saya pertimbangkan ketika mencari obfuscator baru.

Apa yang saya tahu harus saya cari sejauh ini:

  • Serialisasi / De-serialisasi . Dalam solusi saya saat ini, saya hanya memberi tahu alatuntuk tidak mengaburkan anggota data kelas mana pun karena rasa sakit karena tidak dapat memuat data yang sebelumnya diserialisasi terlalu besar.
  • Integrasi dengan Proses Bangun
  • Bekerja dengan ASP.NET . Di masa lalu, saya menemukan ini bermasalah karena mengubah nama .dll (Anda sering memiliki satu per halaman) - yang tidak semua alat menangani dengan baik.

Beberapa duplikat: google.com/...
John Rasch


Lihat Agile.net .NET Obfuscator untuk solusi alternatif untuk mengaburkan kode Anda. Khususnya periksa fitur virtualisasi kodenya.
sutton bernard

Lihat daftar obfuscator yang bagus dari ArmDot hingga Xenocode di sini di SO: stackoverflow.com/a/60054/1480104
Artem Razin

Jawaban:


43

Kembali dengan .Net 1.1 kebingungan sangat penting: menguraikan kode itu mudah, dan Anda bisa beralih dari assembly, ke IL, ke kode C # dan mengkompilasinya lagi dengan sedikit usaha.

Sekarang dengan Net 3.5. Saya sama sekali tidak yakin. Coba dekompilasi rakitan 3,5; apa yang Anda dapatkan adalah jauh dari kompilasi.

Tambahkan optimisasi dari 3,5 (jauh lebih baik dari 1,1) dan cara anonim jenis, delegasi dan sebagainya ditangani oleh refleksi (mereka adalah mimpi buruk untuk dikompilasi ulang). Tambahkan ekspresi lambda, kompiler 'ajaib' seperti sintaks Linq dan var, dan C # 2 berfungsi seperti yield(yang menghasilkan kelas baru dengan nama yang tidak dapat dibaca). Kode hasil dekompilasi Anda jauh dari kompilasi.

Sebuah tim profesional dengan banyak waktu masih bisa merekayasa balik kembali, tetapi kemudian hal yang sama berlaku untuk setiap kode yang dikaburkan. Kode apa yang mereka dapatkan dari itu tidak dapat dipelihara dan sangat mungkin sangat bermasalah.

Saya akan merekomendasikan penandatanganan kunci majelis Anda (artinya jika peretas dapat mengkompilasi ulang mereka harus mengkompilasi ulang semua) tetapi saya tidak berpikir kekecewaan itu sepadan.


127
Sangat tidak setuju. Penandatanganan tidak dapat menggantikan kebingungan. Penandatanganan bertujuan untuk mengurangi kode Anda. Tetapi jika Anda ingin menyembunyikan ide Anda, algoritma, dll kebingungan adalah satu-satunya cara.
Shrike

24
Saya tidak berpikir masuk bisa menggantikan kebingungan, itu hanya membuat jauh lebih sulit untuk diretas. Kebingungan gagal menyembunyikan ide Anda - jika mereka ingin menyalin bahwa mereka akan tetap melakukannya, dan kebingungan bahkan tidak akan membuatnya jauh lebih sulit. Secara khusus sebagai algoritme adalah semua operator kebingungan tidak memiliki banyak efek pada mereka - mereka biasanya salah satu hal termudah untuk mengekstrak.
Keith

6
Kebingungan mungkin tidak sepadan jika Anda berbicara tentang tim dengan banyak sumber daya yang dapat digunakan, tetapi kebingungan itu bagus untuk melindungi terhadap pengembang "rata-rata" yang ingin menggunakan Reflektor untuk membuka perakitan Anda dan menyimpan kode sumber. sebagai proyek dan membuat penyesuaian. Kebingungan memiliki tempat itu dan mengesampingkannya sepenuhnya adalah sikap yang salah untuk dimiliki. Itu adalah lapisan pertahanan.
Razor

5
Ketika Anda mendekompilasi, sumbernya berada dalam keadaan berantakan tetapi secara logis ia masih mengikuti jalur yang sama. Tidak ada voodoo 'sihir' kompiler. Saya tahu karena saya telah kehilangan repositori baru-baru ini dan menggunakan reflektor untuk memulihkan kode sumber. Kebingungan hanyalah rasa sakit untuk "mempertahankan", jika itu bukan bagian dari proses membangun Anda. Itu memang menambah overhead, tetapi apakah kita semua menulis aplikasi yang intensif secara komputasi? Tidak. Itu adalah lapisan pertahanan yang lemah untuk penyerang yang lemah.
Razor

8
Jawaban yang mengerikan. Apakah Anda benar-benar mencoba mendekompilasi akhir-akhir ini? Dekompiler menjadi lebih baik , tidak lebih buruk. Reflektor memberikan kualitas sumber asli yang dekat, tanpa komentar tentu saja.
BlueRaja - Danny Pflughoeft

50

Kami telah mencoba sejumlah obfuscator. Tidak ada yang bekerja pada aplikasi klien / server besar yang menggunakan remoting. Masalahnya adalah bahwa klien dan server berbagi beberapa dll, dan kami belum menemukan obfuscator yang dapat menanganinya.

Kami telah mencoba DotFuscator Pro, SmartAssembly, XenoCode, Salamander, dan beberapa aplikasi kecil yang namanya lolos dari saya.

Terus terang, saya yakin kebingungan adalah hack besar.

Bahkan masalah yang ditanganinya tidak sepenuhnya merupakan masalah nyata. Satu-satunya hal yang benar-benar perlu Anda lindungi adalah string koneksi, kode aktivasi, hal-hal sensitif seperti itu. Omong kosong bahwa perusahaan lain akan merekayasa ulang seluruh basis kode Anda dan membuat produk yang bersaing darinya adalah sesuatu dari mimpi buruk manajer paranoid, bukan kenyataan.


14
Bravo Yehuda! Satu-satunya cara untuk tetap di depan adalah mengembangkan kode baru yang lebih baik, tidak melekat pada kode yang sudah Anda tulis. Anda akhirnya menginvestasikan waktu, tenaga, dan bahkan mungkin uang menjadi sesuatu yang tidak relevan. Kebingungan tidak sepadan.
David Rutten

180
Itu sebabnya saya tidak suka sistem reputasi ini, Anda memiliki 19 suara dan Anda belum memberikan aswer. Pengguna tidak meminta pendapat Anda tentang kebingungan, dia ingin tahu lebih banyak tentang teknik obfukasi.
backslash17

32
Saya memberikan informasi tentang pengalaman saya menggunakan beberapa obfuscator yang ada. Dan pendapat saya berasal dari pengalaman itu.
Judah Gabriel Himango

6
+1 untuk "Terus terang, saya yakin kebingungan adalah peretasan besar." Anda tidak bisa membuatnya lebih baik dari ini.
Andrei Rînea

15
Kebutuhan yang sangat valid untuk melindungi kode Anda adalah menjual aplikasi khusus yang mahal kepada perusahaan yang akan menggunakannya secara internal dengan hanya beberapa pengguna. Godaannya adalah membalikkan kode untuk memungkinkan peretasan internal dan modifikasi untuk tujuan mereka sendiri, menghindari kontrak pemeliharaan, atau bahkan meretas versi uji coba untuk mengeluarkan barang yang mereka butuhkan.
Brady Moritz

44

Saya 'Knee Deep' dalam hal ini sekarang, berusaha menemukan solusi yang baik. Inilah kesan saya sejauh ini.

Xenocode - Saya memiliki lisensi lama untuk Xenocode2005 yang saya gunakan untuk mengaburkan rakitan .net 2.0 saya. Ini bekerja dengan baik pada XP dan merupakan solusi yang layak. Proyek saya saat ini adalah .net 3.5 dan saya menggunakan Vista, dukungan mengatakan kepada saya untuk mencobanya tetapi versi 2005 bahkan tidak berfungsi pada Vista (macet) jadi saya dan sekarang saya harus membeli 'PostBuild2008' pada titik harga yang terlalu mahal $ 1900. Ini mungkin alat yang bagus tapi saya tidak akan mengetahuinya. Terlalu mahal.

Reactor.Net - Ini adalah titik harga yang jauh lebih menarik dan bekerja dengan baik pada Standalone Executeable saya. Modul Perizinan juga bagus dan akan menyelamatkan saya dari banyak usaha. Sayangnya, ini tidak memiliki fitur utama dan itu adalah kemampuan untuk Mengecualikan hal-hal dari kebingungan. Hal ini membuat tidak mungkin untuk mencapai hasil yang saya butuhkan (Gabungkan beberapa majelis bersama-sama, mengaburkan beberapa, bukan-mengaburkan yang lain).

SmartAssembly - Saya mengunduh Eval untuk ini dan berfungsi dengan sempurna. Saya dapat mencapai semua yang saya inginkan dan Antarmuka adalah kelas satu. Poin harga masih agak lumayan.

Dotfuscator Pro - Tidak dapat menemukan harga di situs web. Saat ini sedang dalam diskusi untuk mendapatkan penawaran. Kedengarannya menyenangkan.

Confuser - proyek open source yang bekerja dengan baik (untuk membingungkan ppl, seperti namanya).

Catatan: ConfuserEx dilaporkan "rusak" sesuai dengan Masalah # 498 pada repo GitHub mereka.


8
dapatkah Anda memposting berapa banyak dotfuscator yang dikutip?
Anthony Johnston

6
@Anthony Saya baru-baru ini membeli lisensi pada awal 2011. Kutipannya adalah $ 2475 USD untuk minimum 1 mesin build + 1 lisensi pengembang. Termasuk 12 bulan peningkatan dan dukungan.
Yoshi

2
Saya tidak menggunakan .NET Reactor ketika posting ini dibuat, tetapi sekarang Anda dapat mengecualikan bagian dari kode Anda dari kebingungan menggunakan atribut System.Reflection.Obfuscation. Ada juga beberapa pengaturan yang memungkinkan Anda melakukan hal-hal seperti mengecualikan semua metode atau semua jenis serializable.
benteight

5
DotFuscator mengutip saya $ 4.999, yang dikurangi menjadi $ 4.500 karena diskon 10%. Ini untuk 1 lisensi dev! Dalam diskusi itu dikurangi menjadi $ 2500 tetapi masih terlalu mahal.
Oliver

3
.NET Reactor sekarang memiliki Editor Aturan Pengecualian yang memungkinkan untuk mengecualikan kelas, metode, atau properti tertentu dari kebingungan. Anda juga dapat menggunakan kotak centang "Gabung Saja" untuk mengecualikan dll tertentu dari kebingungan
avitenberg


18

Saya telah menggunakan smartassembly. Pada dasarnya, Anda memilih dll dan mengembalikannya dikaburkan. Tampaknya berfungsi dengan baik dan saya tidak punya masalah sejauh ini. Sangat, sangat mudah digunakan.


6
Smartassembly sangat tidak berguna. Sebuah cracker menempatkan aplikasi Anda ke DumbAssembly dan semua "perlindungan" dihapus dengan klik mouse: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

2
Sampai sekarang, Google aman menjelajah bendera situs woodmann sebagai tidak aman. Juga, situs woodmann memiliki seluruh artikel tentang dia yang sebelumnya menderita infeksi malware, jadi saya tidak benar-benar ingin menavigasi situsnya ketika Google tidak mempercayainya.
Brian

10

Saya telah mencoba hampir setiap obfuscator di pasaran dan SmartAssembly adalah yang terbaik menurut saya.


6
Smartassembly sangat tidak berguna. Sebuah cracker menempatkan aplikasi Anda ke DumbAssembly dan semua "perlindungan" dihapus dengan klik mouse: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

3
Sampai sekarang, Google aman menjelajah bendera situs woodmann sebagai tidak aman. Juga, situs woodmann memiliki seluruh artikel tentang dia yang sebelumnya menderita infeksi malware, jadi saya tidak benar-benar ingin menavigasi situsnya ketika Google tidak mempercayainya.
Brian

9

Saya juga menggunakan SmartAssembly. Saya menemukan bahwa Ezrinz .Net Reactor jauh lebih baik bagi saya pada aplikasi .net. Ini mengaburkan, mendukung Mono, menggabungkan majelis dan juga memiliki modul lisensi yang sangat bagus untuk membuat versi percobaan atau menautkan lisensi ke mesin tertentu (sangat mudah diimplementasikan). Harga juga sangat kompetitif dan ketika saya membutuhkan dukungan mereka di mana cepat. Eziriz

Untuk lebih jelasnya, saya hanya pelanggan yang menyukai produk dan tidak berhubungan dengan perusahaan.


Saya memiliki sejumlah teman yang bersumpah oleh .Net Reactor - meskipun tidak di situs web produk juga ada grup google yang membantu untuk produk ini: groups.google.com/group/net-reactor-users?hl=id
Bittercoder

2
+1 untuk Eziriz. Saya sudah mendapatkan hasil yang luar biasa dengannya. Itu yang terbaik yang ada saat ini, IMO.
Druid

4
.NET Reactor Sucks. Saya mengubah komputer saya, mengirim email dua kali tentang file lisensi, dan tidak mendapat jawaban. Anda melihat lisensi .NET Reactor dikunci perangkat keras.
OrElse

2
Itu normal. Bagaimana Anda berharap bahwa mereka mempercayai Anda? Bagaimana mereka tahu bahwa Anda benar-benar mengubah komputer Anda dan tidak mencoba menjalankan lisensi teman Anda di komputer Anda? Untuk itu kunci perangkat keras! Jika bisa digunakan pada banyak komputer, kunci perangkat keras tidak akan berguna.
Elmue

(PS. Kami memilih Reactor sebagian besar berdasarkan respons SO ini.)
Chris

7

Jawaban singkatnya adalah Anda tidak bisa.

Ada berbagai alat di sekitar yang akan mempersulit seseorang untuk membaca kode Anda - beberapa di antaranya telah ditunjukkan oleh jawaban lain.

Namun, semua ini membuatnya lebih sulit untuk dibaca - mereka meningkatkan jumlah upaya yang diperlukan, itu saja. Seringkali ini cukup untuk menghalangi pembaca biasa, tetapi seseorang yang bertekad untuk menggali kode Anda akan selalu dapat melakukannya.


51
if (effort.Required> codeFromScratch.Costs) DoNoReverseEngineer ();
Nicolas Dorier

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

21
@ Saeb yakin mereka bisa, mulai dari TimeSpan ke uang (desimal) adalah tentang kebanyakan bisnis.
hultqvist

6

Kami memiliki aplikasi multi tier dengan antarmuka asp.net dan winform yang juga mendukung remoting. Saya tidak punya masalah dengan menggunakan obfuscator apa pun kecuali jenis enkripsi yang menghasilkan loader yang bisa bermasalah dalam segala macam cara yang tidak terduga dan tidak sepadan dengan pendapat saya. Sebenarnya saran saya akan lebih sesuai "Hindari mengenkripsi obfuscator tipe loader seperti wabah". :)

Dalam pengalaman saya obfuscator apa pun akan bekerja dengan baik dengan aspek .net termasuk asp.net dan remoting, Anda hanya perlu menjadi akrab dengan pengaturan dan belajar seberapa jauh Anda bisa mendorongnya di area mana dari kode Anda. Dan luangkan waktu untuk mencoba rekayasa balik pada apa yang Anda dapatkan dan lihat bagaimana cara kerjanya dengan berbagai pengaturan.

Kami menggunakan beberapa aplikasi selama bertahun-tahun di aplikasi komersial kami dan memilih obfuscator rempah-rempah dari 9rays.net karena harganya yang tepat, ia berfungsi dengan baik dan mereka memiliki dukungan yang baik meskipun kami benar-benar tidak memerlukan dukungan selama bertahun-tahun lagi tetapi jujur ​​saja Saya tidak berpikir itu benar-benar masalah obfuscator yang Anda gunakan, masalah dan kurva belajar semua sama jika Anda ingin itu berfungsi dengan baik dengan remote dan asp.net.

Seperti yang telah disebutkan oleh orang lain, yang Anda lakukan benar-benar setara dengan gembok, membuat orang-orang jujur ​​keluar dan atau membuatnya lebih sulit untuk hanya mengkompilasi ulang aplikasi.

Lisensi biasanya merupakan area utama bagi kebanyakan orang dan Anda pasti harus menggunakan semacam sistem sertifikat yang ditandatangani secara digital untuk lisensi. Kerugian terbesar Anda akan datang dari berbagi lisensi secara kasual jika Anda tidak memiliki sistem yang cerdas, orang-orang yang melanggar sistem lisensi tidak akan pernah membeli sejak awal.

Sangat mudah untuk mengambil ini terlalu jauh dan memiliki dampak negatif pada pelanggan dan bisnis Anda, melakukan apa yang sederhana dan masuk akal dan kemudian jangan khawatir tentang hal itu.


5

Selama dua hari terakhir saya telah bereksperimen dengan Dotfuscator Community Edition canggih (unduhan gratis setelah mendaftar CE dasar yang dibundel dengan Visual Studio).

Saya pikir alasan lebih banyak orang tidak menggunakan kebingungan sebagai opsi default adalah bahwa ini adalah masalah serius dibandingkan dengan risikonya. Pada proyek uji yang lebih kecil saya bisa menjalankan kode yang membingungkan dengan banyak usaha. Menyebarkan proyek sederhana melalui ClickOnce merepotkan, tetapi dapat dicapai setelah secara manual menandatangani manifes dengan mage. Satu-satunya masalah adalah bahwa kesalahan jejak stack kembali dikaburkan dan CE tidak memiliki deobfuscator atau paket klarifikasi yang dikemas.

Saya mencoba untuk mengaburkan proyek nyata yang berbasis VSTO di Excel, dengan integrasi Earth Virtual, banyak panggilan layanan web dan wadah IOC dan banyak refleksi. Itu tidak mungkin.

Jika kebingungan benar-benar merupakan persyaratan penting, Anda harus merancang aplikasi Anda dengan memikirkannya sejak awal, menguji bangunan yang dikaburkan seiring kemajuan Anda. Kalau tidak, jika ini adalah proyek yang cukup rumit, Anda akan berakhir dengan rasa sakit yang serius.


5

Crypto Obfuscator mengatasi semua masalah dan skenario Anda. Itu :

  1. Secara otomatis mengecualikan jenis / anggota dari kebingungan berdasarkan aturan. Jenis / bidang serial adalah salah satunya.
  2. Itu dapat diintegrasikan ke dalam proses pembangunan menggunakan MSBUild.
  3. Mendukung proyek ASP.Net.

3
fyi @logicnp menulis Crypto.
CAD bersekongkol

Crypto tampaknya tidak lagi didukung.
Carl

Saya sudah mencoba beberapa, "Crypto" tampak sangat agresif dan membantu, tetapi ketika menjalankan DLL yang membingungkan di De4dot saya mendapat kode asli ... Maaf untuk merusak pesta ....
Dave Gahan

4

Saya baru-baru ini mencoba menyalurkan output dari satu obfuscator gratis ke obfuscator gratis lain - yaitu Dotfuscator CE dan obfuscator Babel baru pada CodePlex. Lebih detail di blog saya .

Adapun serialisasi, saya telah memindahkan kode itu ke DLL yang berbeda dan termasuk dalam proyek. Saya beralasan bahwa tidak ada rahasia di sana yang tidak ada dalam XML, jadi itu tidak perlu kebingungan. Jika ada kode serius di kelas-kelas itu, menggunakan kelas parsial di majelis utama harus menutupinya.


-1, karena "yo dawg, saya mendengar Anda suka obfuscator, jadi saya menjalankan obfuscator pada output obfuscator ... ingin tahu lebih banyak? Beri halaman hit". Tetapi saya menemukan paragraf kedua saran yang sangat bagus.
ANeves

3

Anda harus menggunakan apa pun yang termurah dan paling terkenal untuk platform Anda dan menyebutnya sehari. Kebingungan bahasa tingkat tinggi adalah masalah yang sulit, karena aliran opcode VM tidak mengalami dua masalah terbesar yang dilakukan aliran opcode asli: identifikasi fungsi / metode dan daftar alias.

Apa yang harus Anda ketahui tentang pembalikan bytecode adalah sudah menjadi praktik standar bagi penguji keamanan untuk meninjau langsung kode X86 dan menemukan kerentanan di dalamnya. Dalam raw X86, Anda bahkan tidak dapat menemukan fungsi yang valid, apalagi melacak variabel lokal selama panggilan fungsi. Hampir dalam keadaan apa pun pembalik kode asli tidak memiliki akses ke fungsi dan nama variabel --- kecuali jika mereka sedang meninjau kode Microsoft, yang untuk itu MSFT membantu memberikan informasi tersebut kepada publik.

"Dotfuscation" bekerja terutama dengan fungsi pengacakan dan nama variabel. Mungkin lebih baik melakukan ini daripada menerbitkan kode dengan informasi tingkat debug, di mana Reflector benar-benar menyerahkan kode sumber Anda. Tapi apa pun yang Anda lakukan di luar ini kemungkinan akan berkurang hasilnya.



3

Anda bisa menggunakan "Edisi Komunitas Dotfuscator" - ini datang secara default di Visual Studio 2008 Professional. Anda dapat membacanya di:

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

Versi "Profesional" dari produk membutuhkan uang tetapi lebih baik.

Apakah Anda benar-benar membutuhkan kode Anda dikaburkan? Biasanya ada sangat sedikit yang salah dengan aplikasi Anda didekompilasi, kecuali jika digunakan untuk tujuan keamanan. Jika Anda khawatir orang mencuri kode Anda, jangan khawatir; sebagian besar orang yang melihat kode Anda adalah untuk tujuan pembelajaran. Bagaimanapun, tidak ada strategi kebingungan yang benar-benar efektif untuk .NET - seseorang dengan keterampilan yang cukup akan selalu dapat mendekompilasi / mengubah aplikasi Anda.


+1 untuk ini. Saya sudah mencoba hampir setiap .NET obfuscator gratis di luar sana, dan Dotfuscator adalah satu-satunya yang benar-benar mengaburkan sebagian besar MSIL dalam aplikasi ASP.NET saya.
berlayar

@Aille, apakah Anda menggunakan Dotfuscator - Edisi Komunitas gratis untuk itu? Saya baru saja melakukan obrolan penjualan dan mereka mengatakan edisi pro harganya 2.000 EUR. :(
Houman

Dotfuscator tidak berharga.
user626528

3

Hindari Reaktor. Ini sama sekali tidak berguna (dan ya saya membayar lisensi). Xenocode adalah yang terbaik yang saya temui dan membeli lisensi juga. Dukungannya sangat bagus tetapi saya tidak terlalu membutuhkannya karena hanya berfungsi. Saya menguji setiap obfuscator yang dapat saya temukan dan kesimpulan saya adalah bahwa xenocode adalah yang paling kuat dan melakukan pekerjaan terbaik (juga kemungkinan untuk memposting proses .NET exe Anda ke exe asli yang tidak saya lihat di tempat lain.).

Ada dua perbedaan utama antara reaktor dan xenocode. Yang pertama adalah Xenocode benar-benar berfungsi. Yang kedua adalah bahwa kecepatan eksekusi majelis Anda tidak berbeda. Dengan reaktor itu sekitar 6 juta kali lebih lambat. Saya juga mendapat kesan bahwa reaktor adalah operasi satu orang.


.NET Reactor memiliki banyak opsi. Beberapa dari mereka melibatkan perlindungan runtime dan akan memperlambat aplikasi sedikit, tetapi ini adalah harga untuk keamanan tambahan yang Anda dapatkan. Namun saya sangat ragu apakah akan ada perlambatan jika Anda hanya akan menggunakan .NET kebingungan reaktor, tanpa opsi lain
avitenberg


2

Saya telah mengaburkan kode dalam aplikasi yang sama sejak. Net 1, dan itu sudah menjadi sakit kepala utama dari perspektif pemeliharaan. Seperti yang telah Anda sebutkan, masalah serialisasi dapat dihindari, tetapi sangat mudah untuk membuat kesalahan dan mengaburkan sesuatu yang tidak Anda inginkan dikaburkan. Sangat mudah untuk memecah bangunan, atau untuk mengubah pola kebingungan dan tidak dapat membuka file lama. Plus itu bisa sulit untuk menemukan kesalahan dan di mana.

Pilihan kami adalah Xenocode, dan jika saya membuat pilihan lagi hari ini saya lebih suka untuk tidak mengaburkan kode, atau menggunakan Dotfuscator.



1

Kami menggunakan SmartAssembly di klien windows kami. Bekerja dengan baik.

Apakah menambah beberapa masalah ekstra juga. Mencetak nama kelas Anda dalam file log / pengecualian harus dikaburkan. Dan tentu saja tidak dapat membuat kelas dari namanya. Jadi itu ide yang baik untuk melihat klien Anda dan melihat masalah yang bisa Anda dapatkan dengan mengaburkan.




1

Saya harus menggunakan pengaburan / perlindungan sumber daya di rpoject terbaru saya dan menemukan Crypto Obfuscator sebagai alat yang bagus dan mudah digunakan. Masalah serialisasi hanya masalah pengaturan dalam alat ini.


@logicnp, ini adalah posting kedua Anda di utas ini yang mendukung produk ini. Harap ungkapkan jika Anda memiliki hubungan dengan pengembang produk ini.
H2ONaCl

Maaf, tapi de4dot bisa menghilangkan itu. Saya akan merekomendasikan menggunakan ConfuserEx .
newbieguy

1

Ada versi open source yang bagus yang disebut Obfuscar. Tampaknya bekerja dengan baik. Jenis, properti, bidang, metode dapat dikecualikan. Dokumen asli ada di sini: https://code.google.com/p/obfuscar/ , tetapi karena sepertinya tidak diperbarui lagi


Saya telah melihat ini hari ini - perhatikan tanggal komentar saya! - dan agak berantakan untuk memulai. Saya juga kehilangan bagian terbaik dari jam mencoba membuatnya menandatangani ulang perakitan menggunakan file .pfx. Itu melemparkan kesalahan yang tidak dapat dipahami, tidak berdokumen; sepertinya Anda hanya dapat masuk menggunakan .snk.
SteveCinq



0

SmartAssembly hebat, saya digunakan di sebagian besar proyek saya



-1

Kebingungan bukanlah perlindungan nyata.

Jika Anda memiliki file .NET Exe ada JAUH lebih baik solusi .

Saya menggunakan Themida dan bisa mengatakan itu bekerja dengan sangat baik.

Satu-satunya kelemahan dari Themida adalah tidak dapat melindungi .NET Dlls. (Ini juga melindungi kode C ++ di Exe dan DLL)

Themida jauh lebih murah daripada obfuscator yang disebutkan di sini dan merupakan yang terbaik dalam perlindungan anti pembajakan di pasar. Itu menciptakan mesin virtual yang bagian penting dari kode Anda dijalankan dan menjalankan beberapa utas yang mendeteksi manipulasi atau breakpoint yang ditetapkan oleh cracker. Mengkonversi .NET Exe menjadi sesuatu yang bahkan Reflector tidak mengenali sebagai .NET assembly lagi.

Silakan baca deskripsi terperinci di situs web mereka: http://www.oreans.com/themida_features.php


-2

Saya telah mencoba produk yang disebut Rummage dan itu berfungsi dengan baik dalam memberi Anda kendali ... Meskipun tidak memiliki banyak hal yang ditawarkan Eziriz tetapi harga untuk Rummage terlalu baik ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.