
مكتبة تتيح فحص الذاكرة والشيفرة الخاصة بعملية قيد التشغيل على نظام Linux والتلاعب بهما.
raminspect هي مكتبة (crate) تتيح فحص ومعالجة الذاكرة والشيفرة الخاصة بعملية قيد التشغيل على نظام Linux. وهي توفّر دوال للبحث عن مصطلحات البحث واستبدالها في ذاكرة العملية، ودوال لتخصيص ذاكرة جديدة تابعة للعملية، وواجهة تتيح حقن شيفرة صدفة (shellcode) عشوائية تعمل في سياق العملية. كل ذلك يتطلب صلاحيات الجذر (root) لأسباب واضحة.
demo
ينبغي أن تتمكن من تشغيل مثال firefox_search إذا كان Firefox مثبتًا لديك. للقيام بذلك، ابدأ بفتح نسخة من Firefox واكتب "Old search text" في شريط البحث. إذا سار كل شيء على ما يرام، فعند تشغيل المثال بصلاحيات الجذر باستخدام الأمر sudo cargo run --example firefox_search --release، ينبغي استبداله بـ "New search text"، رغم أنك على الأرجح ستضطر إلى النقر على شريط البحث مرة أخرى كي يعرض النص الجديد.
تتوفر وظيفة البحث والاستبدال مع وحدة النواة (kernel module) أو بدونها، لكن إذا أردت حقن شيفرة صدفة أو تخصيص مخازن مؤقتة (buffers) جديدة فيجب عليك أولًا بناء وحدة النواة المطلوبة وتحميلها. يمكنك فعل ذلك عبر تثبيت حزمة رؤوس النواة (kernel headers) الخاصة بتوزيعتك، ثم تنفيذ git clone، ثم تشغيل الأوامر التالية داخل المجلد الفرعي kern_module في المستودع (إذا فشل البناء لأي سبب فيرجى فتح issue):
make all
sudo insmod raminspect.ko
لاحظ أيضًا أن جزء حقن شيفرة الصدفة مصمم حاليًا للعمل على أي معمارية (رغم أن شيفرة الصدفة نفسها يجب أن تكون خاصة بالمنصة)، لكن جزء تخصيص الذاكرة العشوائي مقتصر حاليًا على x86-64. نرحّب بـ PRs لإضافة دعم التخصيص العشوائي على المزيد من معماريات المعالجات.
هذا المشروع ليس في حالة مستقرة بعد؛ توقّع تغييرات كاسرة وأخطاء. إذا وجدت خطأً في المكتبة أو إذا لم يعمل أي من الأمثلة على جهازك، فيرجى إنشاء issue في المستودع كي يُصلَح في أقرب وقت.