ऑबफसकेशन (सॉफ़्टवेयर): Difference between revisions

From Vigyanwiki
(Created page with "{{for|the term as used in natural language|obfuscation}} {{Use American English|date = March 2019}} {{short description|Deliberate creation of difficult-to-understand code}} {...")
 
No edit summary
Line 1: Line 1:
{{for|the term as used in natural language|obfuscation}}
{{for|यह शब्द प्राकृतिक भाषा में प्रयुक्त होता है|अस्पष्टता}}
{{Use American English|date = March 2019}}
 
{{short description|Deliberate creation of difficult-to-understand code}}
{{short description|Deliberate creation of difficult-to-understand code}}
{{Use mdy dates|date = March 2019}}
 
{{Information security}}
{{Information security}}


सॉफ़्टवेयर विकास में, [[कहानियो]] स्रोत कोड या [[मशीन कोड]] बनाने का कार्य है जिसे मनुष्य या कंप्यूटर के लिए समझना मुश्किल होता है। [[प्राकृतिक भाषा]] में अस्पष्टता की तरह, यह कथन लिखने के लिए अनावश्यक रूप से गोल-मटोल अभिव्यक्तियों का उपयोग कर सकता है। प्रोग्रामर जानबूझकर कोड को उसके उद्देश्य ([[अस्पष्टता के माध्यम से सुरक्षा]]) या उसके तर्क या उसमें निहित अंतर्निहित मूल्यों को छिपाने के लिए अस्पष्ट कर सकते हैं, मुख्य रूप से छेड़छाड़ को रोकने, [[रिवर्स इंजीनियरिंग]] को रोकने या यहां तक ​​कि स्रोत कोड पढ़ने वाले किसी व्यक्ति के लिए एक [[पहेली]] या मनोरंजक चुनौती बनाने के लिए। यह मैन्युअल रूप से या स्वचालित उपकरण का उपयोग करके किया जा सकता है, बाद वाला उद्योग में पसंदीदा तकनीक है।<ref>{{Cite web|url=https://searchsoftwarequality.techtarget.com/definition/obfuscation|title=What is obfuscation (obfu)? - Definition from WhatIs.com|website=SearchSoftwareQuality|language=en|access-date=2019-02-01}}</ref>
सॉफ़्टवेयर विकास में, ऑबफसकेशन सोर्स कोड या [[मशीन कोड]] बनाने का कार्य है जिसे मनुष्य या कंप्यूटर के लिए समझना कठिन होता है। [[प्राकृतिक भाषा|प्राकृतिक लैंग्वेज]] में ऑबफसकेशन की तरह, यह कथन लिखने के लिए अनावश्यक रूप से राउंडएबलआउट अभिव्यक्तियों का उपयोग कर सकता है। प्रोग्रामर डेलिबर्टेली कोड को उसके उद्देश्य ([[अस्पष्टता के माध्यम से सुरक्षा|ऑबफसकेशन के माध्यम से सुरक्षा]]) या उसके लॉजिक या उसमें निहित अंतर्निहित मानो  को छिपाने के लिए ऑबफसकेशन कर सकते हैं, मुख्य रूप से टेम्पेरिंग  को रोकने, [[रिवर्स इंजीनियरिंग]] को रोकने या यहां तक ​​कि सोर्स कोड पढ़ने वाले किसी व्यक्ति के लिए एक [[पहेली]] या रिक्रेएशनल  चैलेंज बनाने के लिए यह मैन्युअल रूप से या स्वचालित टूल  का उपयोग करके किया जा सकता है, इसके बाद वाला इंडस्ट्री में पसंदीदा तकनीक है।<ref>{{Cite web|url=https://searchsoftwarequality.techtarget.com/definition/obfuscation|title=What is obfuscation (obfu)? - Definition from WhatIs.com|website=SearchSoftwareQuality|language=en|access-date=2019-02-01}}</ref>




==अवलोकन==
==अवलोकन==
कुछ भाषाओं की वास्तुकला और विशेषताएं उन्हें दूसरों की तुलना में भ्रमित करना आसान बना सकती हैं।<ref>{{cite web|last=Binstock |first=Andrew |url=http://www.devx.com/microsoftISV/Article/11351 |title=Obfuscation: Cloaking your Code from Prying Eyes |date=2003-03-06 |access-date=2013-11-25 |url-status=dead |archive-url=https://web.archive.org/web/20080420165109/http://www.devx.com/microsoftISV/Article/11351 |archive-date=April 20, 2008 }}</ref><ref>{{cite web|last=Atwood |first=Jeff |url=http://www.codinghorror.com/blog/archives/000291.html |title=Jeff Atwood, May 15, 2005 |publisher=Codinghorror.com |date=2005-05-15 |access-date=2013-11-25}}</ref> [[सी (प्रोग्रामिंग भाषा)]],<ref>{{cite web |url=http://www.kenter.demon.nl/obfuscate.html |title=कहानियो|publisher=Kenter.demon.nl |access-date=2013-11-25 |archive-url=https://web.archive.org/web/20160304033430/http://www.kenter.demon.nl/obfuscate.html |archive-date=March 4, 2016 |url-status=dead }}</ref> [[सी++]],<ref>{{cite web|url=http://www.dreamincode.net/forums/index.php?showtopic=38102 |title=C++ Tutorials – Obfuscated Code – A Simple Introduction |publisher=DreamInCode.net |access-date=2013-11-25}}</ref><ref>{{cite web|url=http://sites.google.com/site/rcorcs/posts/obfuscatedcode |title=C Tutorials – Obfuscated Code in C |date=2011-07-07 |access-date=2013-11-25}}</ref> और [[पर्ल]] [[प्रोग्रामिंग भाषा]]<ref>{{cite web|author=As of 2013-11-25 18:22 GMT |url=http://www.perlmonks.org/index.pl?node_id=291267 |title=लाइन शोर में पीई(ए)आरएल|publisher=Perlmonks.org |access-date=2013-11-25}}</ref> ऐसी भाषाओं के कुछ उदाहरण हैं जिन्हें भ्रमित करना आसान है। [[हास्केल (प्रोग्रामिंग भाषा)]] भी काफी अस्पष्ट है<ref>{{cite web|url=https://wiki.haskell.org/Obfuscation |title=Obfuscation – Haskell Wiki |date=2006-02-16 |access-date=2020-03-03 |url-status=live |archive-url=https://web.archive.org/web/20170830203204/https://wiki.haskell.org/Obfuscation |archive-date=August 30, 2017 }}</ref> संरचना में काफी भिन्न होने के बावजूद।
कुछ लैंग्वेज की आर्किटेक्वेरिएबल और विशेषताएं उन्हें दूसरों की तुलना में ऑबफसकेशन करना सरल बना सकती हैं।<ref>{{cite web|last=Binstock |first=Andrew |url=http://www.devx.com/microsoftISV/Article/11351 |title=Obfuscation: Cloaking your Code from Prying Eyes |date=2003-03-06 |access-date=2013-11-25 |url-status=dead |archive-url=https://web.archive.org/web/20080420165109/http://www.devx.com/microsoftISV/Article/11351 |archive-date=April 20, 2008 }}</ref><ref>{{cite web|last=Atwood |first=Jeff |url=http://www.codinghorror.com/blog/archives/000291.html |title=Jeff Atwood, May 15, 2005 |publisher=Codinghorror.com |date=2005-05-15 |access-date=2013-11-25}}</ref> [[सी (प्रोग्रामिंग भाषा)|सी (प्रोग्रामिंग लैंग्वेज )]],<ref>{{cite web |url=http://www.kenter.demon.nl/obfuscate.html |title=कहानियो|publisher=Kenter.demon.nl |access-date=2013-11-25 |archive-url=https://web.archive.org/web/20160304033430/http://www.kenter.demon.nl/obfuscate.html |archive-date=March 4, 2016 |url-status=dead }}</ref> [[सी++|C++]],<ref>{{cite web|url=http://www.dreamincode.net/forums/index.php?showtopic=38102 |title=C++ Tutorials – Obfuscated Code – A Simple Introduction |publisher=DreamInCode.net |access-date=2013-11-25}}</ref><ref>{{cite web|url=http://sites.google.com/site/rcorcs/posts/obfuscatedcode |title=C Tutorials – Obfuscated Code in C |date=2011-07-07 |access-date=2013-11-25}}</ref> और [[पर्ल]] [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेज]] <ref>{{cite web|author=As of 2013-11-25 18:22 GMT |url=http://www.perlmonks.org/index.pl?node_id=291267 |title=लाइन शोर में पीई(ए)आरएल|publisher=Perlmonks.org |access-date=2013-11-25}}</ref> ऐसी लैंग्वेज के कुछ उदाहरण हैं जिन्हें ऑबफसकेशन करना सरल है। [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल (प्रोग्रामिंग लैंग्वेज )]] संरचना में अधिक भिन्न होने के अतिरिक्त हास्केल भी अधिक ऑबफसकेशन है<ref>{{cite web|url=https://wiki.haskell.org/Obfuscation |title=Obfuscation – Haskell Wiki |date=2006-02-16 |access-date=2020-03-03 |url-status=live |archive-url=https://web.archive.org/web/20170830203204/https://wiki.haskell.org/Obfuscation |archive-date=August 30, 2017 }}</ref>  


वे गुण जो किसी भाषा को अस्पष्ट बनाते हैं वे तुरंत स्पष्ट नहीं होते हैं।
वे गुण जो किसी लैंग्वेज को ऑबफसकेशन बनाते हैं वे तुरंत स्पष्ट नहीं होते हैं।


== तकनीक ==
== टेक्नीक ==
{{Expand section|date=March 2023|explaining more obfuscation techniques in general}}
{{Expand section|date=March 2023|explaining more obfuscation techniques in general}}
अस्पष्टता के प्रकारों में सरल कीवर्ड प्रतिस्थापन, कलात्मक प्रभाव बनाने के लिए व्हाइटस्पेस का उपयोग या गैर-उपयोग, और स्व-उत्पन्न या भारी संपीड़ित कार्यक्रम शामिल हैं।
ऑबफसकेशन के प्रकारों में सरल कीवर्ड सब्स्टिटूशन, आर्टिस्टिक इफ़ेक्ट  बनाने के लिए व्हाइटस्पेस का उपयोग या गैर-उपयोग, और स्व-उत्पन्न या भारी कंप्रेस्ड प्रोग्राम सम्मिलित हैं।


[[निक मोंटफोर्ट]] के अनुसार, तकनीकों में शामिल हो सकते हैं:
[[निक मोंटफोर्ट]] के अनुसार, तकनीकों में सम्मिलित हो सकते हैं:
# नामकरण अस्पष्टता, जिसमें अर्थहीन या भ्रामक तरीके से चर का नामकरण शामिल है;
# नेमिंग ऑबफसकेशन, जिसमें अर्थहीन या ऑबफसकेशन  विधि से वेरिएबल का नेमिंग सम्मिलित है;
# डेटा/कोड/टिप्पणी भ्रम, जिसमें कुछ वास्तविक कोड को टिप्पणियों जैसा बनाना या डेटा के साथ भ्रमित करने वाला सिंटैक्स बनाना शामिल है;
# डेटा/कोड/टिप्पणी अस्पष्ट, जिसमें कुछ वास्तविक कोड को टिप्पणियों जैसा बनाना या डेटा के साथ ऑबफसकेशन करने वाला सिंटैक्स बनाना सम्मिलित है;
# डबल कोडिंग, जो काव्य रूप या दिलचस्प आकृतियों में कोड प्रदर्शित कर सकती है।<ref>{{cite web |last=Montfort |first=Nick |title=अस्पष्ट कोड|url=http://obfuscationsymposium.org/wp-content/uploads/2014/01/Montfort__Obfuscated_Code.pdf |url-status=dead |archive-url=https://web.archive.org/web/20190424012657/http://obfuscationsymposium.org/wp-content/uploads/2014/01/Montfort__Obfuscated_Code.pdf |archive-date=April 24, 2019 |access-date=2017-11-24}}</ref>
# डबल कोडिंग, जो काव्य रूप या रौचक आकृतियों में कोड प्रदर्शित कर सकती है।<ref>{{cite web |last=Montfort |first=Nick |title=अस्पष्ट कोड|url=http://obfuscationsymposium.org/wp-content/uploads/2014/01/Montfort__Obfuscated_Code.pdf |url-status=dead |archive-url=https://web.archive.org/web/20190424012657/http://obfuscationsymposium.org/wp-content/uploads/2014/01/Montfort__Obfuscated_Code.pdf |archive-date=April 24, 2019 |access-date=2017-11-24}}</ref>




=== स्वचालित उपकरण<span class= एंकर आईडी= अस्पष्ट सॉफ़्टवेयर ></span><span क्लास= एंकर आईडी= उदाहरण ></span> ===
=== ऑटोमेटेड टूल्स ===
कोड को अस्पष्ट बनाने या उसमें सहायता करने के लिए विभिन्न प्रकार के उपकरण मौजूद हैं। इनमें शिक्षाविदों द्वारा बनाए गए प्रयोगात्मक अनुसंधान उपकरण, शौकिया उपकरण, पेशेवरों द्वारा लिखे गए वाणिज्यिक उत्पाद और [[खुला स्रोत सॉफ्टवेयर]] शामिल हैं। डिओबफस्केशन उपकरण भी मौजूद हैं जो रिवर्स ट्रांसफॉर्मेशन करने का प्रयास करते हैं।
कोड को ऑबफसकेशन बनाने या उसमें सहायता करने के लिए विभिन्न प्रकार के टूल  उपस्थित हैं। इनमें अकैडमिक द्वारा बनाए गए प्रयोगात्मक होबईस्ट टूल, कमर्शियल टूल , कुशलों  द्वारा लिखे गए वाणिज्यिक उत्पाद और [[खुला स्रोत सॉफ्टवेयर|ओपेन सोर्स सॉफ्टवेयर]] सम्मिलित हैं। डिओबफस्केशन टूल  भी उपस्थित हैं जो रिवर्स ट्रांसफॉर्मेशन करने का प्रयास करते हैं।


यद्यपि अधिकांश व्यावसायिक ऑबफस्केशन समाधान या तो प्रोग्राम स्रोत कोड, या प्लेटफ़ॉर्म-स्वतंत्र बाइटकोड को परिवर्तित करके काम करते हैं जैसा कि जावा और .NET द्वारा उपयोग किया जाता है, कुछ ऐसे भी हैं जो सीधे संकलित बायनेरिज़ पर काम करते हैं।
यद्यपि अधिकांश व्यावसायिक ऑबफस्केशन समाधान या तो प्रोग्राम सोर्स कोड, या प्लेटफ़ॉर्म-इंडिपेंडेंट बाइटकोड को परिवर्तित करके काम करते हैं जैसा कि जावा और .NET द्वारा उपयोग किया जाता है, कुछ ऐसे भी हैं जो सीधे संकलित बायनेरिज़ पर काम करते हैं।


*कुछ [[पायथन (प्रोग्रामिंग भाषा)]] उदाहरण [https://docs.python.org/3/faq/programming.html#is-it-possible-to-write-obfuscated-one-liners-in-python आधिकारिक पायथन प्रोग्रामिंग FAQ] और अन्यत्र पाए जा सकते हैं।<ref>{{cite web |author=Ben Kurtovic |title=अस्पष्ट "हैलो वर्ल्ड!"|url=https://benkurtovic.com/2014/06/01/obfuscating-hello-world.html |website=benkurtovic.com}}</ref><ref>{{cite web |date= |title=अस्पष्ट अजगर|url=http://wiki.c2.com/?ObfuscatedPython |website=wiki.c2.com}}</ref><ref>{{cite web |title=पहली वार्षिक अस्पष्ट पायथन सामग्री|url=https://code.activestate.com/lists/python-list/16171/ |website=code.activestate.com}}</ref>
*कुछ [[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज )]] उदाहरण [https://docs.python.org/3/faq/programming.html#is-it-possible-to-write-obfuscated-one-liners-in-python आधिकारिक पायथन प्रोग्रामिंग FAQ] और अन्यत्र पाए जा सकते हैं।<ref>{{cite web |author=Ben Kurtovic |title=अस्पष्ट "हैलो वर्ल्ड!"|url=https://benkurtovic.com/2014/06/01/obfuscating-hello-world.html |website=benkurtovic.com}}</ref><ref>{{cite web |date= |title=अस्पष्ट अजगर|url=http://wiki.c2.com/?ObfuscatedPython |website=wiki.c2.com}}</ref><ref>{{cite web |title=पहली वार्षिक अस्पष्ट पायथन सामग्री|url=https://code.activestate.com/lists/python-list/16171/ |website=code.activestate.com}}</ref>
* X86|x86_32 ISA के लिए movfuscator C (प्रोग्रामिंग भाषा) [[ संकलक ]] अस्पष्ट करने के लिए केवल X86 निर्देश सूची निर्देश का उपयोग करता है।<ref>{{Citation |last=domas |title=xoreaxeaxeax/movfuscator |date=2022-11-03 |url=https://github.com/xoreaxeaxeax/movfuscator |access-date=2022-11-05}}</ref><ref>{{Citation |title=Break Me00 The MoVfuscator Turning mov into a soul crushing RE nightmare Christopher Domas |url=https://www.youtube.com/watch?v=R7EEoWg6Ekk |access-date=2022-11-05 |language=en}}</ref>
* X86|x86_32 ISA के लिए mov fuscator C (प्रोग्रामिंग लैंग्वेज ) [[ संकलक | कम्पाइलर]] ऑबफसकेशन करने के लिए केवल X86 निर्देश सूची निर्देश का उपयोग करता है।<ref>{{Citation |last=domas |title=xoreaxeaxeax/movfuscator |date=2022-11-03 |url=https://github.com/xoreaxeaxeax/movfuscator |access-date=2022-11-05}}</ref><ref>{{Citation |title=Break Me00 The MoVfuscator Turning mov into a soul crushing RE nightmare Christopher Domas |url=https://www.youtube.com/watch?v=R7EEoWg6Ekk |access-date=2022-11-05 |language=en}}</ref>




=== मनोरंजक ===
=== रिक्रेएशनल ===
अस्पष्ट स्रोत कोड लिखना और पढ़ना दिमाग को तनाव देने वाला हो सकता है। कई प्रोग्रामिंग प्रतियोगिताएं सबसे रचनात्मक रूप से अस्पष्ट कोड को पुरस्कृत करती हैं, जैसे कि अंतर्राष्ट्रीय ओफ़्फ़ुसेटेड सी कोड प्रतियोगिता और ओफ़्फ़ुसेटेड पर्ल प्रतियोगिता।
ऑबफसकेशन सोर्स कोड लिखना और ब्रेन टीज़र को तनाव देने वाला हो सकता है। कई प्रोग्रामिंग प्रतियोगिताएं सबसे रचनात्मक रूप से ऑबफसकेशन कोड को पुरस्कृत करती हैं, जैसे कि अंतर्राष्ट्रीय ओफ़्फ़ुसेटेड सी कोड प्रतियोगिता और ओफ़्फ़ुसेटेड पर्ल प्रतियोगिता है ।


पर्ल प्रोग्रामर्स के [[ हस्ताक्षर खंड ]] में लघु अस्पष्ट पर्ल प्रोग्राम का उपयोग किया जा सकता है। ये JAPH (सिर्फ एक और पर्ल हैकर) हैं।<ref>{{cite web |url=http://rochester.pm.org/talks/japh_discussion.txt |title=JAPH – Just Another Perl Hacker |author=<!--Staff writer(s); no by-line.--> |website=pm.org |publisher=Perl Mongers |archive-url=https://web.archive.org/web/20130516074850/http://rochester.pm.org/talks/japh_discussion.txt |archive-date=16 May 2013 |access-date=27 February 2015 }}</ref>
पर्ल प्रोग्रामर्स के [[ हस्ताक्षर खंड | सिग्नेचर]] में लघु ऑबफसकेशन पर्ल प्रोग्राम का उपयोग किया जा सकता है। ये जेएपीएच (केवल एक और पर्ल हैकर) हैं।<ref>{{cite web |url=http://rochester.pm.org/talks/japh_discussion.txt |title=JAPH – Just Another Perl Hacker |author=<!--Staff writer(s); no by-line.--> |website=pm.org |publisher=Perl Mongers |archive-url=https://web.archive.org/web/20130516074850/http://rochester.pm.org/talks/japh_discussion.txt |archive-date=16 May 2013 |access-date=27 February 2015 }}</ref>




=== क्रिप्टोग्राफ़िक ===
=== क्रिप्टोग्राफ़िक ===
{{Further information|Indistinguishability obfuscation|Black-box obfuscation}}
{{Further information|अविभाज्यता ऑबफसकेशन|ब्लैक-बॉक्स ऑबफसकेशन}}
क्रिप्टोग्राफ़रों ने कोड को अस्पष्ट करने के विचार का पता लगाया है ताकि कोड को रिवर्स-इंजीनियरिंग करना क्रिप्टोग्राफ़िक रूप से कठिन हो। इसे [[अविभाज्यता अस्पष्टता]] के कई प्रस्तावों में औपचारिक रूप दिया गया है, एक क्रिप्टोग्राफ़िक आदिम, जिसे यदि सुरक्षित रूप से बनाना संभव हो, तो किसी को कई अन्य प्रकार की क्रिप्टोग्राफी का निर्माण करने की अनुमति मिल जाएगी, जिसमें पूरी तरह से नए प्रकार भी शामिल हैं जिन्हें कोई नहीं जानता कि कैसे बनाया जाए। (एक मजबूत धारणा, [[ब्लैक-बॉक्स अस्पष्टता]], सामान्य तौर पर असंभव मानी जाती है।)<ref>{{Cite magazine |title=क्रिप्टोग्राफी ब्रेकथ्रू सॉफ़्टवेयर को अनहैक करने योग्य बना सकता है|url=https://www.wired.com/2014/02/cryptography-breakthrough/ |magazine=Wired |language=en-us |issn=1059-1028 |access-date=2021-03-14}}</ref><ref>{{Cite journal |last1=Jain |first1=Aayush |last2=Lin |first2=Huijia |last3=Sahai |first3=Amit |date=2020 |title=अच्छी तरह से स्थापित धारणाओं से अप्रभेद्यता अस्पष्टता|url=https://eprint.iacr.org/2020/1003 |journal=Cryptology ePrint Archive |arxiv=2008.09317}}</ref>
 
क्रिप्टोग्राफ़रों ने कोड को ऑबफसकेशन करने के विचार का पता लगाया है जिससे कोड को रिवर्स-इंजीनियरिंग करना क्रिप्टोग्राफ़िक रूप से कठिन हो जाता है। इसे [[अविभाज्यता अस्पष्टता|अविभाज्यता]] ऑबफसकेशन के कई प्रस्तावों में औपचारिक रूप दिया गया है, एक क्रिप्टोग्राफ़िक आदिम, जिसे यदि सुरक्षित रूप से बनाना संभव हो, तो किसी को कई अन्य प्रकार की क्रिप्टोग्राफी का निर्माण करने की अनुमति मिल जाएगी, जिसमें पूरी तरह से नए प्रकार भी सम्मिलित हैं जिन्हें कोई नहीं जानता कि कैसे बनाया जाए। (एक शसक्त धारणा, [[ब्लैक-बॉक्स अस्पष्टता|ब्लैक-बॉक्स ऑबफसकेशन]], सामान्य रूप से असंभव मानी जाती है।)<ref>{{Cite magazine |title=क्रिप्टोग्राफी ब्रेकथ्रू सॉफ़्टवेयर को अनहैक करने योग्य बना सकता है|url=https://www.wired.com/2014/02/cryptography-breakthrough/ |magazine=Wired |language=en-us |issn=1059-1028 |access-date=2021-03-14}}</ref><ref>{{Cite journal |last1=Jain |first1=Aayush |last2=Lin |first2=Huijia |last3=Sahai |first3=Amit |date=2020 |title=अच्छी तरह से स्थापित धारणाओं से अप्रभेद्यता अस्पष्टता|url=https://eprint.iacr.org/2020/1003 |journal=Cryptology ePrint Archive |arxiv=2008.09317}}</ref>




==आक्षेप के नुकसान==
==ऑबफसकेशन के हानि ==


* जबकि अस्पष्टता पढ़ने, लिखने और रिवर्स-इंजीनियरिंग को एक कार्यक्रम को कठिन और समय लेने वाली बना सकती है, लेकिन जरूरी नहीं कि यह इसे असंभव बना दे।<ref>{{cite web|title="Can We Obfuscate Programs?" by Boaz Barak|url=http://www.math.ias.edu/~boaz/Papers/obf_informal.html|archive-url=https://web.archive.org/web/20160323104433/http://www.math.ias.edu/~boaz/Papers/obf_informal.html|archive-date=March 23, 2016|access-date=2013-11-25|publisher=Math.ias.edu}}</ref>
* जबकि ऑबफसकेशन पढ़ने, लिखने और रिवर्स-इंजीनियरिंग को एक प्रोग्राम को कठिन और समय लेने वाली बना सकती है, किंतु जरूरी नहीं कि यह इसे असंभव बना दे।<ref>{{cite web|title="Can We Obfuscate Programs?" by Boaz Barak|url=http://www.math.ias.edu/~boaz/Papers/obf_informal.html|archive-url=https://web.archive.org/web/20160323104433/http://www.math.ias.edu/~boaz/Papers/obf_informal.html|archive-date=March 23, 2016|access-date=2013-11-25|publisher=Math.ias.edu}}</ref>
* यह डेवलपर्स के लिए निर्माण प्रक्रिया में समय और जटिलता जोड़ता है।
* यह डेवलपर्स के लिए निर्माण प्रक्रिया में समय और कॉम्प्लेक्सिटी जोड़ता है।
* सॉफ़्टवेयर के अस्पष्ट हो जाने के बाद यह डिबगिंग संबंधी समस्याओं को अत्यंत कठिन बना सकता है।
* सॉफ़्टवेयर के ऑबफसकेशन हो जाने के बाद यह डिबगिंग संबंधी समस्याओं को अत्यंत कठिन बना सकता है।
* एक बार जब कोड एबंडवेयर बन जाता है और उसका रखरखाव नहीं किया जाता है, तो शौकीन लोग प्रोग्राम को बनाए रखना चाहते हैं, मॉड जोड़ना चाहते हैं, या इसे बेहतर ढंग से समझना चाहते हैं। अस्पष्टता के कारण अंतिम उपयोगकर्ताओं के लिए कोड के साथ उपयोगी कार्य करना कठिन हो जाता है।
* एक बार जब कोड एबंडवेयर बन जाता है और उसका रखरखाव नहीं किया जाता है, तो होबईस्ट लोग प्रोग्राम को बनाए रखना चाहते हैं, मॉड जोड़ना चाहते हैं, या इसे उत्तम रूप से समझना चाहते हैं। ऑबफसकेशन के कारण अंतिम उपयोगकर्ताओं के लिए कोड के साथ उपयोगी कार्य करना कठिन हो जाता है।
* कुछ प्रकार की अस्पष्टता (यानी कोड जो सिर्फ एक स्थानीय बाइनरी नहीं है और आवश्यकतानुसार वेब सर्वर से मिनी बाइनरी डाउनलोड करता है) प्रदर्शन को ख़राब कर सकता है और/या इंटरनेट की आवश्यकता हो सकती है।
* कुछ प्रकार की ऑबफसकेशन (जिससे कोड जो केवल एक स्थानीय बाइनरी नहीं है और आवश्यकतानुसार वेब सर्वर से मिनी बाइनरी डाउनलोड करता है) प्रदर्शन को व्यर्थ कर सकता है और/या इंटरनेट की आवश्यकता हो सकती है।


=== उपयोगकर्ताओं को अस्पष्ट कोड के बारे में सूचित करना ===
=== उपयोगकर्ताओं को ऑबफसकेशन कोड के बारे में सूचित करना ===
कुछ एंटीवायरस सॉफ़्टवेयर, जैसे AVG एंटीवायरस,<ref>{{Cite web |date=2020-07-21 |title=Blocking website and only way to fix is disabling HTTPS s... {{!}} AVG |url=https://support.avg.com/answers?id=9060N000000gbDLQAY |access-date=2022-02-04 |website=support.avg.com |language=en}}</ref> यह अपने उपयोगकर्ताओं को तब भी सचेत करेगा जब वे मैन्युअल रूप से अस्पष्ट किए गए कोड वाली किसी वेबसाइट पर पहुंचेंगे, क्योंकि अस्पष्टता का एक उद्देश्य दुर्भावनापूर्ण कोड को छिपाना भी हो सकता है। हालाँकि, कुछ डेवलपर फ़ाइल आकार को कम करने या सुरक्षा बढ़ाने के उद्देश्य से कोड अस्पष्टता का उपयोग कर सकते हैं। औसत उपयोगकर्ता यह अपेक्षा नहीं कर सकता है कि उसका एंटीवायरस सॉफ़्टवेयर किसी अन्यथा हानिरहित कोड के बारे में अलर्ट प्रदान करेगा, विशेष रूप से विश्वसनीय निगमों से, इसलिए ऐसी सुविधा वास्तव में उपयोगकर्ताओं को वैध सॉफ़्टवेयर का उपयोग करने से रोक सकती है।
कुछ एंटीवायरस सॉफ़्टवेयर, जैसे एवीजी एंटीवायरस,<ref>{{Cite web |date=2020-07-21 |title=Blocking website and only way to fix is disabling HTTPS s... {{!}} AVG |url=https://support.avg.com/answers?id=9060N000000gbDLQAY |access-date=2022-02-04 |website=support.avg.com |language=en}}</ref> यह अपने उपयोगकर्ताओं को तब भी सचेत करेगा जब वे मैन्युअल रूप से ऑबफसकेशन किए गए कोड वाली किसी वेबसाइट पर पहुंचेंगे, क्योंकि ऑबफसकेशन का एक उद्देश्य मालिसियस कोड को छिपाना भी हो सकता है। चूँकि कुछ डेवलपर फ़ाइल आकार को कम करने या सुरक्षा बढ़ाने के उद्देश्य से कोड ऑबफसकेशन का उपयोग कर सकते हैं। औसत उपयोगकर्ता यह अपेक्षा नहीं कर सकता है कि उसका एंटीवायरस सॉफ़्टवेयर किसी अन्यथा हानिरहित कोड के बारे में अलर्ट प्रदान करेगा, विशेष रूप से विश्वसनीय निगमों से, इसलिए ऐसी सुविधा वास्तव में उपयोगकर्ताओं को वैध सॉफ़्टवेयर का उपयोग करने से रोक सकती है।


मोज़िला और Google अपने ऐड-ऑन स्टोर में अस्पष्ट कोड वाले ब्राउज़र एक्सटेंशन को अनुमति नहीं देते हैं।<ref>{{Cite web |last=at 05:01 |first=Thomas Claburn in San Francisco 2 Oct 2018 |title=Google क्रोम वेब स्टोर में छिपे हुए कोड के खिलाफ कार्रवाई कर रहा है|url=https://www.theregister.co.uk/2018/10/02/google_chrome_web_store/ |access-date=2019-11-12 |website=www.theregister.co.uk |language=en}}</ref><ref>{{Cite web |last=Cimpanu |first=Catalin |title=मोज़िला ने अस्पष्ट कोड वाले फ़ायरफ़ॉक्स एक्सटेंशन पर प्रतिबंध लगाने की घोषणा की|url=https://www.zdnet.com/article/mozilla-announces-ban-on-firefox-extensions-containing-obfuscated-code/ |access-date=2019-11-12 |website=ZDNet |language=en}}</ref>
मोज़िला और गूगल अपने ऐड-ऑन स्टोर में ऑबफसकेशन कोड वाले ब्राउज़र एक्सटेंशन को अनुमति नहीं देते हैं।<ref>{{Cite web |last=at 05:01 |first=Thomas Claburn in San Francisco 2 Oct 2018 |title=Google क्रोम वेब स्टोर में छिपे हुए कोड के खिलाफ कार्रवाई कर रहा है|url=https://www.theregister.co.uk/2018/10/02/google_chrome_web_store/ |access-date=2019-11-12 |website=www.theregister.co.uk |language=en}}</ref><ref>{{Cite web |last=Cimpanu |first=Catalin |title=मोज़िला ने अस्पष्ट कोड वाले फ़ायरफ़ॉक्स एक्सटेंशन पर प्रतिबंध लगाने की घोषणा की|url=https://www.zdnet.com/article/mozilla-announces-ban-on-firefox-extensions-containing-obfuscated-code/ |access-date=2019-11-12 |website=ZDNet |language=en}}</ref>




=== अस्पष्टता और [[कॉपीलेफ्ट]] लाइसेंस ===
=== ऑबफसकेशन और [[कॉपीलेफ्ट]] लाइसेंस ===
इस बात पर बहस चल रही है कि क्या स्रोत कोड को अस्पष्ट रूप में जारी करके कॉपीलेफ्ट [[सॉफ़्टवेयर लाइसेंस]] को रद्द करना अवैध है, जैसे कि ऐसे मामलों में जहां लेखक स्रोत कोड उपलब्ध कराने के लिए कम इच्छुक है। इस मुद्दे को [[जीएनयू जनरल पब्लिक लाइसेंस]] में संशोधनों को उपलब्ध कराने के लिए पसंदीदा फॉर्म की आवश्यकता के द्वारा संबोधित किया गया है।<ref>{{cite web |title=जीपीएल में "कार्य में संशोधन करने के लिए कार्य के पसंदीदा स्वरूप" भाषा के पीछे तर्क|url=https://lwn.net/Articles/431651/ |access-date=2013-11-25 |publisher=Lwn.net}}</ref> जीएनयू वेबसाइट बताती है कि अस्पष्ट 'स्रोत कोड' वास्तविक स्रोत कोड नहीं है और इसे स्रोत कोड के रूप में नहीं गिना जाता है।<ref>{{cite web |title=What is free software? |url=https://www.gnu.org/philosophy/free-sw.html |access-date=2014-12-18 |publisher=gnu.org}}</ref>
इस बात पर बहस चल रही है कि क्या सोर्स कोड को ऑबफसकेशन रूप में प्रसारित करके कॉपीलेफ्ट [[सॉफ़्टवेयर लाइसेंस]] को समाप्त करना अवैध है, जैसे कि ऐसे स्थिति में जहां लेखक सोर्स कोड उपलब्ध कराने के लिए कम इच्छुक है। इस उद्देश्य  को [[जीएनयू जनरल पब्लिक लाइसेंस]] में संशोधनों को उपलब्ध कराने के लिए पसंदीदा फॉर्म की आवश्यकता के द्वारा संबोधित किया गया है।<ref>{{cite web |title=जीपीएल में "कार्य में संशोधन करने के लिए कार्य के पसंदीदा स्वरूप" भाषा के पीछे तर्क|url=https://lwn.net/Articles/431651/ |access-date=2013-11-25 |publisher=Lwn.net}}</ref> जीएनयू वेबसाइट बताती है कि ऑबफसकेशन 'सोर्स कोड' वास्तविक सोर्स कोड नहीं है और इसे सोर्स कोड के रूप में नहीं गिना जाता है।<ref>{{cite web |title=What is free software? |url=https://www.gnu.org/philosophy/free-sw.html |access-date=2014-12-18 |publisher=gnu.org}}</ref>




== [[ decompiler ]]्स ==
== डिकम्पाइलर ==
एक डिकंपाइलर एक निष्पादन योग्य या लाइब्रेरी से स्रोत कोड को रिवर्स-इंजीनियर कर सकता है। डिकंपाइलेशन को कभी-कभी मैन-इन-द-एंड (माइट) हमला कहा जाता है, जो पारंपरिक क्रिप्टोग्राफ़िक हमले पर आधारित है जिसे [[बीच-बीच में हमला]]|मैन-इन-द-मिडिल के रूप में जाना जाता है। यह स्रोत कोड को उपयोगकर्ता के हाथों में रखता है, हालाँकि इस स्रोत कोड को पढ़ना अक्सर मुश्किल होता है। स्रोत कोड में यादृच्छिक फ़ंक्शन और परिवर्तनीय नाम, गलत चर प्रकार और मूल स्रोत कोड (कंपाइलर अनुकूलन के कारण) की तुलना में भिन्न तर्क का उपयोग होने की संभावना है।
एक डिकंपाइलर एक निष्पादन योग्य या लाइब्रेरी से सोर्स कोड को रिवर्स-इंजीनियर कर सकता है। डिकंपाइलेशन को कभी-कभी मैन-इन-द-एंड (माइट) हमला कहा जाता है, जो पारंपरिक क्रिप्टोग्राफ़िक हमले पर आधारित है जिसे मैन-इन-द-मिडिल के रूप में जाना जाता है। यह सोर्स कोड को उपयोगकर्ता के हाथों में रखता है, चूँकि  इस सोर्स कोड को पढ़ना अधिकांशत: कठिन होता है। सोर्स कोड में यादृच्छिक फ़ंक्शन और परिवर्तनीय नाम गलत वेरिएबल प्रकार और मूल सोर्स कोड (कंपाइलर अनुकूलन के कारण) की तुलना में भिन्न लॉजिक का उपयोग होने की संभावना है।


== मॉडल अस्पष्टता ==
== मॉडल ऑबफसकेशन ==


मॉडल ऑबफस्केशन [[ यंत्र अधिगम ]] मॉडल की आंतरिक संरचना को छिपाने की एक तकनीक है।<ref>{{cite journal |last1=Zhou |first1=Mingyi |last2=Gao |first2=Xiang |last3=Wu |first3=Jing |last4=Grundy |first4=John C. |last5=Chen |first5=Xiao |last6=Chen |first6=Chunyang |last7=Li |first7=Li |title=तैनात तंत्रिका नेटवर्क को सुरक्षित करने के लिए मॉडल अस्पष्टता|date=2023 |url=https://openreview.net/forum?id=ib482K6HQod |language=en}}</ref> अस्पष्टता एक मॉडल को ब्लैक बॉक्स में बदल देती है। यह [[समझाने योग्य एआई]] के विपरीत है।
मॉडल ऑबफस्केशन [[ यंत्र अधिगम | मशीन लर्निंग]] मॉडल की आंतरिक संरचना को छिपाने की एक तकनीक है।<ref>{{cite journal |last1=Zhou |first1=Mingyi |last2=Gao |first2=Xiang |last3=Wu |first3=Jing |last4=Grundy |first4=John C. |last5=Chen |first5=Xiao |last6=Chen |first6=Chunyang |last7=Li |first7=Li |title=तैनात तंत्रिका नेटवर्क को सुरक्षित करने के लिए मॉडल अस्पष्टता|date=2023 |url=https://openreview.net/forum?id=ib482K6HQod |language=en}}</ref> ऑबफसकेशन एक मॉडल को ब्लैक बॉक्स में बदल देती है। यह [[समझाने योग्य एआई]] के विपरीत है।


==यह भी देखें==
==यह भी देखें==

Revision as of 11:33, 4 August 2023

सॉफ़्टवेयर विकास में, ऑबफसकेशन सोर्स कोड या मशीन कोड बनाने का कार्य है जिसे मनुष्य या कंप्यूटर के लिए समझना कठिन होता है। प्राकृतिक लैंग्वेज में ऑबफसकेशन की तरह, यह कथन लिखने के लिए अनावश्यक रूप से राउंडएबलआउट अभिव्यक्तियों का उपयोग कर सकता है। प्रोग्रामर डेलिबर्टेली कोड को उसके उद्देश्य (ऑबफसकेशन के माध्यम से सुरक्षा) या उसके लॉजिक या उसमें निहित अंतर्निहित मानो को छिपाने के लिए ऑबफसकेशन कर सकते हैं, मुख्य रूप से टेम्पेरिंग को रोकने, रिवर्स इंजीनियरिंग को रोकने या यहां तक ​​कि सोर्स कोड पढ़ने वाले किसी व्यक्ति के लिए एक पहेली या रिक्रेएशनल चैलेंज बनाने के लिए यह मैन्युअल रूप से या स्वचालित टूल का उपयोग करके किया जा सकता है, इसके बाद वाला इंडस्ट्री में पसंदीदा तकनीक है।[1]


अवलोकन

कुछ लैंग्वेज की आर्किटेक्वेरिएबल और विशेषताएं उन्हें दूसरों की तुलना में ऑबफसकेशन करना सरल बना सकती हैं।[2][3] सी (प्रोग्रामिंग लैंग्वेज ),[4] C++,[5][6] और पर्ल प्रोग्रामिंग लैंग्वेज [7] ऐसी लैंग्वेज के कुछ उदाहरण हैं जिन्हें ऑबफसकेशन करना सरल है। हास्केल (प्रोग्रामिंग लैंग्वेज ) संरचना में अधिक भिन्न होने के अतिरिक्त हास्केल भी अधिक ऑबफसकेशन है[8]

वे गुण जो किसी लैंग्वेज को ऑबफसकेशन बनाते हैं वे तुरंत स्पष्ट नहीं होते हैं।

टेक्नीक

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

निक मोंटफोर्ट के अनुसार, तकनीकों में सम्मिलित हो सकते हैं:

  1. नेमिंग ऑबफसकेशन, जिसमें अर्थहीन या ऑबफसकेशन विधि से वेरिएबल का नेमिंग सम्मिलित है;
  2. डेटा/कोड/टिप्पणी अस्पष्ट, जिसमें कुछ वास्तविक कोड को टिप्पणियों जैसा बनाना या डेटा के साथ ऑबफसकेशन करने वाला सिंटैक्स बनाना सम्मिलित है;
  3. डबल कोडिंग, जो काव्य रूप या रौचक आकृतियों में कोड प्रदर्शित कर सकती है।[9]


ऑटोमेटेड टूल्स

कोड को ऑबफसकेशन बनाने या उसमें सहायता करने के लिए विभिन्न प्रकार के टूल उपस्थित हैं। इनमें अकैडमिक द्वारा बनाए गए प्रयोगात्मक होबईस्ट टूल, कमर्शियल टूल , कुशलों द्वारा लिखे गए वाणिज्यिक उत्पाद और ओपेन सोर्स सॉफ्टवेयर सम्मिलित हैं। डिओबफस्केशन टूल भी उपस्थित हैं जो रिवर्स ट्रांसफॉर्मेशन करने का प्रयास करते हैं।

यद्यपि अधिकांश व्यावसायिक ऑबफस्केशन समाधान या तो प्रोग्राम सोर्स कोड, या प्लेटफ़ॉर्म-इंडिपेंडेंट बाइटकोड को परिवर्तित करके काम करते हैं जैसा कि जावा और .NET द्वारा उपयोग किया जाता है, कुछ ऐसे भी हैं जो सीधे संकलित बायनेरिज़ पर काम करते हैं।


रिक्रेएशनल

ऑबफसकेशन सोर्स कोड लिखना और ब्रेन टीज़र को तनाव देने वाला हो सकता है। कई प्रोग्रामिंग प्रतियोगिताएं सबसे रचनात्मक रूप से ऑबफसकेशन कोड को पुरस्कृत करती हैं, जैसे कि अंतर्राष्ट्रीय ओफ़्फ़ुसेटेड सी कोड प्रतियोगिता और ओफ़्फ़ुसेटेड पर्ल प्रतियोगिता है ।

पर्ल प्रोग्रामर्स के सिग्नेचर में लघु ऑबफसकेशन पर्ल प्रोग्राम का उपयोग किया जा सकता है। ये जेएपीएच (केवल एक और पर्ल हैकर) हैं।[15]


क्रिप्टोग्राफ़िक

क्रिप्टोग्राफ़रों ने कोड को ऑबफसकेशन करने के विचार का पता लगाया है जिससे कोड को रिवर्स-इंजीनियरिंग करना क्रिप्टोग्राफ़िक रूप से कठिन हो जाता है। इसे अविभाज्यता ऑबफसकेशन के कई प्रस्तावों में औपचारिक रूप दिया गया है, एक क्रिप्टोग्राफ़िक आदिम, जिसे यदि सुरक्षित रूप से बनाना संभव हो, तो किसी को कई अन्य प्रकार की क्रिप्टोग्राफी का निर्माण करने की अनुमति मिल जाएगी, जिसमें पूरी तरह से नए प्रकार भी सम्मिलित हैं जिन्हें कोई नहीं जानता कि कैसे बनाया जाए। (एक शसक्त धारणा, ब्लैक-बॉक्स ऑबफसकेशन, सामान्य रूप से असंभव मानी जाती है।)[16][17]


ऑबफसकेशन के हानि

  • जबकि ऑबफसकेशन पढ़ने, लिखने और रिवर्स-इंजीनियरिंग को एक प्रोग्राम को कठिन और समय लेने वाली बना सकती है, किंतु जरूरी नहीं कि यह इसे असंभव बना दे।[18]
  • यह डेवलपर्स के लिए निर्माण प्रक्रिया में समय और कॉम्प्लेक्सिटी जोड़ता है।
  • सॉफ़्टवेयर के ऑबफसकेशन हो जाने के बाद यह डिबगिंग संबंधी समस्याओं को अत्यंत कठिन बना सकता है।
  • एक बार जब कोड एबंडवेयर बन जाता है और उसका रखरखाव नहीं किया जाता है, तो होबईस्ट लोग प्रोग्राम को बनाए रखना चाहते हैं, मॉड जोड़ना चाहते हैं, या इसे उत्तम रूप से समझना चाहते हैं। ऑबफसकेशन के कारण अंतिम उपयोगकर्ताओं के लिए कोड के साथ उपयोगी कार्य करना कठिन हो जाता है।
  • कुछ प्रकार की ऑबफसकेशन (जिससे कोड जो केवल एक स्थानीय बाइनरी नहीं है और आवश्यकतानुसार वेब सर्वर से मिनी बाइनरी डाउनलोड करता है) प्रदर्शन को व्यर्थ कर सकता है और/या इंटरनेट की आवश्यकता हो सकती है।

उपयोगकर्ताओं को ऑबफसकेशन कोड के बारे में सूचित करना

कुछ एंटीवायरस सॉफ़्टवेयर, जैसे एवीजी एंटीवायरस,[19] यह अपने उपयोगकर्ताओं को तब भी सचेत करेगा जब वे मैन्युअल रूप से ऑबफसकेशन किए गए कोड वाली किसी वेबसाइट पर पहुंचेंगे, क्योंकि ऑबफसकेशन का एक उद्देश्य मालिसियस कोड को छिपाना भी हो सकता है। चूँकि कुछ डेवलपर फ़ाइल आकार को कम करने या सुरक्षा बढ़ाने के उद्देश्य से कोड ऑबफसकेशन का उपयोग कर सकते हैं। औसत उपयोगकर्ता यह अपेक्षा नहीं कर सकता है कि उसका एंटीवायरस सॉफ़्टवेयर किसी अन्यथा हानिरहित कोड के बारे में अलर्ट प्रदान करेगा, विशेष रूप से विश्वसनीय निगमों से, इसलिए ऐसी सुविधा वास्तव में उपयोगकर्ताओं को वैध सॉफ़्टवेयर का उपयोग करने से रोक सकती है।

मोज़िला और गूगल अपने ऐड-ऑन स्टोर में ऑबफसकेशन कोड वाले ब्राउज़र एक्सटेंशन को अनुमति नहीं देते हैं।[20][21]


ऑबफसकेशन और कॉपीलेफ्ट लाइसेंस

इस बात पर बहस चल रही है कि क्या सोर्स कोड को ऑबफसकेशन रूप में प्रसारित करके कॉपीलेफ्ट सॉफ़्टवेयर लाइसेंस को समाप्त करना अवैध है, जैसे कि ऐसे स्थिति में जहां लेखक सोर्स कोड उपलब्ध कराने के लिए कम इच्छुक है। इस उद्देश्य को जीएनयू जनरल पब्लिक लाइसेंस में संशोधनों को उपलब्ध कराने के लिए पसंदीदा फॉर्म की आवश्यकता के द्वारा संबोधित किया गया है।[22] जीएनयू वेबसाइट बताती है कि ऑबफसकेशन 'सोर्स कोड' वास्तविक सोर्स कोड नहीं है और इसे सोर्स कोड के रूप में नहीं गिना जाता है।[23]


डिकम्पाइलर

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

मॉडल ऑबफसकेशन

मॉडल ऑबफस्केशन मशीन लर्निंग मॉडल की आंतरिक संरचना को छिपाने की एक तकनीक है।[24] ऑबफसकेशन एक मॉडल को ब्लैक बॉक्स में बदल देती है। यह समझाने योग्य एआई के विपरीत है।

यह भी देखें

संदर्भ

  1. "What is obfuscation (obfu)? - Definition from WhatIs.com". SearchSoftwareQuality (in English). Retrieved 2019-02-01.
  2. Binstock, Andrew (2003-03-06). "Obfuscation: Cloaking your Code from Prying Eyes". Archived from the original on April 20, 2008. Retrieved 2013-11-25.
  3. Atwood, Jeff (2005-05-15). "Jeff Atwood, May 15, 2005". Codinghorror.com. Retrieved 2013-11-25.
  4. "कहानियो". Kenter.demon.nl. Archived from the original on March 4, 2016. Retrieved 2013-11-25.
  5. "C++ Tutorials – Obfuscated Code – A Simple Introduction". DreamInCode.net. Retrieved 2013-11-25.
  6. "C Tutorials – Obfuscated Code in C". 2011-07-07. Retrieved 2013-11-25.
  7. As of 2013-11-25 18:22 GMT. "लाइन शोर में पीई(ए)आरएल". Perlmonks.org. Retrieved 2013-11-25.
  8. "Obfuscation – Haskell Wiki". 2006-02-16. Archived from the original on August 30, 2017. Retrieved 2020-03-03.
  9. Montfort, Nick. "अस्पष्ट कोड" (PDF). Archived from the original (PDF) on April 24, 2019. Retrieved 2017-11-24.
  10. Ben Kurtovic. "अस्पष्ट "हैलो वर्ल्ड!"". benkurtovic.com.
  11. "अस्पष्ट अजगर". wiki.c2.com.
  12. "पहली वार्षिक अस्पष्ट पायथन सामग्री". code.activestate.com.
  13. domas (2022-11-03), xoreaxeaxeax/movfuscator, retrieved 2022-11-05
  14. Break Me00 The MoVfuscator Turning mov into a soul crushing RE nightmare Christopher Domas (in English), retrieved 2022-11-05
  15. "JAPH – Just Another Perl Hacker". pm.org. Perl Mongers. Archived from the original on 16 May 2013. Retrieved 27 February 2015.
  16. "क्रिप्टोग्राफी ब्रेकथ्रू सॉफ़्टवेयर को अनहैक करने योग्य बना सकता है". Wired (in English). ISSN 1059-1028. Retrieved 2021-03-14.
  17. Jain, Aayush; Lin, Huijia; Sahai, Amit (2020). "अच्छी तरह से स्थापित धारणाओं से अप्रभेद्यता अस्पष्टता". Cryptology ePrint Archive. arXiv:2008.09317.
  18. ""Can We Obfuscate Programs?" by Boaz Barak". Math.ias.edu. Archived from the original on March 23, 2016. Retrieved 2013-11-25.
  19. "Blocking website and only way to fix is disabling HTTPS s... | AVG". support.avg.com (in English). 2020-07-21. Retrieved 2022-02-04.
  20. at 05:01, Thomas Claburn in San Francisco 2 Oct 2018. "Google क्रोम वेब स्टोर में छिपे हुए कोड के खिलाफ कार्रवाई कर रहा है". www.theregister.co.uk (in English). Retrieved 2019-11-12.
  21. Cimpanu, Catalin. "मोज़िला ने अस्पष्ट कोड वाले फ़ायरफ़ॉक्स एक्सटेंशन पर प्रतिबंध लगाने की घोषणा की". ZDNet (in English). Retrieved 2019-11-12.
  22. "जीपीएल में "कार्य में संशोधन करने के लिए कार्य के पसंदीदा स्वरूप" भाषा के पीछे तर्क". Lwn.net. Retrieved 2013-11-25.
  23. "What is free software?". gnu.org. Retrieved 2014-12-18.
  24. Zhou, Mingyi; Gao, Xiang; Wu, Jing; Grundy, John C.; Chen, Xiao; Chen, Chunyang; Li, Li (2023). "तैनात तंत्रिका नेटवर्क को सुरक्षित करने के लिए मॉडल अस्पष्टता" (in English). {{cite journal}}: Cite journal requires |journal= (help)


अग्रिम पठन


बाहरी संबंध