السلام عليكم...
الoep هي او هو نقطة بذء تشغيل البرنامج exe
هذا مانعرفه...
لكن ما اهميته في الrce لماذا نحتاج الoep لعمل التنقيح...؟
ماهي الطرق المثلى او الصحيحة لايجاد الoep ؟
وهل تختلف صعوبة ايجاد الrce عندما يكون البرنامج مشفر او محمي؟
وعليكم السلام
إقتباس :لكن ما اهميته في ال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 فوق توضح الامر، ببساطة هدف برامج الحماية هي ابعادك عن الكود الاصلي قدر الامكان.
كيف اعرف بان الـoep صحيح بنسبة 100%
هل يمكن الاعتماد على برامج الفحص!
مثل: exeinfope , peid , fast scan
وهل عندما يكون الـep section في .text معناه ان الكود غير محمي وان الـoep صحيح بنسبة 100% ؟
و عليكم السلام و رحمة الله
(21-07-2019, 03:45 PM)mribraqdbra كتب : [ -> ]كيف اعرف بان الـoep صحيح بنسبة 100%
من المفروض ان تظهر لك كل خصائص البرنامج الأصلي (اسماء و عناوين الدوال واضحة، النصوص، محتوى الريسورس) و ينجح سير تنفيذ البرنامج دون اخطاء...
(21-07-2019, 03:45 PM)mribraqdbra كتب : [ -> ]هل يمكن الاعتماد على برامج الفحص!
نعم نسبيا، لانه يمكن تغليطها ببصمات مزورة...
(21-07-2019, 03:45 PM)mribraqdbra كتب : [ -> ]وهل عندما يكون الـep section في .text معناه ان الكود غير محمي وان الـoep صحيح بنسبة 100% ؟
نعم، لكن ليس بالضرورة... لان الكومبايلرز تختلف في ما بينها في اعطاء اسماء الأقسام و ترتيبها...
(22-07-2019, 10:42 AM)STRELiTZIA كتب : [ -> ]من المفروض ان تظهر لك كل خصائص البرنامج الأصلي (اسماء و عناوين الدوال واضحة، النصوص، محتوى الريسورس) و ينجح سير تنفيذ البرنامج دون اخط
كيف يتم البحث عن نقطة الدخول الاصلية اذا كان البرنامج محمي ماهي الطرق والاساليب المعتمدة في ايجادها. حاولت ايجادها في برنامج محمي لكن اجد نفسي تائه وغير مقتنع بانها هي نقطة الدخول الاصلية ماهي الاساليب لتجعلني مقتنع انها هي نقطة الدخول الاصلية 100%
(22-07-2019, 11:58 AM)[EAX+4] كتب : [ -> ]كيف يتم البحث عن نقطة الدخول الاصلية اذا كان البرنامج محمي ماهي الطرق والاساليب المعتمدة في ايجادها. حاولت ايجادها في برنامج محمي لكن اجد نفسي تائه وغير مقتنع بانها هي نقطة الدخول الاصلية ماهي الاساليب لتجعلني مقتنع انها هي نقطة الدخول الاصلية 100%
ادعوك اخي اولا الى الاطلاع على مقالة "رفع اللبس عن مفهوم التطبيق المضغوط و التطبيق المحمي" في مجلة المهندس العكسي العدد رقم 04 ثم نكمل...
فهمت المقصود شكرا لك
لي فهتمو من المقالة انه حماية البرامج او ضغطها تعتمد على اضافة طبقة جديدة الى كود البرنامج لمنع التعديل على الكود واكشاف ادوات التنقيح وغيرها وهذه الطبقة تدعى بلودر هي تقوم بفك تشفير الحماية او الضغط اليا ليتم تنفيذ البرنامج يعني الخروج من اللودر هو خروج من كود الحماية الى كود البرنامج يعني مباشرة يخرج الى نقطة الدخول الاصلية هل هذا صحيح
(22-07-2019, 06:41 PM)[EAX+4] كتب : [ -> ] لي فهتمو من المقالة انه حماية البرامج او ضغطها تعتمد على اضافة طبقة جديدة الى كود البرنامج لمنع التعديل على الكود واكشاف ادوات التنقيح وغيرها وهذه الطبقة تدعى بلودر هي تقوم بفك تشفير الحماية او الضغط اليا ليتم تنفيذ البرنامج يعني الخروج من اللودر هو خروج من كود الحماية الى كود البرنامج يعني مباشرة يخرج الى نقطة الدخول الاصلية هل هذا صحيح
تمام، عليك نور...
البرنامج الأساسي بعد تخصيصك لخيارات الحماية يقوم بالتعديل و حقن اللودر في الملف الذي تمت حمايته...
اللودر بقوم بارجاع حالة الملف المحمي في الذاكرة...
اللودر مفخخ بخدع و حيل و آليات منع التتبع و كشف (الهندسة العكسية) و فحوصات لبنية الملف المحمي على القرص و في الذاكرة و آلات افتراضية بالنسبة للحمايات الشرسة مثل Vmprotect
اللودر يحتوي ايضا على آليات فحص معلومات التسجيل و آليات معالجة الفترة التجريبية كلها غارقة في متاهات هدفها (اتعابك و جعلك تمل و تستسلم)
اللودر يحتوي ايضا على آليات منع اخذ نسخة Dump للملف من الذاكرة بعد ارجاع حالته الأصلية...
التحدي الذي يواجهك هو رحلتك في ارض اللودر حتى تصل الى نقطة بداية البرنامج الحقيقية...
نعم انها رحلة طويلة مليئة بالعقبات شكرا لك على هذا الشرح لاني عرفت المطلوب
هل توجود دروس تشرح طرق التتبع في منطقة اللودر لان التتبع العادي غير ممكن لان اثناء التتبع في برنامج محمي ب ASprotect v2.72 الحماية لاتسمح لك بتتبع في المنقح تاتي رسالة تخبرك انك على المنقح ومن ثم يغلق البرنامج تلقائيا مباشرة
ابدأ اخي من هنا:
https://www.at4re.net/f/post-993.html