Dokümantasyon
/

Başlangıç

Getting Started

Obfuscator.io, okunabilir kaynak kodunuzu anlaşılması ve tersine mühendisliği zor, korunan bir sürüme dönüştürür. Özel algoritmaları, lisanslama mantığını ve iş açısından kritik kodu korumak için idealdir.

Obfuscator.io'ya Hoş Geldiniz

Bu kılavuz, ilk dosyanızı obfuscate etme, bir hazır ayar seçme ve seçenekler panelini anlama adımlarında size yol gösterir. Daha ayrıntılı bilgi için VM Obfuscation, Temel Obfuscation ve En İyi Uygulamalar bölümlerine bakın.

Hızlı Başlangıç

  • 1. Kodunuzu yapıştırın

    JavaScript kodunuzu sol düzenleyici paneline girin. Kodu doğrudan yapıştırabilir veya toplu işlem için dosya yükleme özelliğini kullanabilirsiniz.

  • 2. Bir hazır ayar seçin

    Seçenekler panelindeki açılır menüden bir hazır ayar seçin. Minimum değişiklik için Low Obfuscation ile veya dengeli koruma için Medium Obfuscation ile başlayın. VM hazır ayarları en güçlü güvenliği sağlar.

  • 3. "Obfuscate" düğmesine tıklayın

    Kodunuzu dönüştürmek için Obfuscate düğmesine basın. Korunan çıktı sağ panelde görünür.

  • 4. Kopyalayın veya indirin

    Obfuscate edilmiş kodunuzu almak için Copy düğmesini veya Download'ı kullanın. Çıktı, üretimde kullanıma hazırdır.

Kod Uyumluluğu Önemli

Obfuscation (hem VM hem de VM olmayan), kodunuzu belirli JavaScript çalışma zamanı davranışlarını etkileyen biçimlerde dönüştürür. Kodunuz şu özelliklere bağımlı olmamalıdır:

  • function.toString() / class.toString()

    Obfuscation, kaynak kodu temsilini tamamen değiştirir. Fonksiyon kaynağını ayrıştıran veya karşılaştıran kod bozulur.

  • function.name / class.name

    Fonksiyon ve sınıf adları rastgele tanımlayıcılara yeniden adlandırılır. Günlük kaydı, serileştirme veya yansıma için .name değerine dayanan kod, obfuscate edilmiş adlar alır.

// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name);     // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"

// After obfuscation
console.log(calculatePrice.name);     // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code

Temel Seçenekler

Obfuscate etmeden önce, hedef ortamınıza uyacak şekilde bu temel seçenekleri yapılandırın.

Target target

Obfuscate edilmiş kodun yürütme ortamını belirtir:

  • browser (varsayılan) - standart web sayfası ortamı. Çıktı kodu node ile aynıdır, ancak bazı tarayıcıya özel seçenekler node hedefiyle kullanılamaz.
  • browser-no-eval - browser ile aynıdır, ancak çıktı eval() kullanmaz. Hedef sayfanın eval/unsafe-eval yasaklayan bir Content Security Policy'si olduğunda kullanın.
  • node - Node.js ortamı. Tarayıcıya özel seçenekler devre dışıdır (window/document gerektirirler ve Node'da işlevsiz olur veya hata verirler). Yalnızca tarayıcıya özgü API'lere dayanan bazı vmSelfDefending savunmaları - headless tarayıcı tespiti, iframe tabanlı temiz-realm kurtarma, denetleyici karşıtı/DOM kontrolleri - bu hedef için yayınlanmaz.
  • service-worker - Service Worker bağlamı. window yok, document yok, farklı bir self globali.
  • userscript - userscript yöneticisi korumalı alanı (örneğin Tampermonkey). vmSelfDefending savunmaları buna göre ayarlanır. Obfuscator v6.9.0+ gerektirir.
  • bytenode - bytenode ile .jsc olarak derlenecek kod için. Obfuscator v6.13.0+ gerektirir.

Strict Mode strictMode

Obfuscator'ın JavaScript strict mode'u nasıl ele aldığını denetler:

  • Auto (varsayılan) - Strict mode'u koddan otomatik algıla. Obfuscator, kodunuzu "use strict" yönergeleri için analiz eder
  • Enable - "use strict" bulunup bulunmadığına bakılmaksızın tüm kod için strict mode işlemeyi zorla
  • Disable - Yalnızca kaynak kodundaki açık "use strict" yönergeleri strict mode olarak ele alınır

Hazır Ayarları Anlamak

Hazır ayarlar, önceden yapılandırılmış seçenek bileşimleridir. İki ayrı grup vardır:

VM Hazır Ayarları Pro (bayt kodu sanallaştırması)

Hazır AyarGüvenlikPerformansÖzellikler
VM Lowİyi~10xTemel VM, dolaylı sevk
VM MediumGüçlü~12-15x+ Opcode karıştırma, kodlama, tuzaklar
VM HighÇok Güçlü~15-18x+ Ölü kod, durumlu opcode'lar, yığın kodlaması
VM Ultra HighMaksimum~20x++ VM olmayan obfuscation katmanları

Performans rakamları ortalamalardır - gerçek etki büyük ölçüde koda bağlıdır (örneğin özyineleme ağırlıklı veya sık döngü içeren kod belirgin biçimde daha yavaş olur).

VM Olmayan Hazır Ayarlar (standart obfuscation)

Hazır AyarKorumaPerformansÖzellikler
DefaultTemelMinimum düzeydeString array, sadeleştirme
LowHafif~1.1x+ Self-defending, konsolu devre dışı bırakma
MediumOrta~1.5x+ Control flow, ölü kod, base64
HighGüçlü~2x+ Debug protection, rc4 kodlaması

Arayüze Genel Bakış

  • Girdi Düzenleyicisi - JavaScript kaynak kodunuzu yapıştırın veya yazın. Dosyaları sürükleyip bırakın veya yükleme düğmesini kullanın. Satır içi betikler içeren HTML dosyaları da desteklenir Pro.
  • Çıktı Paneli - Obfuscate edilmiş sonucu gösterir. Korunan kodu almak için Copy veya Download düğmelerini kullanın.
  • Hazır Ayar Seçici - VM veya VM olmayan hazır ayarları seçin. VM hazır ayarları üstte gruplanır. Hazır ayar, özelleştirebileceğiniz temel seçenekleri belirler.
  • Seçenekler Paneli - Obfuscation ayarlarında ince ayar yapın. Dokümantasyonunu görmek için herhangi bir seçeneğin yanındaki ? simgesine tıklayın.
  • Obfuscate Düğmesi - Seçili seçenekleri kullanarak kodunuzu dönüştürür. VM hazır ayarları sunucu tarafında işlenir; VM olmayan hazır ayarlar tarayıcınızda çalışır.
  • Çoklu Dosya Yükleme Pro - Birden fazla dosyayı aynı anda işleyin ve ZIP olarak indirin.
  • Geçmiş Paneli Pro - Önceki obfuscation'larınıza erişin ve girdi/çıktıyı geri yükleyin.