
تطبيق dotnet Native AOT بسيط يستخدم AsmResolver لتحويل shellcode إلى PE
تطبيق dotnet بسيط بصيغة Native AOT يستخدم [AsmResolver] لتحويل shellcode إلى PE.
يتم دعم كل من shellcode 32-bit و 64-bit (x86, x64) -> وينتج عن ذلك PE بصيغة 32-bit أو 64-bit.
تم تجميع [Releases] لكل من linux-x64 و win-x64.
تم تجميعه بصيغة Native AOT لإظهار مدى روعتها (ومع ذلك، كان الأمر مزعجًا لأن بعض التبعيات تستخدم reflection التي يتم اقتطاعها إذا لم نخدعها :D). الملفات الثنائية [release] المتاحة للتحميل هي ملفات ثنائية أصلية بدون أي تبعية dotnet! (فقط قم بتشغيلها واستمتع)
تم التجميع بصيغة Native AOT، باستخدام dotnet SDK 8.0.100-preview.3.23178.7
تم اختيار dotnet SDK 8+ لأنه يُنتج ملفات ثنائية أصغر بكثير.
يُدعم تجميع Native AOT بدءًا من إصدار dotnet 7.
إذا كنت تريد استخدام dotnet 7 للبناء، فقم بتعديل ملف المشروع ليستهدف net7.0 -> فالبناء مع dotnet 7 أسهل بكثير.
الأمر سهل جدًا:
-p, --path [مطلوب. المسار إلى ملف shellcode]
-a, --architecture [مطلوب. البنية: 32 أو 64 (اعتمادًا على الـ shellcode)]
-o, --offset [اختياري. إزاحة بداية الـ shellcode (الافتراضي 0)]
--help [عرض شاشة المساعدة هذه]
--version [عرض معلومات الإصدار]
تحويل shellcode إلى PE بصيغة 32-bit (يتم تعيين إزاحة بداية الـ shellcode إلى البايت رقم 66):
sc2pe -a 32 -o 66 -p C:\shellcode.bin