يُنصح مسؤولو الشبكات من الجمهور بأخذ المعلومات غير المرئية من الرف، حيث أن المشروع المنزلي اليوم يمثل ضربة مزدوجة تمامًا. أولاً، يتعلق الأمر بطفل المشكلة المفضل لدى الجميع، DNS. ثانياً، نجح رجل مجنون يُدعى آدم رايس في وضع حد له الموت فيه. هذه فقرة لم أعتقد أنني سأكتبها أبدًا، لكن خيارات حياتي لم تكن تؤدي دائمًا إلى المجد.
بالنسبة للمبتدئين، في كل مرة تذهب فيها إلى tomshardware.com، يسأل جهازك الخادم أولاً عن عنوانه الرقمي الفعلي. هذا هو DNS، أو نظام اسم المجال، وهو حجر الزاوية في الإنترنت. يبدو أن رايس خبير في تحويل DNS إلى أشكال رباعية الأبعاد، مثل إساءة استخدام سجلات TXT الخاصة به لتوصيل حمولات البرامج الضارة.
كما يشير الاختصار، يحتوي سجل TXT على سلسلة نصية. تُستخدم عادةً للتحقق من صحة النطاق والتحكم في البريد العشوائي، وقد تحتاج إلى ستة منها تقريبًا لأي نطاق. الشيء هو أنها يمكن أن تحتوي اِعتِباطِيّ البيانات حسب التعريف. وكما يشير رايس، حيث يمكنك تخزين البيانات، يمكنك تخزين ملف، وبالتالي برنامج مثل الموت.
يستمر المقال أدناه
يمكن أن تحتوي سجلات TXT على ما يصل إلى 2000 حرف، ويمكن أن يحتوي أي مجال واحد على آلاف السجلات. وبما أن إدخالات DNS يتم تخزينها مؤقتًا في العديد من الطبقات عبر الإنترنت بالكامل، فهذا يعني أنه يمكنك تخزين كمية كبيرة من البيانات والاستعلام عنها بوتيرة مناسبة نسبيًا. ربما يعرف المطورون في الحشد بالفعل إلى أين يتجه هذا الأمر.
فكر رايس في البداية في تخزين ملف بسيط، في هذه الحالة صورة بطة، عن طريق تشفير البيانات الثنائية إلى تنسيق base64 قابل للقراءة النصية، وتقطيعها إلى العديد من الشرائح حسب الحاجة، نظرًا لأن التحويل إلى نص يترتب عليه نفقات كبيرة. لقد فكر في تجربة فيلم بعد ذلك، ولكن حتى 1 غيغابايت من البيانات سيستغرق 670 ألف تسجيل، لذلك استقر على “شيء من شأنه أن يوضح في الواقع مدى سخافة هذا”: الموت، بالطبع
احتاج الأرز إلى طريقة سهلة لتفكيكه وإعادة تجميعه الموت من سجلات DNS إلى الذاكرة، ولذلك استخدم منفذ C# للعبة يسمى Managed-Doom. C# هي لغة بايت كود، مما يعني أن الكود المصدري يتم تجميعه أولاً إلى نظام ثنائي عبر الأنظمة الأساسية، والذي يتم بعد ذلك تشغيله في محرك .NET الذي يقوم بالترجمة النهائية لتعليمات وحدة المعالجة المركزية المستهدفة؛ كل هذا بطريقة مشابهة لجافا.
نظرًا لأن رايس أراد تجنب كتابة الملفات على القرص تمامًا، فقد استخدم اليد الافتراضية لروبوت كلود لتعديل أجزاء من عملية تحميل اللعبة لقراءة جميع البيانات من الذاكرة. قام بحذف الملفات الصوتية لأنها كانت تشغل مساحة كبيرة جدًا، ولكن بعد بعض عمليات الضغط، تمكن من ضغط اللعبة في حوالي 3.8 ميجابايت موزعة على 2000 سجل DNS.
احصل على أفضل أخبار Tom's Hardware والمراجعات المتعمقة، مباشرة إلى صندوق الوارد الخاص بك.
ومن خلال العمل الشاق الذي تم إنجازه، قام بكتابة برنامج نصي للتحميل في PowerShell يستعلم عن أحد نطاقاته لسجلات TXT، ويعيد تجميع البيانات، ويتحقق من أي تلف. عند هذه النقطة، تكون جميع محتويات اللعبة موجودة في الذاكرة، ويكمن الأمر في تشغيلها مثل أي برنامج .NET آخر.
يصف رايس مشاريعه بأنها “ملعونة”، ويجب أن أتفق مع ذلك – من المحتمل أن تحتاج خوادم DNS الخاصة بـ Cloudflare إلى استشارة بعد الصدمة. المشروع موجود على GitHub إذا كنت تريد أن تتبع خطى رايس.
يتبع أجهزة توم على أخبار جوجل، أو أضفنا كمصدر مفضل، للحصول على آخر الأخبار والتحليلات والمراجعات في خلاصاتك.
التعليقات