1 पॉइंट द्वारा GN⁺ 2023-12-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें

गेम हैकिंग: Magic: The Gathering Arena में 100% win rate हासिल करना

  • Magic: The Gathering Arena में प्रतिद्वंद्वी को अपने-आप surrender करवाने का तरीका खोजा गया
  • issue report करने की इच्छा जताते हुए source code और समाधान देने का प्रस्ताव

परिचय

  • client-side code obfuscation पर राय: obfuscation कम निवेश वाले लोगों के लिए बाधा बढ़ाता है, लेकिन security vulnerability report करने वाले उत्साही developers के लिए भी रुकावट बनता है
  • कार्ड गेम में server-side पर game state पूरी तरह manage की जाती है और client को केवल ज़रूरी जानकारी मिलती है
  • client के पास सीमित जानकारी होती है, इसलिए हैक करना कठिन होता है

शुरुआत

  • network communication analysis के ज़रिए गेम हैकिंग शुरू की गई
  • C# में लिखा गया MTGA runtime पर game objects को manipulate करना आसान बनाता है
  • private fields और methods तक पहुँचने के लिए reflection का उपयोग

सुराग ढूँढना

  • C# decompilation metadata tokens का उपयोग करके उन्हें मानव-पठनीय नामों से जोड़ती है
  • JoinMatch function मिला, जिसे game server से पहली बार जुड़ने की जगह माना गया

Sparky का implementation

  • MTGA का mascot Sparky नए खिलाड़ियों के लिए tutorial और practice bot है
  • bot logic लोकल में चलती है, और निर्णय लेने की पूरी प्रक्रिया उपयोगकर्ता के कंप्यूटर पर होती है

implementation की बारीकियाँ

  • bot match शुरू होने पर HeadlessClient class के माध्यम से असली bot logic संभाली जाती है
  • bot को game board render करने की ज़रूरत नहीं होती, वह game server से जुड़कर मैच चलाता है

मैच पर कब्ज़ा

  • reflection का उपयोग करके game objects के व्यवहार को बदला जा सकता है
  • अपनी seat पहचानकर, दूसरी seat पर client को connect करने और प्रतिद्वंद्वी को surrender करवाने वाला code लिखा गया

GN⁺ की राय

इस लेख का सबसे महत्वपूर्ण पहलू यह है कि इसमें गेम की security vulnerability खोजने और उसे बेहतर बनाने के लिए साझा करने वाले developer की ज़िम्मेदाराना सोच दिखाई देती है। यह बहुत दिलचस्प है कि कार्ड गेम जैसे सिस्टम, जहाँ server game state को पूरी तरह नियंत्रित करता है, वहाँ भी client-side manipulation के माध्यम से game result को प्रभावित करने वाली vulnerability मौजूद हो सकती है। ऐसी जानकारी game developers को security मज़बूत करने और खेल को अधिक निष्पक्ष बनाने के लिए महत्वपूर्ण सीख देती है।

1 टिप्पणियां

 
GN⁺ 2023-12-06
Hacker News की राय
  • Linux को पहली बार इस्तेमाल करते हुए network traffic की जांच का अनुभव

    • EverQuest गेम के लिए ShowEQ प्रोग्राम का उपयोग करके unencrypted traffic का विश्लेषण
    • hub का उपयोग करके Linux box पर traffic mirror करना, real-time map बनाना और character की location दिखाना
    • mobs के पास कौन से items हैं यह देख पाना, और खास mobs का चुनिंदा शिकार करने में सहायता
    • यह passive और undetectable तरीका था, लेकिन बाद में SOE ने traffic encryption शुरू कर दिया
  • Magic: The Gathering गेम के लिए AI की हैरान करने वाली दक्षता

    • local machine पर चल सकने वाले AI की कम memory usage देखकर आश्चर्य
    • AI को server के बजाय local पर चलाना अधिक तर्कसंगत हो सकता है
    • server और local machine के CPU अंतर और multi-core support पर विचार
  • Magic: The Gathering AI development की जटिलता और दक्षता

    • MTG के जटिल AI development को लेकर गलतफहमियां दूर करना
    • Sparky logic की उपलब्धता और developers द्वारा implementation choices
    • गेम के लगभग Turing-complete होने और AI strategy development का उल्लेख
  • MTGA से जुड़े personal project और game hacking में रुचि

    • unofficial MTGA client development चल रहा है, लेकिन अभी शुरुआती चरण में है
    • game hacking का अनुभव, bug disclosure, और client structure में रुचि व्यक्त करना
  • बेटे के साथ Magic 93/94 खेलने का आनंद

    • असली cards का उपयोग करके बेटे के साथ गेम का आनंद लेना
    • Madrid में होने वाली world championship में भागीदारी और बेटे की उपलब्धि पर गर्व
  • client-side game logic का महत्व और server validation की आवश्यकता

    • real-time games में client-side logic की responsiveness पर जोर
    • card games में server validation का महत्व और opponent information को सीमित रखना
  • League of Legends गेम के bugs और उनका प्रभाव

    • खास champion और item combination से server errors और game result manipulation
  • गेम के दौरान AI connection और opponent surrender handling पर सवाल

    • वास्तविक मैच के दौरान AI connection की अनुमति और surrender handling के तरीके पर प्रश्न
  • Diablo 2 गेम में server connection packets के पुन: उपयोग का अनुभव

    • LAN server character को official internet server से जोड़ने का तरीका साझा करना
  • server emulator development और LAN matches में रुचि

    • सभी cards unlocked वाले LAN matches के लिए server emulator development की संभावना तलाशना