وعليكم السلام
إقتباس :لكن ما اهميته في الrce لماذا نحتاج الoep لعمل التنقيح...؟
تبرز أهميته انه يمثل البداية للكود الاصلي للبرنامج الذي نريد هندسته عكسياً، وليس الكود للكود الخاص بالـ packer او الـloader.
انت تريد الاطلاع على الكود الاصلي للبرنامج وتريد التعديل علية سواء لفهم خوارزمية التسجيل وتجاوزها او صنع كيجن لها او اضافة تعديلات على كود البرنامج، ولكنك لن تجد كود البرنامج الهدف ما لم تجد بداية كوده، ويجب ان تعلم ان برامج الحماية تحاول اخفاء الـOEP بشتى الطرق لمنعك من الاطلاع على الكود الاصلي لذلك البرنامج المحمي يبدأ من الـOEP للـ packer او الـloader وليس الـOEP الاصلي.
الـOEP مهم حتى لنظام التشغيل ويستخدم من قبل النظام لتشغيل البرنامج وهو موجود في الـPEheader في قسم الـ Optional Header
typedef struct _IMAGE_OPTIONAL_HEADER {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint; <--------------هنا
DWORD BaseOfCode;
DWORD BaseOfData;
DWORD ImageBase;
DWORD SectionAlignment;
DWORD FileAlignment;
WORD MajorOperatingSystemVersion;
WORD MinorOperatingSystemVersion;
WORD MajorImageVersion;
WORD MinorImageVersion;
WORD MajorSubsystemVersion;
WORD MinorSubsystemVersion;
DWORD Win32VersionValue;
DWORD SizeOfImage;
DWORD SizeOfHeaders;
DWORD CheckSum;
WORD Subsystem;
WORD DllCharacteristics;
DWORD SizeOfStackReserve;
DWORD SizeOfStackCommit;
DWORD SizeOfHeapReserve;
DWORD SizeOfHeapCommit;
DWORD LoaderFlags;
DWORD NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
ولكن برامج الـ packer ستغير هذه القيمة وتضع الـOEP للـ packer او الـloader الخاص بها بدلاً من القيمة الاصلية
عملت لك صورة توضح الامر
تخص حماية UPX
إقتباس :ماهي الطرق المثلى او الصحيحة لايجاد الoep ؟
طريقة ايجداها ليست مهمه سهلة وتختلف حسب نوع الحماية وتعقيدها والتقنيات التي تستخدمها لمنعك من ايجاد الـOEP الاصلية.
بصراحة لست خبير هنا واتمنى من لديه معلومات كافية ان يرد عليك.
إقتباس :وهل تختلف صعوبة ايجاد الrce عندما يكون البرنامج مشفر او محمي؟
نعم الاختلاف كبير، واضن الصورة التي تخص حماية UPX فوق توضح الامر، ببساطة هدف برامج الحماية هي ابعادك عن الكود الاصلي قدر الامكان.