
تحليل جهاز DataDome المخصص المُشفر ونسق البايتكود، كشف تشفير السلاسل، تشفيرات S-box، وإشارات بصمة المتصفح لأغراض تعليم الهندسة العكسية.
DataDome يضم آلة افتراضية مخصصة في حزمته لإخفاء ما يفعله بالفعل. أصبحت فضوليًا وفككتها. أشاركها هنا لمن يهتم بنفس النوع من ألغاز الهندسة العكسية.
DataDome يرسل حزمة JavaScript مبهمة بشدة إلى متصفحك. بداخلها، توجد آلة افتراضية مخصصة — يقومون بتجميع منطق البصمات الفعلي الخاص بهم إلى تنسيق bytecode خاص، ثم تشغيله داخل تلك VM في وقت التشغيل. هذا التحليل لأحدث إصدار وقت كتابة هذا المقال.
لا يتم تضمين أي كود من DataDome في هذا المستودع — فقط تحليلي وأدواتي الخاصة.
يرجى قراءة الملاحظة في الأسفل قبل استخدام هذا.
بمجرد أن تتمكن من قراءة bytecode، تبرز بعض الأشياء.
تشفير السلاسل النصية. يتم تخزين جميع السلاسل النصية في كتلة مشفرة واحدة في أعلى bytecode. يتم فك تشفير كل سلسلة في وقت التشغيل باستخدام مفتاح XOR خاص بكل مدخل مدمج مع بذرة مضمنة في رأس الجدول. لذا حتى قراءة البايتات الخام لا تخبرك بشيء دون معرفة البذرة.
جداول S-box في كل مكان. أول 20 كيلوبايت تقريبًا من bytecode هي بالكامل تسلسلات PUSH_N_IMM + ARRAY_FROM_STACK تبني جداول بحث بحجم 256 بايت. هذه هي S-boxes، على الأرجح لشيفرة مخصصة أو جولات AES تُستخدم لتجزئة الإشارات المجمعة قبل إرسالها.
إشارات البصمات التي يمكنك رؤيتها فعليًا بعد فك تشفير السلاسل النصية:
هذا المشروع موجود فقط لإرضاء الفضول حول كيفية عمل إبهام VM مخصص في الممارسة العملية. إنه تمرين تعليمي في الهندسة العكسية، وليس أداة لتجاوز كشف البوتات.
ما تفعله بهذه المعرفة يقع على عاتقك.