تقييم الموضوع :
  • 5 أصوات - بمعدل 1.8
  • 1
  • 2
  • 3
  • 4
  • 5
ما ضرورة oep او original entry point وماهي طرق ايجاده؟
#1
السلام عليكم...
الoep هي او هو نقطة بذء تشغيل البرنامج exe
هذا مانعرفه...
لكن ما اهميته في الrce لماذا نحتاج الoep لعمل التنقيح...؟

ماهي الطرق المثلى او الصحيحة لايجاد الoep ؟

وهل تختلف صعوبة ايجاد الrce عندما يكون البرنامج مشفر او محمي؟
أعضاء أعجبوا بهذه المشاركة : soukdok
#2
وعليكم السلام
إقتباس :لكن ما اهميته في الrce لماذا نحتاج الoep لعمل التنقيح...؟
تبرز أهميته انه يمثل البداية للكود الاصلي للبرنامج الذي نريد هندسته عكسياً، وليس الكود للكود الخاص بالـ packer او الـloader.
انت تريد الاطلاع على الكود الاصلي للبرنامج وتريد التعديل علية سواء لفهم خوارزمية التسجيل وتجاوزها او صنع كيجن لها او اضافة تعديلات على كود البرنامج، ولكنك لن تجد كود البرنامج الهدف ما لم تجد  بداية كوده، ويجب ان تعلم ان برامج الحماية تحاول اخفاء الـOEP بشتى الطرق لمنعك من الاطلاع على الكود الاصلي لذلك البرنامج المحمي يبدأ من الـOEP  للـ packer او الـloader وليس الـOEP  الاصلي.
الـOEP  مهم حتى لنظام التشغيل ويستخدم من قبل النظام لتشغيل البرنامج وهو موجود في الـPEheader في قسم الـ Optional Header
[صورة مرفقة: MyalJdH.png]
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 الخاص بها بدلاً من القيمة الاصلية

عملت لك صورة توضح الامر Smile تخص حماية UPX
[صورة مرفقة: Z8gtXPt.png]
 
إقتباس :ماهي الطرق المثلى او الصحيحة لايجاد الoep ؟
طريقة ايجداها ليست مهمه سهلة وتختلف حسب نوع الحماية وتعقيدها والتقنيات التي تستخدمها لمنعك من ايجاد الـOEP  الاصلية.
بصراحة لست خبير هنا واتمنى من لديه معلومات كافية ان يرد عليك.
إقتباس :وهل تختلف صعوبة ايجاد الrce عندما يكون البرنامج مشفر او محمي؟
نعم الاختلاف كبير، واضن الصورة التي تخص حماية UPX فوق توضح الامر، ببساطة هدف برامج الحماية هي ابعادك عن الكود الاصلي قدر الامكان.
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : EAX+4 , mribraqdbra , farfes , soukdok , Cyros
#3
كيف اعرف بان الـoep صحيح بنسبة 100%

هل يمكن الاعتماد على برامج الفحص!
مثل: exeinfope , peid , fast scan

وهل عندما يكون الـep section في .text معناه ان الكود غير محمي وان الـoep صحيح بنسبة 100% ؟
أعضاء أعجبوا بهذه المشاركة :
#4
و عليكم السلام و رحمة الله
(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% ؟

نعم، لكن ليس بالضرورة... لان الكومبايلرز تختلف في ما بينها في اعطاء اسماء الأقسام و ترتيبها...
أعضاء أعجبوا بهذه المشاركة : EAX+4 , mribraqdbra , Gu-sung18 , soukdok
#5
(22-07-2019, 10:42 AM)STRELiTZIA كتب : من المفروض ان تظهر لك كل خصائص البرنامج الأصلي (اسماء و عناوين الدوال واضحة، النصوص، محتوى الريسورس) و ينجح سير تنفيذ البرنامج دون اخط

كيف يتم البحث عن نقطة الدخول الاصلية اذا كان البرنامج محمي ماهي الطرق والاساليب المعتمدة في ايجادها. حاولت ايجادها في برنامج محمي لكن اجد نفسي تائه وغير مقتنع بانها هي نقطة الدخول الاصلية ماهي الاساليب لتجعلني مقتنع انها هي نقطة الدخول الاصلية 100%
أعضاء أعجبوا بهذه المشاركة : mribraqdbra , STRELiTZIA , soukdok
#6
(22-07-2019, 11:58 AM)[EAX+4] كتب : كيف يتم البحث عن نقطة الدخول الاصلية اذا كان البرنامج محمي ماهي الطرق والاساليب المعتمدة في ايجادها. حاولت ايجادها في برنامج محمي لكن اجد نفسي تائه وغير مقتنع بانها هي نقطة الدخول الاصلية ماهي الاساليب لتجعلني مقتنع انها هي نقطة الدخول الاصلية 100%
ادعوك اخي اولا الى الاطلاع على مقالة "رفع اللبس عن مفهوم التطبيق المضغوط و التطبيق المحمي" في مجلة المهندس العكسي العدد رقم 04  ثم نكمل...
أعضاء أعجبوا بهذه المشاركة : EAX+4 , soukdok
#7
فهمت المقصود شكرا لك
 لي فهتمو من المقالة انه حماية البرامج او ضغطها تعتمد على اضافة طبقة جديدة الى كود البرنامج لمنع التعديل على الكود واكشاف ادوات التنقيح وغيرها وهذه الطبقة تدعى بلودر هي تقوم بفك تشفير الحماية او الضغط اليا ليتم تنفيذ البرنامج يعني الخروج من اللودر هو خروج من كود الحماية الى كود البرنامج يعني مباشرة يخرج الى نقطة الدخول الاصلية هل هذا صحيح
أعضاء أعجبوا بهذه المشاركة : mribraqdbra
#8
(22-07-2019, 06:41 PM)[EAX+4] كتب :  لي فهتمو من المقالة انه حماية البرامج او ضغطها تعتمد على اضافة طبقة جديدة الى كود البرنامج لمنع التعديل على الكود واكشاف ادوات التنقيح وغيرها وهذه الطبقة تدعى بلودر هي تقوم بفك تشفير الحماية او الضغط اليا ليتم تنفيذ البرنامج يعني الخروج من اللودر هو خروج من كود الحماية الى كود البرنامج يعني مباشرة يخرج الى نقطة الدخول الاصلية هل هذا صحيح
تمام، عليك نور...

البرنامج الأساسي بعد تخصيصك لخيارات الحماية يقوم بالتعديل و حقن اللودر في الملف الذي تمت حمايته...
اللودر بقوم بارجاع حالة الملف المحمي في الذاكرة...
اللودر مفخخ بخدع و حيل و آليات منع التتبع و كشف (الهندسة العكسية) و فحوصات لبنية الملف المحمي على القرص و في الذاكرة و آلات افتراضية بالنسبة للحمايات الشرسة مثل Vmprotect
اللودر يحتوي ايضا على آليات فحص معلومات التسجيل و آليات معالجة الفترة التجريبية كلها غارقة في متاهات هدفها (اتعابك و جعلك تمل و تستسلم)
اللودر يحتوي ايضا على آليات منع اخذ نسخة Dump للملف من الذاكرة بعد ارجاع حالته الأصلية...

التحدي الذي يواجهك هو رحلتك في ارض اللودر حتى تصل الى نقطة بداية البرنامج الحقيقية...
أعضاء أعجبوا بهذه المشاركة : EAX+4 , mribraqdbra , alaa2003
#9
نعم انها رحلة طويلة مليئة بالعقبات شكرا لك على هذا الشرح لاني عرفت المطلوب 
هل توجود دروس تشرح طرق التتبع في منطقة اللودر لان التتبع العادي غير ممكن لان اثناء التتبع في برنامج محمي ب ASprotect v2.72 الحماية لاتسمح لك بتتبع في المنقح تاتي رسالة تخبرك انك على المنقح ومن ثم يغلق البرنامج تلقائيا مباشرة
أعضاء أعجبوا بهذه المشاركة : mribraqdbra
#10
ابدأ اخي من هنا:
https://www.at4re.net/f/post-993.html
أعضاء أعجبوا بهذه المشاركة : mribraqdbra


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 54 ) ضيف كريم