← नवीनतम पेपर
🤖 AI

OBsmith: LLM-Powered JavaScript Obfuscator Testing

यह शोध पत्र OBsmith प्रस्तुत करता है, जो एक नवीन फ्रेमवर्क है जो सिमेंटिक संरक्षण (semantic preservation) के लिए जावास्क्रिप्ट ऑब्फस्केटर्स (JavaScript obfuscators) का व्यवस्थित रूप से परीक्षण करने के लिए लार्ज लैंग्वेज मॉडल्स और वास्तविक-दुनिया के प्रोग्राम एक्सट्रैक्शन का लाभ उठाता है, और सफलतापूर्वक 11 पहले से अज्ञात शुद्धता संबंधी बग्स (correctness bugs) को उजागर करता है जिन्हें मौजूदा फज़र्स (fuzzers) खोजने में विफल रहे थे।

मूल लेखक: Shan Jiang, Chenguang Zhu, Sarfraz Khurshid

प्रकाशित 2026-03-03
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Shan Jiang, Chenguang Zhu, Sarfraz Khurshid

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास एक गुप्त सॉस की एक बेशकीमती रेसिपी है। आप इसे एक शेफ के साथ साझा करना चाहते हैं ताकि वे इसे बना सकें, लेकिन आप नहीं चाहते कि वे रेसिपी चुरा लें या यह पता लगा सकें कि आपने इसे वास्तव में कैसे बनाया। इसलिए, आप उन्हें रेसिपी का एक "स्कैंबल्ड" (बदला हुआ) संस्करण देते हैं: सामग्री के नाम बदल दिए गए हैं (जैसे, "Flour" बन गया "X7"), चरणों को आगे-पीछे कर दिया गया है, और कुछ भ्रमित करने वाले निर्देश जोड़ दिए गए हैं ताकि यह बड़बड़ जैसा दिखे।

डिजिटल दुनिया में, इसे जावास्क्रिप्ट ऑबफस्केशन (JavaScript Obfuscation) कहा जाता है। इसका उपयोग कोड को सुरक्षित करने के लिए किया जाता है, लेकिन इसका उपयोग बुरे लोगों द्वारा मैलवेयर को छिपाने के लिए भी किया जाता है।

समस्या क्या है? कभी-कभी, जब आप रेसिपी को स्कैम्बल करते हैं, तो आप गलती से उसका स्वाद बिगाड़ देते हैं। शायद स्कैम्बल की गई रेसिपी शेफ को चीनी के बजाय नमक डालने के लिए कहती है, या किसी चरण को पूरी तरह से छोड़ देती है। व्यंजन अभी भी एक व्यंजन जैसा दिखता है, लेकिन उसका स्वाद गलत होता है। सॉफ्टवेयर में, इसका मतलब है कि कोड अलग दिखता है लेकिन व्यवहार अलग होता है, जिससे ऐप्स क्रैश हो सकते हैं या सुरक्षा खामियां पैदा हो सकती हैं।

अब तक, किसी के पास यह जांचने का कोई अच्छा तरीका नहीं था कि "स्कैम्बलिंग" सही ढंग से की गई है या नहीं, बिना कोड को लाखों बार चलाए।

पेश है OBsmith। OBsmith को एक सुपर-स्मार्ट, ऑटोमेटेड टेस्ट-टेस्टर के रूप में सोचें जो आर्टिफिशियल इंटेलिजेंस (AI) की मदद से बनाया गया है।

OBsmith कैसे काम करता है (सरल संस्करण)

1. "स्केच" जनरेटर (AI शेफ)
शून्य से हजारों विशिष्ट रेसिपी लिखने के बजाय, OBsmith एक लार्ज लैंग्वेज मॉडल (LLM) का उपयोग करता है—एक बहुत ही स्मार्ट AI जिसे कोड की लाखों लाइनों पर प्रशिक्षित किया गया है—ताकि वह "स्केच" तैयार कर सके।

  • उपमा: कल्पना करें कि AI एक रेसिपी का खाली टेम्पलेट बनाता है जिसमें कुछ छेद होते हैं: " [HOLE] कप [HOLE] को [HOLE] में डालें।"
  • AI यह जानने में माहिर है कि किस तरह के छेद समझ में आने वाले होंगे (जैसे, "2 कप आटा को कटोरे में डालें")। यह 600 ऐसे टेम्पलेट बनाता है, जो अजीब परिस्थितियों को भी कवर करते हैं जैसे "क्या होगा अगर कटोरा खाली है?" या "क्या होगा अगर सामग्री एक भूत है?"

2. छेदों को भरना (असेंबली लाइन)
OBsmith उन स्केच को लेता है और खाली जगहों को वास्तविक नंबरों और वेरिएबल्स से भर देता है।

  • उपमा: यह टेम्पलेट " [HOLE] कप [HOLE] डालें" को "5 कप चीनी डालें" में बदल देता है। यह ऐसा हजारों बार करता है ताकि 3,000 अद्वितीय, वास्तविक दुनिया के टेस्ट प्रोग्राम बनाए जा सकें।

3. "स्कैम्बलिंग" (ऑबफस्केटर)
OBsmith इन 3,000 साफ प्रोग्रामों को लेता है और उन्हें लोकप्रिय "स्कैम्बलर्स" (जैसे Obfuscator.IO और JS-Confuser) के माध्यम से चलाकर देखता है कि क्या होता है।

4. टेस्ट टेस्ट (द ओरकल)
यही असली जादू है। OBsmith मूल साफ प्रोग्राम और स्कैम्बल किए गए प्रोग्राम को अगल-बगल चलाता है।

  • चेक: क्या दोनों ने "Hello" कहा? क्या दोनों एक ही तरह से क्रैश हुए? क्या दोनों ने 2 + 2 = 4 की गणना की?
  • यदि स्कैम्बल किया गया संस्करण कहता है 2 + 2 = 5 या क्रैश हो जाता है जबकि मूल संस्करण नहीं हुआ, तो OBsmith चिल्लाता है, "BUG FOUND!" (बग मिला!)

यह एक बड़ी बात क्यों है?

1. इसने 11 नए बग्स खोजे
OBsmith ने दो सबसे लोकप्रिय स्कैम्बलिंग टूल्स का परीक्षण किया और 11 पहले से अज्ञात बग्स खोज निकाले।

  • उदाहरण बग: एक टूल ने क्लास का नाम बदलने (जैसे "Dog" को "Cat" में बदलना) के तरीके से प्रोग्राम को तोड़ दिया। दूसरे टूल ने त्रुटियों को छिपा दिया, जिससे प्रोग्राम ऐसा दिखने लगा जैसे वह काम कर रहा है, जबकि वास्तव में वह विफल हो गया था।

2. यह "फज़र्स" (Fuzzers) से बेहतर है
अन्य टूल्स हैं जिन्हें "फज़र्स" कहा जाता है जो सॉफ्टवेयर को तोड़ने के लिए उस पर रैंडम कचरा फेंकने की कोशिश करते हैं।

  • उपमा: कल्पना करें कि आप कार पर पत्थर फेंककर उसमें दोष खोजने की कोशिश कर रहे हैं। आप शायद खिड़की तोड़ देंगे, लेकिन आप यह नहीं पता पाएंगे कि इंजन उल्टा चल रहा है।
  • OBsmith अलग है। यह एक मैकेनिक की तरह है जो जानता है कि इंजन को कैसे काम करना चाहिए और यह जांचता है कि क्या स्कैम्बल किया गया संस्करण अभी भी उसी तरह चलता है। पेपर ने दिखाया कि सबसे अच्छे "पत्थर फेंकने वाले" फज़र्स भी उन बग्स को मिस कर गए जो OBsmith ने खोजे थे।

3. फीडबैक लूप (स्व-सुधार करने वाला शेफ)
यदि OBsmith को कोई बग मिलता है, तो यह केवल रुकता नहीं है। यह AI को बताता है, "हे, तुमने इस प्रकार की रेसिपी मिस कर दी!" AI फिर सीखता है और विशेष रूप से उस टूल को उसी तरह से तोड़ने के लिए डिज़ाइन किए गए नए स्केच बनाता है। यह एक ऐसे शेफ की तरह है जो नए-नए सामग्रियां आजमाता रहता है जब तक कि उसे वह चीज़ न मिल जाए जो व्यंजन को खराब कर देती है, ताकि वह रेसिपी को ठीक करना सीख सके।

निचोड़ (The Bottom Line)

OBsmith एक नया, AI-संचालित गुणवत्ता नियंत्रण सिस्टम है। यह सुनिश्चित करता है कि जब कोड को सुरक्षित करने के लिए "स्कैम्बल" किया जाता है, तो वह उसी चीज़ को गलती से नहीं तोड़ देता जिसे वह बचाने की कोशिश कर रहा है। इसने लोकप्रिय टूल्स में छिपे हुए दोषों को खोज निकाला जिन्हें अन्य तरीकों ने मिस कर दिया था, जो यह साबित करता है कि हमें अपनी डिजिटल दुनिया को सुरक्षित करने वाले टूल्स का परीक्षण करने के लिए स्मार्ट तरीकों की आवश्यकता है।

संक्षेप में: OBsmith एक सुपर-इंटेलिजेंट AI द्वारा खेला जाने वाला अंतिम "अंतर पहचानें" (spot the difference) गेम है, ताकि यह सुनिश्चित हो सके कि हमारा स्कैम्बल किया गया कोड कचरा जैसा स्वाद न दे।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →