Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-70330 — ثغرة في تحليل الملفات في Easy Grade Pro 4.1 تُستخدم كمثال تعليمي لإظهار كيف يمكن للمبتدئين البدء في أبحاث الثغرات الأمنية من خلال الهندسة العكسية. | Kitploit
أدوات/GitHubGitHub/themalwareguardian/cve-2025-70330
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالالهندسة العكسيةمصممي الأخطاءالاختبار العشوائيتحليل الملفات الثنائيةالتعلم والتعليم

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
استغلال الملفات الثنائية
GitHubthemalwareguardian/cve-2025-70330

CVE-2025-70330

ثغرة في تحليل الملفات في Easy Grade Pro 4.1 تُستخدم كمثال تعليمي لإظهار كيف يمكن للمبتدئين البدء في أبحاث الثغرات الأمنية من خلال الهندسة العكسية.

عرض المستودع
24منذ 5 أشهرلم تتم المراجعة بعد
مشاركة

🧩 CVE-2025-70330: ثغرة تحليل الملفات في Easy Grade Pro 4.1

مثال تعليمي أُنشئ لإظهار أن البحث عن الثغرات من خلال الهندسة العكسية ممكن منذ البداية.




📑 جدول المحتويات

  • لماذا يوجد هذا المستودع
  • العلاقة بـ «الطريق الذي يقود إلى أول CVE لك»
  • لماذا البرمجيات القديمة مثالية للتعلّم
  • لماذا هذا المثال مهم
  • حول الثغرة
  • التحليل الفني
  • 📂
    • لماذا تؤدي ملفات تالفة محددة فقط إلى انهيار التطبيق
    • إثبات المفهوم
    • سلوك الانهيار
    • ملاحظات



🎓 لماذا يوجد هذا المستودع

ينبع هذا المستودع من الحاجة إلى مثال بسيط يمكن استخدامه عند تعليم المبتدئين الذين بدأوا للتو في البحث عن الثغرات، وخاصة المهتمين منهم بالهندسة العكسية.

بعد إكمال دورة تدريبية، أو جلسة تدريبية، أو برنامج ماجستير متعلق باستغلال الثنائيات أو تحليلها، يشعر العديد من الطلاب أن البحث الحقيقي عن الثغرات أمر يتجاوز مستواهم بكثير. وعادةً ما يربطون الهندسة العكسية بموضوعات متقدمة جداً مثل ثغرات النواة، واستغلال المتصفحات، وأبحاث البرامج الثابتة، أو الأهداف الحديثة المعقدة، ولهذا السبب يعتقدون أنهم غير مستعدين بعد. في الممارسة العملية، المشكلة ليست نقص المعرفة، بل عدم وجود نقطة بداية واقعية.

أردت مثالاً يُظهر أنه بالمهارات المكتسبة خلال دورة أساسية، من الممكن بالفعل أخذ برنامج حقيقي، وفهم كيفية عمله، وإحداث انهيار فيه، وتحديد خلل حقيقي.

هذا المستودع هو بالضبط ذلك النوع من الأمثلة. الأمر لا يتعلق بإيجاد ثغرة معقدة، بل بإظهار أن المبتدئين يمكنهم البدء من شيء صغير وقابل للتكرار وسهل الفهم، مع مواصلة القيام ببحث حقيقي عن الثغرات.




🧭 العلاقة بـ «الطريق الذي يقود إلى أول CVE لك»

يرتبط هذا المستودع ارتباطاً مباشراً بمحاضرتي «الطريق الذي يقود إلى أول CVE لك»، حيث أوضح أن هناك طرقاً متعددة لدخول عالم البحث عن الثغرات، وأن كل شخص عادةً ما يسلك مساراً مختلفاً اعتماداً على اهتماماته.

بعض الأشخاص يبدأون بمراجعة الكود المصدري، وآخرون بالهندسة العكسية، وآخرون بأمن الويب، وآخرون بالبحث التقني. كل هذه المسارات صحيحة، لكن الجزء المهم هو إدراك أن كل مجال يمتلك أيضاً نقاط دخول مناسبة للمبتدئين.

من أمثلة مسارات المبتدئين:

  • في مراجعة الكود المصدري: مراجعة المشاريع مفتوحة المصدر الصغيرة.
  • في الهندسة العكسية: العمل مع التطبيقات القديمة ذات المنطق البسيط.
  • في أمن تطبيقات الويب: تحليل تطبيقات الويب البسيطة أو إضافات CMS القديمة.
  • في البحث التقني: دراسة البروتوكولات أو البرمجيات التي لم تُصمم مع أخذ الأمان في الاعتبار.
  • والعديد من نقاط البداية المماثلة الأخرى.

قد تبدو هذه الأنواع من الأهداف أساسية، لكنها تعلّم نفس المهارات الأساسية المطلوبة لاحقاً عند العمل على أنظمة معقدة.

يمثل هذا المستودع أحد تلك المسارات المخصصة للمبتدئين في مجال الهندسة العكسية.

تم العثور على الثغرة الموثقة هنا من خلال تحليل تطبيق قديم، وفهم كيفية تحليل تنسيق ملفاته، وتحديد خطأ برمجي يؤدي إلى انهيار التطبيق. التأثير نفسه ليس معقداً، لكن العملية حقيقية وقابلة للتكرار ومفيدة لتعلّم كيفية عمل البحث عن الثغرات في الواقع.

هذا هو نوع الأمثلة التي أستخدمها عند شرح «الطريق الذي يقود إلى أول CVE لك»، لإظهار أن الهندسة العكسية مسار صالح من البداية، وأن البدء بأهداف بسيطة ليس مقبولاً فحسب، بل غالباً ما يكون أفضل طريقة للتعلّم.




🧱 لماذا البرمجيات القديمة مثالية للتعلّم

عندما تكون في مرحلة البداية، غالباً ما تكون التطبيقات الحديثة معقدة للغاية. فهي تستخدم حمايات وإجراءات تخفيف وقواعد برمجية يصعب فهمها دون خبرة كبيرة. أما البرمجيات القديمة فمختلفة.

لم تُكتب التطبيقات القديمة مع مراعاة الممارسات الأمنية الحديثة. فهي غالباً تحتوي على أخطاء تحليل بسيطة، وعمليات ذاكرة غير آمنة، وأخطاء منطقية يمكن فهمها بمهارات هندسة عكسية أساسية. وهذا ما يجعلها مثالية للتعلّم.

باستخدام برنامج قديم يمكنك: عكس هندسة الثنائي، وفهم تنسيق الملف، وإحداث انهيار، وتحليل الانهيار، وتحديد موقع الخلل، وتوثيق المشكلة، والإبلاغ عن الثغرة. بعبارة أخرى، تتعلم المهارات الأساسية التي يحتاجها كل باحث عن الثغرات.

هذا هو بالضبط موضوع هذا المثال.




🧪 لماذا هذا المثال مهم

هذا المثال مهم لأنه يُظهر شيئاً بسيطاً جداً:

  • لست بحاجة إلى أن تكون خبيراً لتبدأ.
  • لست بحاجة إلى استغلال نواة نظام التشغيل أو متصفح.
  • يمكنك البدء بشيء صغير، وفهمه، وتوثيقه، وما زال بإمكانك إنتاج نتائج حقيقية.

إذا كنت تحب الهندسة العكسية، يمكنك اتباع هذا المسار من البداية. قد يستغرق إتقانها سنوات، لكنك لست بحاجة إلى الانتظار سنوات لتبدأ عملاً حقيقياً.




⚠️ حول الثغرة

تؤثر الثغرة (CVE-2025-70330)) على منطق تحليل الملفات في Easy Grade Pro 4.1 عند تحميل ملفات دفتر الدرجات الاحتكارية بصيغة .EGP.

يعيد التطبيق بناء البنى الداخلية لدفتر الدرجات من خلال قراءة حقول ذات مواضع ثابتة من الملف واستخدام تلك القيم كإزاحات داخل مخزن الملف المحمّل. تُستخدم هذه الإزاحات لاحقاً لحساب أحجام الذاكرة ونسخ البيانات إلى مخازن مخصصة ديناميكياً.

في الظروف العادية، يمر الملف بعدة فحوصات بنيوية قبل أن يستمر التحليل. ومع ذلك، بمجرد نجاح هذه الفحوصات، يثق المحلل بقيم الإزاحات المخزنة داخل الملف دون التحقق من بقائها ضمن حدود المخزن المحمّل.

من خلال تعديل وحدات بايت محددة داخل ملف .EGP صالح في الأصل، يمكن إفساد حسابات الإزاحات الداخلية هذه. وعندما يستخدم المحلل هذه القيم لاحقاً، فإنه يحاول قراءة ذاكرة خارج منطقة الملف الصالحة، مما يؤدي إلى انتهاك وصول وانهيار التطبيق.

تتوافق هذه الحالة مع قراءة خارج الحدود (CWE-125)، مما يؤدي إلى رفض خدمة محلي عند فتح الملف المُصمَّم خصيصاً.




تنزيل الأداة
🔬 التحليل الفني

يتم تحليل تنسيق ملف .EGP باستخدام نهج قائم على الإزاحات. فبدلاً من معالجة الملف بشكل تسلسلي، يقرأ المحلل بنى داخلية تحتوي على إزاحات البداية والنهاية التي تصف المكان الذي يجب أن توجد فيه كتل بيانات محددة داخل الملف.

تُستخدم هذه الإزاحات لحساب حجم منطقة الذاكرة ونسخ البيانات من مخزن الملف المحمّل إلى ذاكرة مخصصة حديثاً.

يمكن تلخيص المنطق المعرض للثغرة على النحو التالي:

root@kitploit:~
size = offset_end - offset_start + 1
buffer = calloc(1, size)
memcpy(buffer, file_buffer[offset_start - base_offset], size)

بمجرد اجتياز الملف لفحوصات التحقق الأولية، يفترض المحلل أن الإزاحات المخزنة في الملف صالحة. ولا يتم إجراء أي تحقق لضمان بقاء مؤشر المصدر المحسوب داخل مخزن الملف المحمّل.

إذا تم التلاعب بالإزاحات بطريقة مضبوطة، فقد يحاول المحلل قراءة ذاكرة خارج النطاق الصالح، مما يسبب انتهاك وصول أثناء عملية memcpy().




💥 لماذا تؤدي ملفات تالفة محددة فقط إلى انهيار التطبيق

لا يؤدي كل ملف .EGP تالف إلى حدوث الانهيار.

ينفذ المحلل عدة فحوصات اتساق قبل الوصول إلى مسار الكود المعرض للثغرة. إذا كانت بنية الملف تالفة بشكل كبير، يتوقف التطبيق عن التحليل مبكراً ويبلغ أن دفتر الدرجات تالف.

ومع ذلك، فإن بعض التعديلات تُبقي البنى الداخلية متماسكة بما يكفي لاجتياز الفحوصات الأولية، مع إنتاج قيم إزاحات غير صحيحة لاحقاً في عملية التحليل.

عند حدوث ذلك، يصل المحلل إلى إجراءات أعمق حيث يتم الوثوق بهذه الإزاحات واستخدامها في عمليات نسخ الذاكرة، مما يؤدي في النهاية إلى قراءة خارج الحدود.




🧾 إثبات المفهوم

يمكن إحداث الانهيار عن طريق تعديل ملف .EGP صالح وإدراج بيانات مضبوطة عند إزاحة محددة.

يعمل إثبات المفهوم من خلال:

  1. أخذ ملف دفتر درجات صالح تم إنشاؤه بواسطة Easy Grade Pro.
  2. قراءة الملف كبيانات ثنائية خام.
  3. إدراج سلسلة من وحدات البايت عند إزاحة ثابتة.
  4. حفظ الملف المعدّل.
  5. فتح الملف المُصمَّم خصيصاً في التطبيق.

مثال على المعاملات المستخدمة في إثبات المفهوم:

  • إزاحة الحقن: 548
  • حجم الحمولة: 21 بايت
  • قيمة الحمولة: 0x41 ("A")

يحافظ هذا التعديل على صحة بنية الملف بما يكفي لاجتياز الفحوصات الأولية، لكنه يُفسد حسابات الإزاحات الداخلية التي يستخدمها المحلل لاحقاً، مما يؤدي في النهاية إلى انهيار التطبيق.




💣 سلوك الانهيار

عند فتح الملف التالف تحت مصحح أخطاء، ينهار التطبيق أثناء عملية نسخ ذاكرة.

الاستثناء الملاحَظ هو انتهاك وصول ناتج عن قراءة ذاكرة غير صالحة.

أثناء التصحيح، ينشأ المؤشر غير الصالح الذي تستخدمه memcpy() من حسابات الإزاحات المشتقة من بنى الملف المحللة. عندما تشير هذه الإزاحات إلى ذاكرة خارج مخزن الملف المحمّل، يشير مؤشر المصدر إلى عنوان غير معيّن، مما يسبب الانهيار.

يؤكد هذا أن الثغرة ناتجة عن غياب التحقق من الحدود أثناء تحليل الملف.




📌 ملاحظات

تؤثر هذه الثغرة على منتج وصل إلى نهاية دورة حياته ولم يعد البائع يقوم بصيانته.

تم توثيق هذه المسألة لأغراض تعليمية وبحثية، ولإعطاء المبتدئين مثالاً ملموساً على كيفية تحليل البرمجيات خطوة بخطوة لفهم كيفية ظهور الأخطاء وكيفية العثور على الثغرات الحقيقية.