
ROP ROCKET هو إطار متقدم لهجمات إعادة استخدام الشيفرة (code-reuse)، يتمتع بقدرات واسعة لتوليد سلاسل ROP، بما في ذلك هجوم استدعاءات نظام ويندوز الجديد (Windows Syscalls)، وهجوم Heaven's Gate الجديد، وROP "بدون شيلكود" (shellcodeless). يستخدم الإطار المحاكاة والتعتيم للمساعدة في توسيع سطح الهجوم.
ظهر إطار ROP المتقدم الجديد هذا لأول مرة في DEF CON 31 مع بعض القدرات غير المسبوقة. يولد ROCKET عدة أنواع من السلاسل، ويوفر أنماطاً أو تقنيات جديدة.
يرجى ملاحظة أن هذا لا يزال عملاً قيد التقدم، مع إضافة بعض القدرات المحدثة والمحسنة. من المتوقع أن تكون التحديثات منتظمة. إذا واجهت مشكلات، يرجى وضعها في قسم المشكلات أو مراسلتي بها، وسأقوم بحلها. سيتم أيضاً إضافة طرق بديلة إضافية لتوليد أنواع معينة من الأدوات.
العمل مستمر مع إضافة قدرات جديدة بانتظام في الوقت الحالي. يرجى التحقق بشكل منتظم.

ROP ROCKET قوي جداً مع بعض القدرات الفريدة، والتي تشمل ما يلي:
أغسطس 2025: يحتوي ROP ROCKET على أداة مصغرة لتجاوز ASLR، تم إصدارها في DEFCON في 10 أغسطس 2025، والتي ستولد تسعة تجاوزات لـ ASLR إلى 64 بت، عالية الإنتروبيا.


يجب تثبيت هذا كحزمة محلية. يوجد ملف setup.py. للقيام بذلك، فقط اذهب إلى الدليل وأدخل الأمر التالي:
py -m pip install -e ./ اعتماداً على تثبيت Python لديك، قد تحتاج إلى تغيير ذلك قليلاً. إذا ذهبت لعرض الحزم المثبتة، يجب أن ترى ROP-ROCKET تظهر: py -m pip list يُعتقد أن جميع التبعيات المطلوبة مضمنة، ولكن إذا واجهت أي مشكلات - بسبب حداثة هذا الإصدار، فقط افتح مشكلة، وسننظر فيها.
فقط قم بتشغيله من سطر الأوامر: py rop2.py rop_tester_syscall.exe يتم تضمين ملف rop_tester_syscall.exe القابل للاستغلال بالكامل كملف مضغوط أيضاً. تم تطويره فقط للمساعدة في التأكد من العثور على جميع الأدوات وعدم فقدانها.
هذه الأداة مستوحاة من JOP ROCKET الأقدم، الذي كتبته كجزء من أطروحتي للدكتوراه وأطلقته في DEF CON 27 في 2019. قاد ذلك إلى الكثير من التطوير الإضافي على JOP والعديد من قدرات JOP الجديدة، بالإضافة إلى توفير توثيق شامل لآليات واستخدام JOP في أوراق مختلفة. تلك الأداة قديمة بعض الشيء في الوقت الحالي - إنها نمط أقدم من Python. مع هذا البحث الجديد، جزء من هذا الإلهام هو محاولة القيام بشيء جديد ومختلف في مجال ROP. لقد أوفينا بهذا التفويض حتى الآن. لذا بطريقة ما، هذه الأداة مستوحاة من أداة JOP، مما يسمح لنا ربما بمحاولة التفكير خارج الصندوق وبطرق أقل تقليدية مما نفعل عادة مع ROP. لا يحتوي ROP ROCKET على أي قدرات JOP - إنه مخصص بالكامل لـ ROP. الأداة الوحيدة المخصصة بالكامل لـ JOP هي JOP ROCKET، حيث أن كل شيء آخر لديه نوعاً ما عنصر نائب للعمل المستقبلي على JOP. على أي حال، أردت توضيح هذه المعلومات التاريخية، حتى لا يربك التشابه في الأسماء أي شخص، حيث أن هاتين أداتين مختلفتين تماماً وغير مرتبطتين.

قام ROCKET بتوليد هجوم Heaven's Gate من x86 إلى x64، طباعته على الشاشة وحفظه.

قام ROCKET بتوليد استدعاء نظام Windows لـ NtProtectVirtualMemory لنظام Win 10/11، طباعته على الشاشة وحفظه.

بفضل قدرات المحاكاة الداخلية، يمكن لـ ROCKET النظر في العديد من التركيبات غير العادية للأدوات. ما سبق يهدف إلى التقاط مؤشر المكدس (ESP)، ونقله إلى ECX. إنه قادر على إيجاد وسائل بديلة للقيام بذلك، بدلاً من مجرد استخدام أداة ROP واحدة، والتي قد لا تكون متاحة. أولاً ينقل esp إلى edi؛ ثم يتم نقل edi إلى ebx؛ ثم يتم نقل ebx إلى esi. يتم تعيين ECX إلى الصفر، عبر تجاوز عدد صحيح، ثم يتم إضافة قيمة esi (التي تحتوي على مؤشر المكدس لدينا) إلى ecx. النتيجة هي أن مؤشر المكدس موجود في ecx. أداة مكافئة أقصر ستكون mov ecx, esp # ret - على الرغم من أن هذا ليس ممكناً دائماً. يتعامل ROCKET أيضاً بشكل صحيح مع تعليمات pop الإضافية، منتجاً الحشو الصحيح. لاحظ أن ROP ROCKET يأخذ بعين الاعتبار بعناية السجلات التي يجب حمايتها ("السجلات المستبعدة")، والتي يمكن أن تتغير من أداة إلى أخرى. في المثال أعلاه، لا يتم "تدمير" أي سجلات نحاول حمايتها.

يوفر ROCKET العديد من الخيارات لماذا وكيف تلتقط الأدوات. يمكن ضبط الإعدادات الافتراضية في ملف config.cfg بالطبع. هنا يقرر المستخدم أنه يريد فقط فحص أجزاء من الذاكرة بحد أقصى 0xa (15) بايت.

لا يمكنك طباعة سلاسل ROP فردية فحسب، بل يمكنك طباعة جميع الأدوات التي تم العثور عليها، منظمة حسب الفئة، مثل mov edx. هناك مئات الاحتمالات. يمكنك أيضاً تحسين النتائج عن طريق تغيير عدد الأسطر لكل أداة.

عند طباعة النتائج، هناك العديد من الخيارات لأنواع مختلفة من المرشحات لتطبيقها لاستبعاد الأدوات، مثل ASLR، CFG، DLLs نظام Windows، أو مجرد بايتات سيئة بسيطة. كل هذا قابل للتخصيص بشكل كبير.

أحياناً تحتاج إلى تعتيم أداة معينة قد تثبت عدم توفرها بطريقة أخرى، بسبب البايتات السيئة في عنوان الأداة. لدينا العديد من الخيارات لهذا، ويمكنك الاستبعاد بناءً على السجلات المستخدمة أو البايتات السيئة أيضاً.
هنا استخدم المستخدم التعتيم لفك تشفير العنوان ديناميكياً في وقت التشغيل لـ xor eax, edi # ret، والذي افتراضياً لم يكن بإمكانه استخدامه بطريقة أخرى. بمجرد فك التشفير، يتسبب push r32 / ret في تنفيذ هذا فوراً. هذه طريقة رائعة لاستخدام أدوات غير متوفرة بسبب البايتات السيئة. يكمل ROCKET هذا في ثوانٍ. قدرته على القيام بذلك مع تجاوز عدد صحيح مضمونة تقريباً للعمل، بافتراض عدم وجود مشكلات مع البايتات السيئة أو عدم توفر السجلات المتاحة (أي أن المستخدم استبعد عدداً كبيراً جداً من السجلات).
تم إنشاء وكتابة هذه الأداة بواسطة الدكتور برامويل بريزيندين، بدءاً من أوائل 2023.
عمل شيفا شاشانك كوسوما مع الدكتور برامويل بريزيندين كطالب دراسات عليا لتطوير أنماط لـ ROP ROCKET. لقد قام بعمل لا يقدر بثمن، وكان متحدثاً مشاركاً في DEFCON و Black Hat Arsenal. في 2025، بدأ شيفا أيضاً في المساهمة في برمجة ROP ROCKET.
09/18/2023 - تحسينات متنوعة؛ دعم إضافي للطرق المختلفة لتسريب القفزة البعيدة التي تؤدي إلى استدعاء نظام Windows.
3/2024 - العديد من التحديثات الهامة بشكل منتظم نوعاً ما - يرجى محاولة الاحتفاظ بأحدث نسخة إذا أمكن، إذا كنت تنوي استخدام ROP ROCKET بنشاط. لن يتم إدراج التغييرات الفردية. من المحتمل أن تكون التغييرات والتحديثات البسيطة مستمرة. سيتم وصف الميزات الرئيسية الجديدة فقط. (تمت إضافة بعض الميزات الجديدة البسيطة بالفعل.) أواخر مارس - 3 أبريل 2024 - تحديثات واسعة للمحاكاة لتحسين وزيادة الكفاءة؛ دعم للعديد من خيارات الإمكانيات الإضافية لتوليد أدوات فردية؛ تصحيح الأخطاء؛ إصدار جديد من VirtualAlloc و VirtualProtect عبر pushad. بينما قدمت أدوات أخرى دعمًا لـ VirtualProtect و VirtualAlloc من قبل، ولهذا لم نقم بذلك، نشعر الآن أنه سيكون من الإهمال عدم تضمين هذه، خاصة حيث يمكن تعزيزها بقدرات الأداة. تم إنشاء قوالب كاملة لـ VirtualAlloc و VirtualProtect عبر pushad، والتي تتضمن أيضًا شيلكود (pop a calc).
5/2024 - إعادة هيكلة ضخمة لاستدعاءات نظام Windows لتوسيع نطاق ما يمكن العثور عليه بشكل كبير مع الملفات الثنائية في العالم الحقيقي. حتى الأدوات الطويلة غير المرغوب فيها التي تسرب سجل FS (اللازم لاستدعاءات نظام Windows في SysWow64، أي 32 بت) يمكن التعامل معها بطريقة آلية. العديد من التحسينات الطفيفة الأخرى.
6/28/2025 - تحديثات ضخمة، بما في ذلك دعم 17 API Windows جديد لم تكن مضمنة سابقًا في ROP ROCKET. إضافة القدرة على تحديد كمية التجاوز الأولي - هذا مهم لأنه يمكن أن يؤثر على الحسابات للسلسلة أو المؤشرات عند القيام بالمحاكاة.