
تصحيح شيلكودات ROP-encoded داخل ملفات PE
أداة مكتوبة بلغة C (Win32) لتحويل أي شيلكود إلى ROP وحقنه في ملف تنفيذي محمول (PE) معين. تدعم فقط ملفات PE ذات 32 بت ومجموعة تعليمات x86.
نُشرت في Blackhat USA 2015، "ROPInjector: Using Return Oriented Programming for Polymorphism and Antivirus Evasion" معلومات إضافية:
ropinjector <file-to-infect> <shellcode-file> <output-file>* [options]*
(* يدل على وسائط اختيارية)
مثال:
ropinjector.exe firefox.exe revshell.txt
file-to-infect : أي PE ذو 32 بت غير مضغوط
shellcode-file : الشيلكود المراد حقنه في ملف PE
output-file (اختياري) : اسم ملف الإخراج. إذا لم يُحدد، سيختار ROPInjector اسم ملف مناسب يشير إلى نوع الحقن المنفذ.
options :
text فرض قراءة ملف الشيلكود كملف نصي. يجب أن يكون الشيلكود في شكل نصي
بتنسيق \xHH\xHH\xHH.
norop لا تحويل الشيلكود إلى ROP.
nounroll لا فك لف SIBs.
noinj لا حقن الأدوات المفقودة.
getpc لا استبدال بنيات getPC في الشيلكود.
entry تشغيل الشيلكود قبل كود PE الأصلي. بدون هذا
الخيار، سيحاول ROPInjector ربط استدعاءات ExitProcess()
و exit() وما شابه بحيث يعمل الشيلكود أخيرًا،
قبل خروج العملية مباشرة.
-d<secs> عدد الثواني لـ Sleep() قبل تنفيذ الشيلكود.
عند تحديد هذا الخيار، يُستخدم "entry" ضمنيًا أيضًا.
سينتج ROPInjector بعض الإحصائيات المفصولة بفواصل في النهاية. هذه هي (حسب ترتيب الظهور):
GPLv2.0, http://www.gnu.org/licenses/old-licenses/gpl-2.0.html