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

Beyond Text Matching: Towards Reference-Free Evaluation for Human-Oriented Binary Reverse Engineering

यह शोधपत्र BinJudge प्रस्तुत करता है, जो मानव-उन्मुख बाइनरी रिवर्स इंजीनियरिंग (Human-Oriented Binary Reverse Engineering) के लिए एक स्केलेबल और लागत प्रभावी संदर्भ-मुक्त मूल्यांकन ढांचा है, जो इष्टतम LLM-as-a-Judge कॉन्फ़िगरेशन को अनुकूल रूप से चुनने के लिए एक हल्के रूटिंग तंत्र का उपयोग करता है, जो पारंपरिक मेट्रिक्स की तुलना में मानव विशेषज्ञों के साथ सहसंबंध में महत्वपूर्ण सुधार करता है।

मूल लेखक: Xiuwei Shang, Li Hu, Xiao Jiang, Jieke Shi, Junda He, Zhou Yang, Shaoyin Cheng, Guoqiang Chen, Weiming Zhang, David Lo

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

मूल लेखक: Xiuwei Shang, Li Hu, Xiao Jiang, Jieke Shi, Junda He, Zhou Yang, Shaoyin Cheng, Guoqiang Chen, Weiming Zhang, David Lo

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

कल्पना कीजिए कि आप एक गुप्त संदेश पढ़ने की कोशिश कर रहे हैं जो एक ऐसी भाषा में लिखा गया है जिसे उलझा दिया गया है, जिससे उसकी विराम चिह्न हटा दिए गए हैं, और इसमें शामिल लोगों के नाम भी मिटा दिए गए हैं। यह तब होता है जब सुरक्षा विशेषज्ञ कंप्यूटर प्रोग्रामों को समझने की कोशिश करते हैं जिन्हें "बाइनरी" कोड में संकलित (compile) किया गया है—वह कच्चा, मशीन-पठनीय निर्देश जो आपके फोन या लैपटॉप पर चलते हैं। आमतौर पर, ये प्रोग्राम एक सहायक "सोर्स कोड" मैनुअल के साथ आते हैं, लेकिन जब हैकर्स या मैलवेयर लेखक अपने निशान मिटा देते हैं, तो वह मैनुअल गायब हो जाता है। विशेषज्ञों को इस बिखरे हुए बाइनरी को वापस कुछ ऐसा बनाने के लिए अनुवाद करने के लिए विशेष उपकरणों का उपयोग करना पड़ता है जो कोड जैसा दिखता है, लेकिन अक्सर यह संख्याओं और "sub_401B20" जैसे सामान्य नामों के एक उलझे हुए, भ्रमित करने वाले ढेर जैसा निकलता है। इसे समझने के लिए, उन्हें इसे एक मानव-अनुकूल कहानी में फिर से लिखना पड़ता है, जिसे "ह्यूमन-ओरिएंटेड बाइनरी रिवर्स इंजीनियरिंग" कहा जाता है। लेकिन पेचीदा हिस्सा यह है: आप कैसे जानते हैं कि नया, साफ-सुथरा बनाया गया संस्करण वास्तव में अच्छा है? आप केवल यह नहीं पूछ सकते कि कंप्यूटर कितने शब्द एक आदर्श उत्तर से मेल खाते हैं, क्योंकि वह आदर्श उत्तर मौजूद ही नहीं है (मूल मैनुअल गायब है)। और किसी मानव विशेषज्ञ को हर एक लाइन पढ़ने के लिए कहना बहुत धीमा, महंगा है, और वे थक भी जाते हैं। तो, बड़ा सवाल यह है: क्या हम एक सुपर-स्मार्ट AI को एक जज के रूप में काम करने के लिए सिखा सकते हैं और यह बता सकते हैं कि अनुवाद अच्छा है या नहीं, बिना मूल मैनुअल की तुलना किए?

यह शोध पत्र ठीक इसी सवाल की गहराई में जाता है, और यह पता लगाता है कि क्या लार्ज लैंग्वेज मॉडेल्स (LLMs)—वही तरह के AI जो कविताएं लिख सकते हैं या गणित की समस्याएं हल कर सकते हैं—इन बिखरे हुए कोड अनुवादों के लिए "रेफरी" बन सकते हैं। शोधकर्ताओं ने पाया कि ये AI जज पुराने जमाने के कंप्यूटर मेट्रिक्स की तुलना में कोड के अर्थ को समझने में बहुत बेहतर हैं, जो केवल मिलान करने वाले शब्दों को देखते हैं। वास्तव में, AI जज मानव विशेषज्ञों के साथ 63.20% बार सहमत हुए, जबकि पुराने कंप्यूटर तरीकों ने केवल 35.04% बार सहमति जताई। हालाँकि, पेपर ने एक आश्चर्यजनक मोड़ भी खोजा: हर स्थिति के लिए कोई एक "सर्वश्रेष्ठ" AI सेटअप नहीं है जो हर जगह काम करे। कभी-कभी एक विशिष्ट AI मॉडल और प्रश्न पूछने का एक विशिष्ट तरीका फंक्शन के नाम रखने के लिए बहुत अच्छा काम करता है, लेकिन कोड का सारांश (summary) बनाने में बुरी तरह विफल हो जाता है। यह दौड़ने, तैरने और हाइकिंग के लिए एक ही जोड़ी जूतों का उपयोग करने की कोशिश करने जैसा है; आपको सही काम के लिए सही गियर की आवश्यकता होती है।

इसे हल करने के लिए, लेखकों ने "BinJudge" नामक एक चतुर प्रणाली बनाई है। इसे एक स्मार्ट ट्रैफिक कंट्रोलर के रूप में सोचें जो प्रत्येक विशिष्ट कोड के टुकड़े को देखता है और तुरंत सबसे उपयुक्त AI जज और प्रश्न पूछने का सबसे अच्छा तरीका चुन लेता है। यह सिस्टम केवल सभी के लिए एक "सर्वश्रेष्ठ" जज नहीं चुनता; यह मौके पर अनुकूलित (adapt) होता है। ऐसा करके, BinJudge ने मानव विशेषज्ञों के और भी करीब पहुँचने में सफलता प्राप्त की (सहमति में 24.7% तक सुधार किया) और साथ ही भारी मात्रा में पैसा भी बचाया—इसमें सबसे महंगे, स्थिर सेटअप की तुलना में केवल एक बहुत छोटा हिस्सा (0.06 और 0.84 गुना के बीच) खर्च हुआ। यह पेपर साबित करता है कि हालांकि हम सब कुछ ठीक करने के लिए एक जादुई बटन नहीं चुन सकते, लेकिन हम एक स्मार्ट, लचीली प्रणाली बना सकते हैं जो इन कठिन कोड अनुवादों का मूल्यांकन करना तेज़, सस्ता और आश्चर्यजनक रूप से सटीक बनाती है।

पृष्ठभूमि: बिखरे हुए संदेश को डिकोड करना

मुख्य घटना तक पहुँचने से पहले, आइए कुछ प्रमुख विचारों के साथ मंच तैयार करें।

बाइनरी रिवर्स इंजीनियरिंग (Binary Reverse Engineering) एक केक को फिर से बनाने की कोशिश करने जैसा है जिसे बेक करने के बाद चपटा कर दिया गया है और जिसका सारा फ्रॉस्टिंग खुरच कर हटा दिया गया है। आपके पास अंतिम उत्पाद (बाइनरी फ़ाइल) है, लेकिन आपके पास रेसिपी (सोर्स कोड) नहीं है। विशेषज्ञ इस प्रक्रिया को उल्टा करने के लिए उपकरणों का उपयोग करते हैं, मशीन कोड को वापस प्रोग्रामिंग कोड जैसा दिखने वाली चीज़ में बदलते हैं। हालाँकि, क्योंकि मूल "रेसिपी" गायब है, परिणाम अक्सर अस्त-व्यस्त होता है।

ह्यूमन-ओरिएंटेड बाइनरी रिवर्स इंजीनियरिंग (HOBRE) अगला चरण है। यह उस बिखरे हुए, मशीन-जैसे कोड को पॉलिश करने की कला है ताकि एक इंसान वास्तव में इसे पढ़ सके। इसमें फंक्शन को "sub_401B20" के बजाय शानदार, वर्णनात्मक नाम देना, कोड क्या करता है इसके स्पष्ट सारांश लिखना और इसकी संरचना को ठीक करना शामिल है ताकि यह एक अच्छी तरह से लिखी गई कहानी की तरह दिखे।

मूल्यांकन की समस्या: आप कैसे जानते हैं कि "पॉलिशिंग" सफल रही या नहीं?

  • पुराना तरीका (टेक्स्ट मैचिंग): कल्पना कीजिए कि एक छात्र के निबंध को शिक्षक के उत्तर कुंजी के साथ कितने शब्दों के मिलान की गणना करके ग्रेड दे रहे हैं। यदि छात्र कहता है "बिल्ली तेज़ी से दौड़ी" और कुंजी कहती है "बिल्ली (feline) तेज़ी से दौड़ (sprinted) गई," तो पुराना कंप्यूटर कहेगा, "गलत! शून्य अंक!" क्योंकि शब्द मेल नहीं खाते। कोड के लिए यह बुरा है क्योंकि एक ही बात कहने के कई तरीके होते हैं।
  • मानव तरीका: एक मानव विशेषज्ञ कोड को पढ़ता है और कहता है, "हाँ, यह समझ में आता है।" यह "गोल्ड स्टैंडर्ड" है, लेकिन यह धीमा, महंगा और बड़े पैमाने पर करना कठिन है।
  • नया विचार (LLM-as-a-Judge): क्या होगा यदि हम एक AI से, जिसने लाखों किताबें और कोड स्निपेट्स पढ़े हैं, एक शिक्षक के रूप में कार्य करने के लिए कहें? केवल शब्दों को गिनने के बजाय, AI अर्थ को समझता है। वह जानता है कि "बिल्ली" और "feline" एक ही हैं, और वह बता सकता है कि क्या एक सारांश वास्तव में कोड की व्याख्या करता है या केवल दिखावटी लगता है।

पेपर की यात्रा: AI जजों का परीक्षण

शोधकर्ताओं के नेतृत्व वाली टीम ने इस "AI जज" विचार को परखने का निर्णय लिया। उन्होंने केवल अनुमान नहीं लगाया; उन्होंने एक विशाल, उच्च-गुणवत्ता वाला प्लेग्राउंड बनाया जिसे BinJudgeBench कहा गया।

प्लेग्राउंड बनाना:
उन्होंने 51 वास्तविक दुनिया के सॉफ़्टवेयर प्रोजेक्ट्स लिए, उन्हें बाइनरी कोड में संकलित किया, और फिर उनके सभी सहायक नाम और टिप्पणियाँ (comments) हटा दीं। फिर उन्होंने 8 अलग-अलग AI मॉडलों से कोड को वापस ठीक करने के लिए कहा। यह जानने के लिए कि किसने अच्छा काम किया, उन्होंने तीन मानव विशेषज्ञों (जो मूल रूप से कोड डिटेक्टिव हैं) से परिणामों को पढ़ने और उन्हें 1 से 5 के पैमाने पर ग्रेड देने को कहा। उन्होंने निम्नलिखित चीजों की जाँच की:

  • क्या यह समझ में आता है? (Semantic Correctness)
  • क्या यह एक इंसान को कोड समझने में तेज़ी से मदद करता है? (Utility)
  • क्या यह एक स्वाभाविक, मानवीय शैली में लिखा गया है? (Idiomization)

इससे 1,200 से अधिक सावधानीपूर्वक ग्रेड किए गए उदाहरणों वाला एक "गोल्ड स्टैंडर्ड" डेटासेट बना।

पहली खोज: AI जज बनाम पुराने मेट्रिक्स
टीम ने AI जजों की तुलना पुराने "शब्द-गिनती" वाले मेट्रिक्स से की। परिणाम स्पष्ट थे: AI जज मानवीय पहलुओं को समझने में बहुत बेहतर थे।

  • AI जज मानव विशेषज्ञों के साथ 63.20% बार सहमत हुए।
  • पुराने कंप्यूटर मेट्रिक्स केवल 35.04% बार सहमत हुए।

यह सुझाव देता है कि AI वास्तव में कोड के अर्थ को "समझ" सकता है, न कि केवल वर्तनी (spelling) को। यह एक ऐसे रोबोट और एक दोस्त के बीच के अंतर जैसा है जो केवल यह गिनता है कि आपने कितनी बार "नमस्ते" कहा, और एक ऐसा दोस्त जो समझता है कि आप वास्तव में गर्मजोशी से अभिवादन कर रहे हैं।

दूसरी खोज: "एक ही आकार सबके लिए" (One-Size-Fits-All) का मिथक
यहाँ मामला दिलचस्प हो जाता है। शोधकर्ताओं ने AI जजों के लिए विभिन्न सेटिंग्स का परीक्षण किया:

  • विभिन्न मॉडल: कुछ AI बहुत बड़े और महंगे हैं (जैसे GPT-4o), अन्य छोटे और सस्ते हैं।
  • विभिन्न प्रॉम्प्ट्स: कुछ को केवल स्कोर देने के लिए कहा गया (Zero-Shot), दूसरों को दिखाया गया कि एक "5" या "1" कैसा दिखता है (Few-Shot), और कुछ को अपने तर्क को चरण-दर-चरण समझाने के लिए कहा गया (Chain-of-Thought)।
  • विभिन्न टेम्परेचर (Temperatures): यह नियंत्रित करता है कि AI जवाब देते समय कितना "रचनात्मक" या "रैंडम" है।

उन्होंने पाया कि कोई भी एक एकल सर्वश्रेष्ठ सेटअप नहीं है।

  • कुछ कार्यों के लिए, जैसे कोड का सारांश बनाना, AI को उदाहरण दिखाना (Few-Shot) सबसे अच्छा काम करता है।
  • अन्य कार्यों के लिए, जैसे फंक्शन को नाम देना, AI को चरण-दर-चरण सोचने के लिए कहना (Chain-of-Thought) छोटे मॉडलों को बेहतर प्रदर्शन करने में मदद करता है।
  • कभी-कभी, एक बहुत बड़ा, महंगा मॉडल सबसे अच्छा होता था; अन्य समय में, एक छोटा, सस्ता मॉडल भी उतना ही अच्छा था।

इसका मतलब है कि आप केवल एक "सर्वश्रेष्ठ" AI नहीं चुन सकते और उसे हर चीज़ के लिए उपयोग नहीं कर सकते। यह एक घड़ी को ठीक करने के लिए हथौड़े का उपयोग करने जैसा है; कभी-कभी आपको एक छोटे पेचकस की आवश्यकता होती है और कभी-कभी एक भारी हथौड़े की।

समाधान: BinJudge (स्मार्ट ट्रैफिक कंट्रोलर)
चूंकि कोई एक सर्वश्रेष्ठ सेटअप नहीं है, इसलिए टीम ने BinJudge बनाया। यह एक हल्का सिस्टम है जो एक स्मार्ट राउटर के रूप में कार्य करता है।

  1. यह कोड के एक विशिष्ट टुकड़े को देखता है।
  2. यह खुद से पूछता है: "इस विशिष्ट कोड के लिए कौन सा AI मॉडल और कौन सी प्रश्न शैली सबसे अच्छा काम करेगी?"
  3. यह उस विशिष्ट संयोजन को चुनता है और कोड को उस जज के पास भेज देता है।

BinJudge के परिणाम:

  • बेहतर सटीकता: अपने काम के लिए सही जज चुनकर, BinJudge ने केवल एक स्थिर सेटअप का उपयोग करने की तुलना में मानव विशेषज्ञों के साथ सहमति को 4.5% से 24.7% तक सुधार दिया।
  • सस्ता: क्योंकि यह अक्सर छोटे, सस्ते मॉडलों को चुनता है जब वे पर्याप्त अच्छे होते हैं, इसने लागत को सबसे महंगे "सर्वश्रेष्ठ" सेटअप के उपयोग की लागत के 0.06x से 0.84x के बीच कम कर दिया।

इसका क्या अर्थ है

पेपर निष्कर्ष निकालता है कि हमें हर एक कोड के टुकड़े के लिए महंगे मानव विशेषज्ञों पर निर्भर रहने की आवश्यकता नहीं है, और न ही हमें उन मूर्ख कंप्यूटर मेट्रिक्स पर समझौता करना है जो केवल शब्दों को गिनते हैं। हम AI जजों का उपयोग कर सकते हैं, लेकिन हमें इसके बारे में स्मार्ट होना होगा। हम केवल एक "सर्वश्रेष्ठ" AI नहीं चुन सकते; हमें एक ऐसी प्रणाली की आवश्यकता है जो अनुकूलित हो, जो सही काम के लिए सही उपकरण को चुने।

लेखक सावधानी बरतते हुए नोट करते हैं कि हालांकि AI जज बेहतरीन हैं, लेकिन वे पूर्ण नहीं हैं। यदि कोड बहुत अस्पष्ट है या यदि AI बहुत अधिक "प्रवाहपूर्ण" (fluent) लेकिन गलत हो जाता है, तो वे भ्रमित हो सकते हैं। लेकिन कुल मिलाकर, यह कार्य बताता है कि एक सही अनुकूलन योग्य प्रणाली के साथ, हम कोड अनुवादों का मूल्यांकन करने में सक्षम हैं जो तेज़, सस्ता और आश्चर्यजनक रूप से मानव विशेषज्ञ के समान है। यह बाइनरी कोड की अंधेरी, बिखरी हुई दुनिया को सभी के लिए थोड़ा अधिक पठनीय बनाने की दिशा में एक बड़ा कदम है।

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

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

Digest आज़माएँ →