لَّا إِلَٰهَ إِلَّا أَنتَ سُبْحَانَكَ إِنِّي كُنتُ مِنَ الظَّالِمِينْ.
عن أبي هريرة -رضي الله عنه- أن رسول الله -صلى الله عليه وسلم- كانَ يقولُ في سجودِهِ: «اللَّهُمَّ اغْفِرْ لي ذَنْبِي كُلَّهُ: دِقَّهُ وَجِلَّهُ، وَأَوَّلَهُ وَآخِرَهُ، وَعَلاَنِيَتَهُ وَسِرَّهُ».
(صحيح - رواه مسلم).
السلام عليكم و رحمة الله
شكرا لك اخي على فتح باب شرح المحاولات.
في البداية قمت بكتابة قائمة احتياجات و وضع خطة عمل:
الدوال التي احتاج زرعها و استدعائها RegOpenKeyA و RegDeleteKeyA
اختيار أماكن زرعها في الملف التنفيذي المستهدف (أماكن تحمل خاصية تنفيذ الأوامر)
إعادة توجيه سير تنفيذ الأحداث EntryPoint, OnClick and OnClose الى الدوال التي زرعتها.
و أخيرا، اعادة سير التنفيذ الى المسار الطبيعي للملف التنفيذي.
قمت ببناء مثالين صغيرين (في المرفقات) بلغة السي، المثال الأول يفحص وجود المفتاح المستهدف من عدمه و المثال الثاني يقوم بحذف المفتاح المستهدف ان وجد.
قمت بتحليل المثالين في المنقح لفهم الآلية بلغة "الزرع" الأسمبلي.
العملية:
بمساعدة أحد أدوات التعديل على الملفات التنفيذية قمت بإضافة دوال النظام RegOpenKeyA و RegDeleteKeyA الى جدول استراد الدوال Imports التابع للملف التنفيذي المستهدف.
اخترت مكان الزرع في جزء فارغ من الأوامر (يحمل خاصية التنفيذ) لزرع آلية فحص وجود المفتاح و آلية الحذف، الزرع تم داخل المنقح.
باعتماد على قفزة قمت بإعادة توجيه نقطة الدخول الى آلية فحص وجود المفتاح ثم بقفزة أخرى اعدت سير التنفيذ الى المكان الذي يتبع نقطة الدخول.
بعد حصولي على عنوان حدث OnClick الذي بدوره يؤشر الى حدث OnClose "ضرب عصفورين بحجر واحد" اعدت توجيه "الحدث" الى آلية الحذف بقفزة ثم بعد انتهاء سير التنفيذ داخل ما تم زرعه اعدت سير التنفيذ من جديد الى الأحداث الحقيقية للتحدي.
ما ساعدني كثيرا في انجاز كل العملية هو وضع خطة العمل قبل بداية التعديل، هذه الخطة احتوت على قائمة احتياجات و مراحل انجاز كل خطوة.
الآن، لماذا هذه المشاركة لا تحتوي على أمور تقنية "Only Code" ؟
حسب وجهة نظري، لأننا نحتاج بشكل كبير الى دراسة "بمعنى دراسة" كل جوانب الاحتياجات و خطط الطريق... قبل الإبحار داخل المنقح و لاكتفاء بمحاولات شبه عشوائية قد تصيب او تخيب.
المرفقات تحتوي على الأمثلة التي اعتمدت عليها و النسخ المعدلة من التحدي... و لصغر حجمها يكفي تحميلها في المنقح لفهم ما يجري...
(14-02-2025, 02:01 PM)novus كتب : المرفقات تحتوي على الأمثلة التي اعتمدت عليها و النسخ المعدلة من التحدي... و لصغر حجمها يكفي تحميلها في المنقح لفهم ما يجري...
بارك الله فيك على المشاركة والافادة ....
تعقيب بسيط :
1- يمكن استخدام داله (RegOpenKeyExA) موجودة ضمن "جدول استراد الدوال"
وبالتالي يبقى عليك ادراج دالة واحدة (RegDeleteKeyA) عوضا عن اثنين
2- هناك طريقة ثانية لحذف المفتاح وذلك باستخدام دالة (CreateProcessA)
لتنفيذ السطر التالي عن طريق cmd :
14-02-2025, 06:43 PM (آخر تعديل لهذه المشاركة : 16-02-2025, 04:58 PM بواسطة M!X0R.)
(14-02-2025, 02:01 PM)novus كتب : في البداية قمت بكتابة قائمة احتياجات و وضع خطة عمل...
بارك الله فيك على سرد جميع التفاصيل و ارفاق مشروع العمل
لدينا الأخFarfesارسل لي محاولة ناجحة في الوقت بدل الضائع ننتظر أن يشرح لنا ما قام به حتى تعم الفائدة
بالمرفقات محاولتي الثانية تمت التجربة WIN ALL
لَّا إِلَٰهَ إِلَّا أَنتَ سُبْحَانَكَ إِنِّي كُنتُ مِنَ الظَّالِمِينْ.
عن أبي هريرة -رضي الله عنه- أن رسول الله -صلى الله عليه وسلم- كانَ يقولُ في سجودِهِ: «اللَّهُمَّ اغْفِرْ لي ذَنْبِي كُلَّهُ: دِقَّهُ وَجِلَّهُ، وَأَوَّلَهُ وَآخِرَهُ، وَعَلاَنِيَتَهُ وَسِرَّهُ».
(صحيح - رواه مسلم).
(14-02-2025, 08:38 PM)novus كتب : و خسرت 1 عند رفع مرفق من جهازي
النظام Beta يعني ممكن فيه أخطاء ... سنحاول مراجعة هذا الأمر شكرا.
لَّا إِلَٰهَ إِلَّا أَنتَ سُبْحَانَكَ إِنِّي كُنتُ مِنَ الظَّالِمِينْ.
عن أبي هريرة -رضي الله عنه- أن رسول الله -صلى الله عليه وسلم- كانَ يقولُ في سجودِهِ: «اللَّهُمَّ اغْفِرْ لي ذَنْبِي كُلَّهُ: دِقَّهُ وَجِلَّهُ، وَأَوَّلَهُ وَآخِرَهُ، وَعَلاَنِيَتَهُ وَسِرَّهُ».
(صحيح - رواه مسلم).
هل يوجد في المنتدى شروحات فلاشية لنفس الموضوع تطبيقا على بعض البرامج ؟
حاولت البحث في المنتدى عن نفس الموضوع Delete Registry key Injection أو ماشابه لم أجد الى هدا التمرين الدي طرحه الأخ محمد .
السلام عليكم و رحمة الله
يوجد شئ مشابه "inline patching" يحدث التغيير في الذاكرة التابعة للبرنامج المستهدف، ربما توجد دروس في المنتدى تتحدث عن ذلك.
فكرة التحدي و فكرة "inline patching" تتشارك في الفكرة العامة المبنية على ثلاثة خطوات:
كتابة اوامر في اماكن فارغة نحمل خاصية التنفيذ، هذه الأوامر تختلف حسب الهدف المرجو، مثل تعطيل حمايات فحص معينة او تفعيل خيارات معطلة او زرع دوال تنجز مهام معينة.
وعليكم السلام ورحمة الله
توجد دروس ل Inline Patching من طرف استادنا الكبير أبو البراء ([b]Newhak) [/b]وأعضاء سابقين , ولكن لاتوجد دروس لنفس الفكرة التي طرحها أخونا M!X0R في موضوع التحدي.