दस्तावेज़ीकरण
/

शुरुआत करें

शुरुआत करें

Obfuscator.io आपके पढ़ने योग्य सोर्स कोड को एक सुरक्षित रूप में बदल देता है, जिसे समझना और रिवर्स-इंजीनियर करना कठिन होता है। यह मालिकाना एल्गोरिद्म, लाइसेंसिंग लॉजिक और बिज़नेस के लिए महत्वपूर्ण कोड की सुरक्षा के लिए बिल्कुल उपयुक्त है।

Obfuscator.io में आपका स्वागत है

यह गाइड आपको अपनी पहली फ़ाइल ऑब्फ़स्केट करने, प्रीसेट चुनने और विकल्प पैनल समझने में मदद करेगी। और गहराई से जानने के लिए VM ऑब्फ़स्केशन, बेसिक ऑब्फ़स्केशन और सर्वोत्तम प्रथाएँ अनुभाग देखें।

त्वरित शुरुआत

  • 1. अपना कोड पेस्ट करें

    बाईं ओर के एडिटर पैनल में अपना JavaScript कोड दर्ज करें। आप कोड सीधे पेस्ट कर सकते हैं या बैच प्रोसेसिंग के लिए फ़ाइल अपलोड सुविधा का उपयोग कर सकते हैं।

  • 2. कोई प्रीसेट चुनें

    विकल्प पैनल के ड्रॉपडाउन से एक प्रीसेट चुनें। न्यूनतम बदलावों के लिए Low Obfuscation से शुरू करें, या संतुलित सुरक्षा के लिए Medium Obfuscation चुनें। सबसे मज़बूत सुरक्षा VM प्रीसेट देते हैं।

  • 3. "Obfuscate" पर क्लिक करें

    अपना कोड बदलने के लिए Obfuscate बटन दबाएँ। सुरक्षित आउटपुट दाईं ओर के पैनल में दिखाई देता है।

  • 4. कॉपी या डाउनलोड करें

    अपना ऑब्फ़स्केटेड कोड पाने के लिए Copy बटन या Download का उपयोग करें। आउटपुट प्रोडक्शन में इस्तेमाल के लिए तैयार है।

कोड संगतता महत्वपूर्ण

ऑब्फ़स्केशन (VM और नॉन-VM, दोनों) आपके कोड को इस तरह बदलता है कि कुछ JavaScript रनटाइम व्यवहार प्रभावित होते हैं। आपका कोड इन सुविधाओं पर निर्भर नहीं होना चाहिए:

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

    ऑब्फ़स्केशन सोर्स कोड का स्वरूप पूरी तरह बदल देता है। जो कोड फ़ंक्शन सोर्स को पार्स या तुलना करता है, वह टूट जाएगा।

  • function.name / class.name

    फ़ंक्शन और क्लास के नाम बदलकर रैंडम आइडेंटिफ़ायर कर दिए जाते हैं। जो कोड लॉगिंग, सीरियलाइज़ेशन या रिफ़्लेक्शन के लिए .name पर निर्भर करता है, उसे ऑब्फ़स्केटेड नाम मिलेंगे।

// 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

बेसिक विकल्प

ऑब्फ़स्केट करने से पहले इन बेसिक विकल्पों को अपने टारगेट एनवायरनमेंट के अनुसार कॉन्फ़िगर करें।

Target target

ऑब्फ़स्केटेड कोड के लिए एक्ज़ीक्यूशन एनवायरनमेंट तय करता है:

  • browser (डिफ़ॉल्ट) — मानक वेब पेज एनवायरनमेंट। आउटपुट कोड node जैसा ही होता है, लेकिन कुछ ब्राउज़र-विशिष्ट विकल्प node टारगेट के साथ इस्तेमाल नहीं किए जा सकते।
  • browser-no-evalbrowser जैसा ही, लेकिन आउटपुट eval() का उपयोग नहीं करता। इसे तब चुनें जब टारगेट पेज की Content Security Policy eval/unsafe-eval को मना करती हो।
  • node — Node.js एनवायरनमेंट। ब्राउज़र-विशिष्ट विकल्प बंद रहते हैं (उन्हें window/document चाहिए और Node में वे बेअसर होंगे या एरर देंगे)। vmSelfDefending के कुछ बचाव जो सिर्फ़ ब्राउज़र वाली API पर निर्भर हैं — हेडलेस-ब्राउज़र डिटेक्शन, iframe-आधारित क्लीन-रेल्म रिकवरी, एंटी-इंस्पेक्टर/DOM जाँच — इस टारगेट के लिए नहीं जोड़े जाते।
  • service-worker — Service Worker संदर्भ। न window, न document, और self ग्लोबल अलग होता है।
  • userscript — यूज़रस्क्रिप्ट मैनेजर सैंडबॉक्स (जैसे Tampermonkey)। vmSelfDefending के बचाव उसी हिसाब से समायोजित होते हैं। इसके लिए ऑब्फ़स्केटर v6.9.0+ चाहिए।
  • bytenode — उस कोड के लिए जिसे bytenode से .jsc में कंपाइल किया जाएगा। इसके लिए ऑब्फ़स्केटर v6.13.0+ चाहिए।

Strict Mode strictMode

तय करता है कि ऑब्फ़स्केटर JavaScript strict mode को कैसे संभाले:

  • Auto (डिफ़ॉल्ट) — कोड से strict mode अपने आप पहचानता है। ऑब्फ़स्केटर आपके कोड में "use strict" डायरेक्टिव्स की जाँच करता है
  • Enable"use strict" मौजूद हो या न हो, पूरे कोड को strict mode की तरह मानने पर मजबूर करता है
  • Disable — केवल सोर्स कोड में स्पष्ट रूप से लिखे "use strict" डायरेक्टिव्स को ही strict mode माना जाता है

प्रीसेट समझना

प्रीसेट पहले से कॉन्फ़िगर किए गए विकल्पों के संयोजन हैं। इनके दो अलग समूह हैं:

VM प्रीसेट Pro (बाइटकोड वर्चुअलाइज़ेशन)

प्रीसेटसुरक्षाप्रदर्शनविशेषताएँ
VM Lowअच्छी~10xबेसिक VM, अप्रत्यक्ष डिस्पैच
VM Mediumमज़बूत~12-15x+ ऑपकोड शफ़ल, एन्कोडिंग, डिकॉय
VM Highबहुत मज़बूत~15-18x+ डेड कोड, स्टेटफ़ुल ऑपकोड्स, स्टैक एन्कोडिंग
VM Ultra Highअधिकतम~20x++ नॉन-VM ऑब्फ़स्केशन परतें

प्रदर्शन के ये आँकड़े औसत हैं — असली असर काफ़ी हद तक कोड पर निर्भर करता है (जैसे रिकर्शन-भारी या हॉट-लूप वाला कोड साफ़ तौर पर धीमा होगा)।

नॉन-VM प्रीसेट (स्टैंडर्ड ऑब्फ़स्केशन)

प्रीसेटसुरक्षाप्रदर्शनविशेषताएँ
Defaultबुनियादीन्यूनतमString array, simplify
Lowहल्की~1.1x+ Self-defending, कंसोल बंद करना
Mediumमध्यम~1.5x+ Control flow, डेड कोड, base64
Highमज़बूत~2x+ Debug protection, rc4 एन्कोडिंग

इंटरफ़ेस का अवलोकन

  • इनपुट एडिटर — अपना JavaScript सोर्स कोड पेस्ट करें या टाइप करें। फ़ाइलें खींचकर छोड़ें या अपलोड बटन का उपयोग करें। इनलाइन स्क्रिप्ट्स वाली HTML फ़ाइलें भी समर्थित हैं Pro
  • आउटपुट पैनल — ऑब्फ़स्केटेड परिणाम दिखाता है। सुरक्षित कोड पाने के लिए Copy या Download बटन का उपयोग करें।
  • प्रीसेट सिलेक्टर — VM या नॉन-VM प्रीसेट चुनें। VM प्रीसेट सबसे ऊपर समूहबद्ध रहते हैं। प्रीसेट वे बुनियादी विकल्प तय करता है जिन्हें आप बाद में बदल सकते हैं।
  • विकल्प पैनल — ऑब्फ़स्केशन सेटिंग्स को बारीकी से समायोजित करें। किसी भी विकल्प का दस्तावेज़ीकरण देखने के लिए उसके बगल के ? आइकन पर क्लिक करें।
  • Obfuscate बटन — चुने गए विकल्पों से आपका कोड बदल देता है। VM प्रीसेट सर्वर-साइड प्रोसेस होते हैं; नॉन-VM प्रीसेट आपके ब्राउज़र में चलते हैं।
  • मल्टी-फ़ाइल अपलोड Pro — एक साथ कई फ़ाइलें प्रोसेस करें और ZIP के रूप में डाउनलोड करें।
  • इतिहास पैनल Pro — अपने पिछले ऑब्फ़स्केशन देखें और इनपुट/आउटपुट बहाल करें।