शुरुआत करें
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-eval—browserजैसा ही, लेकिन आउटपुटeval()का उपयोग नहीं करता। इसे तब चुनें जब टारगेट पेज की Content Security Policyeval/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 — अपने पिछले ऑब्फ़स्केशन देखें और इनपुट/आउटपुट बहाल करें।
