السلام عليكم و رحمة الله
موضوعك اثار فضولي...
جميل جدا، هذه من احد الطرق التي احب استعمالها في بناء امثلة أحاول فيها انتاج فقط الأوامر اللازمة...
و مع هيمنة أنظمة التشغيل
64 بت أصبحت اركز اكثر على بناء امثلة
64 بت...
كما تعلم اخي ان لودر مبني
64 بت يستطيع انشاء عملية
64 بت و عملية
32 بت و التعديل عليهما...
include masm64rt.inc
.const
TargetProcess db "Cports.exe", 0
TargetAddress dd 0040FB50h
BytesToWrite db 2 dup(90h, 90h)
sinfo STARTUPINFO<>
pinfo PROCESS_INFORMATION<>
.code
start proc
invoke CreateProcessA, addr TargetProcess, NULL, 0, 0, 0, CREATE_SUSPENDED, 0, 0, addr sinfo, addr pinfo
invoke WriteProcessMemory, pinfo.hProcess, TargetAddress, addr BytesToWrite, 2, NULL
invoke ResumeThread, pinfo.hThread
ret 0
start endp
end
مثالي المرفق يحتوي على سورس و
لودر 64 بت حجمه 1
كيلو...
رابط فيديو توضيحي:
https://i.imgur.com/eox9X1z.mp4
Oupsi
هكذا أصبح اللودر الخاص بك أصغر واحد في العالم
شكرا على المنافسة

شاهد الموضوع التالي:
https://github.com/ayaka14732/TinyPE-on-Win10/blob/main/README.md
(24-02-2025, 05:06 PM)TeRcO كتب : [ -> ]شاهد الموضوع التالي:
جيد اخي خالد انك اشرت الى هذا الموضوع...
بالنسبة لي اعتبره مجرد دليل على المفهوم (
Proof Of Concept - POC) ، و اظنه ليس قابلاً للتطبيق في الحياة الواقعية مع جعل الملف الناتج ينجز مهام عدة على خلاف جعله فقط يظهر رسالة...
في هذه الطريق و طرق اخرى على النت
Shrinking method تتم على مراحل عدة و تدخل ادوات كمحررات الملفات التنفيذي...
ما احب عمله، هو
Optimisation للأوامر و تخصيص براميترات
الكومبايلر و
اللينكر...
مثلا لو اخذنا هذا السورس من هذا الموضوع:
https://www.at4re.net/f/thread-4158.html
و حاولنا انتاج مكتبة دايناميكية صغيرة الحجم سواء بدلفي او اعادة كتابتها بلغه مثل
السي التي هي اكثر مرونة من حيث الــ
Optimisation...
الى اي حجم نستطيع الوصول ؟
(25-02-2025, 02:24 PM)novus كتب : [ -> ]الى اي حجم نستطيع الوصول ؟
بالنسبة لي مع بعض التحايل اقصى ماوصلت له ولا اعتقد هناك اصغر بلغة الدلفي
حجم

8.7 kb
رائع...
لم احاول بعد معه...
لم احمل المرفق بسبب قلة الرصيد...
لكي يكون تناسق في العمل على نفس السورس الأصلي، هل لك ان ترسل لي على الخاص "الملف التنفيذي" مع السورس الأصلي "الخام فقط" الذي لم تعدل عليه... لكي اجرب من جهتي بناء ملف صغير بدلفي...
القيت نظرة لآن...
و اظن انك تستطيع ربح بعض البايتات بالغاء استدعاء وحدة
SysUtils و منع دمج الريسورس:
حسب الأوامر الموجودة في المكتبة الدايناميكية لا تحتاج و لا شئ من هذه "الوحدة" و لا من دمج الريسورس.
جرب و اخبرني...
//uses
//SysUtils;
//{$R *.res}
(25-02-2025, 09:16 PM)novus كتب : [ -> ]و اظن انك تستطيع ربح بعض البايتات بالغاء استدعاء وحدة SysUtils و منع دمج الريسورس:
من ضمن مافعلته

وهو اقصى ماوصلت له
هناك حيلة اخرى اكسبتني -1 kb
7.68 kb الحجم
(25-02-2025, 09:20 PM)TeRcO كتب : [ -> ]وهو اقصى ماوصلت له
جميل...
اخذت الملف الأصلي و بدون التعديل في الأوامر و لا الغاء
SysUtils و لا الغاء دمج الريسورس... اخذته كما ارسلته لي...
و بتغيير بسيط... في "بداية الملف سورس" نتج ملف حجمه 4.5 كيلو...