
pyshell2bin
إذا كنت تعمل مع الثغرات والشيلكود (shellcode)، فأنت تعرف بالفعل ما هو الشيلكود وكيفية التعامل معه. أحيانًا يأتي ضمن استغلالات مكتوبة بلغة C أو Perl أو Python… وعادةً ما يبدو بهذا الشكل:
payload = (b"xbfxabxd0x9ax5bxdaxc7xd9x74x24xf4x5ax2bxc9" + "xb1x45x83xc2x04x31x7ax11x03x7ax11xe2x5ex2c" + "x72xd2xa0xcdx83x85x29x28xb2x97x4dx38xe7x27" + ...
لكن في بعض الأحيان تحتاج إلى تمثيل ثنائي في ملف لهذا الشيلكود، حتى تتمكن من حقنه في ملف ما، أو تصحيحه، أو لأي سبب آخر. هناك أنواع كثيرة من البرامج النصية المتاحة للتعامل مع الشيلكود وإنجاز مهام مختلفة، مثل التحويل من ثنائي إلى شيلكود، ومن شيلكود إلى ثنائي (لباش فقط)… لكنني لم أتمكن من العثور على برنامج نصي بسيط لتلك المهمة يعمل على ويندوز. حتى العثور على أمر “xxd” (إنشاء hexdump) بنسخة منقولة إلى ويندوز أمر ممكن ولكنه ليس سهلاً (يبدو أنه يأتي مدمجًا مع Vim لويندوز، لكنه كان متاحًا سابقًا مع unixtools…).
على أي حال، إليك برنامج نصي بسيط بلغة Python يعمل على ويندوز وسيقوم بالمهمة. إنه يتسامح مع الشيلكود غير النظيف (مسافات، إرجاعات سطر، أوامر دمج…) ويحتفظ فقط بالحروف السداسية العشرية. ثم يستخدم “write” مع “wb” لتحصل على ملف ثنائي. سريع وغير أنيق.