Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ropr — مكتشف ROP Gadget سريع جدًا™ ومتعدد الخيوط. بديل لـ ropper / ropgadget (x86 فقط حاليًا) | Kitploit
أدوات/GitHubGitHub/ben-lichtman/ropr
الاستغلالالهندسة العكسيةشيل كودتحليل الملفات الثنائية
GitHubben-lichtman/ropr

ropr

مكتشف ROP Gadget سريع جدًا™ ومتعدد الخيوط. بديل لـ ropper / ropgadget (x86 فقط حاليًا)

عرض المستودع
55530منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ropr

ropr هي أداة بحث سريعة جدًا متعددة الخيوط عن أدوات ROP.

ما هي أداة ROP Gadget؟

أدوات ROP (البرمجة الموجهة بالعودة) هي مقاطع صغيرة من بضع تعليمات تجميعية تنتهي عادةً بتعليمة ret، وهي موجودة بالفعل ككود قابل للتنفيذ داخل كل ملف ثنائي أو مكتبة. يمكن استخدام هذه الأدوات في استغلال الثنائيات وتخريب البرامج القابلة للتنفيذ.

عند كتابة عناوين العديد من أدوات ROP في مخزن مؤقت، نحصل على سلسلة ROP. إذا تمكن المهاجم من تحريك مؤشر المكدس إلى هذه السلسلة، فيمكن نقل التحكم بالكامل إلى المهاجم.

تحتوي معظم البرامج القابلة للتنفيذ على عدد كافٍ من الأدوات لكتابة سلسلة ROP كاملة تورنغ. بالنسبة لتلك التي لا تحتوي، يمكن دائمًا استخدام المكتبات الديناميكية الموجودة في نفس مساحة العنوان مثل libc بمجرد معرفة عناوينها.

جمال استخدام أدوات ROP هو أنه لا حاجة لكتابة أي كود جديد قابل للتنفيذ في أي مكان - يمكن للمهاجم تحقيق هدفه باستخدام الكود الموجود بالفعل في البرنامج فقط.

كيف أستخدم أداة ROP Gadget؟

عادةً، الشرط الأول لاستخدام أدوات ROP هو الحصول على مكان لكتابة سلسلة ROP الخاصة بك - يمكن أن يكون أي مخزن مؤقت قابل للقراءة. اكتب ببساطة عناوين كل أداة تريد استخدامها في هذا المخزن المؤقت. إذا كان المخزن المؤقت صغيرًا جدًا، فقد لا يكون هناك مساحة كافية لكتابة سلسلة ROP طويلة، لذا يجب على المهاجم أن يكون حريصًا على صياغة سلسلة ROP الخاصة به لتكون فعالة بما يكفي لتناسب المساحة المتاحة.

الشرط التالي هو القدرة على التحكم في المكدس - يمكن أن يأخذ ذلك شكل تجاوز سعة المكدس - مما يسمح بكتابة سلسلة ROP مباشرة تحت مؤشر المكدس، أو "تدوير المكدس" - وهو عادةً أداة واحدة تحرك مؤشر المكدس إلى بقية سلسلة ROP.

بمجرد أن يكون مؤشر المكدس في بداية سلسلة ROP الخاصة بك، ستؤدي تعليمة ret التالية إلى تنفيذ الأدوات بالتسلسل - كل منها يستخدم التالي كعنوان عودة في إطار المكدس الخاص به.

من الممكن أيضًا إضافة مؤشرات دالة إلى سلسلة ROP - مع الحرص على تقديم وسائط الدالة بعد العنصر التالي من سلسلة ROP. عادةً ما يتم دمج ذلك مع "أداة pop"، والتي تقوم بإخراج الوسائط من المكدس من أجل الانتقال بسلاسة إلى الأداة التالية بعد وسائط الدالة.

كيف أقوم بتثبيت ropr؟

  • يتطلب cargo (نظام بناء Rust)

التثبيت السهل:

root@kitploit:~
cargo install ropr

سيتم تثبيت التطبيق في ~/.cargo/bin

من المصدر:

root@kitploit:~
git clone https://github.com/Ben-Lichtman/ropr
cd ropr
cargo build --release

سيكون الملف الثنائي الناتج في target/release/ropr

بدلاً من ذلك:

root@kitploit:~
git clone https://github.com/Ben-Lichtman/ropr
cd ropr
cargo install --path .

سيتم تثبيت التطبيق في ~/.cargo/bin

كيف أستخدم ropr؟

root@kitploit:~
USAGE:
    ropr [OPTIONS] <BINARY>

ARGS:
    <BINARY>    مسار الملف المراد فحصه

OPTIONS:
    -b, --base-pivot               يقوم بتصفية الأدوات التي تغير مؤشر القاعدة
    -c, --colour <COLOUR>          يفرض إخراج الألوان أو النص العادي (`true` أو `false`)
    -h, --help                     طباعة معلومات المساعدة
    -j, --nojop                    يزيل "أدوات JOP" - قد تحتوي هذه على فرع قابل للتحكم،
                                   استدعاء، إلخ بدلاً من `ret` بسيط في النهاية
    -m, --max-instr <MAX_INSTR>    الحد الأقصى لعدد التعليمات في الأداة [الافتراضي: 6]
    -n, --noisy                    يتضمن أدوات منخفضة الجودة محتملة مثل البادئات،
                                   الفروع الشرطية، والفروع القريبة (سيعثر على أدوات أكثر بكثير)
    -p, --stack-pivot              يقوم بتصفية الأدوات التي تغير مؤشر المكدس
    -r, --norop                    يزيل "أدوات ROP" العادية
    -R, --regex <REGEX>            إجراء بحث بتعبير منتظم على الأدوات التي تم إرجاعها لسهولة التصفية
        --range <RANGE>            البحث بين نطاقات العناوين (بالسداسي عشري) مثل `0x1234-0x4567`
        --raw <RAW>                يعامل ملف الإدخال ككتلة من الكود (`true` أو `false`)
    -s, --nosys                    يزيل استدعاءات النظام والمقاطعات الأخرى
    -V, --version                  طباعة معلومات الإصدار

على سبيل المثال إذا كنت أبحث عن طريقة لملء rax بقيمة من سجل آخر، فقد أختار التصفية بواسطة التعبير المنتظم ^mov eax, ...;:

root@kitploit:~
❯ ropr /usr/lib/libc.so.6 -R "^mov eax, ...;" > /dev/null

==> تم العثور على 197 أداة في 0.118 ثانية

الآن يمكنني إضافة بعض عوامل التصفية إلى سطر الأوامر للحصول على أفضل النتائج جودة:

root@kitploit:~
❯ ropr /usr/lib/libc.so.6 -m 2 -j -s -R "^mov eax, ...;"
0x000353e7: mov eax, eax; ret;
0x000788c8: mov eax, ecx; ret;
0x00052252: mov eax, edi; ret;
0x0003ae43: mov eax, edx; ret;
0x000353e6: mov eax, r8d; ret;
0x000788c7: mov eax, r9d; ret;

==> تم العثور على 6 أدوات في 0.046 ثانية

الآن لدي أداة mov جيدة مرشحة في العنوان 0x00052252.

تنزيل الأداة