مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

[ شرح ] Flare-on Challenges

ITACHI_10HITACHI_10H is verified member.

مشرف سابق
>:: v1p ::<

السمعة:

السلام عليكم اخواني

اليوم قررت شرح تحدي مشهور جدا .هو عبارة عن 7 تحديات و سأقوم بشرح التحدي الثالت لكن قبل ان تقوم بقراءة الحل يمكنك المحاولة بنفسك أولا لتختبر قدراتك
المهم الفريق fireEye team سابقا مند 2014 و هو ينزل تحديات كهاته لم يسبق لي صراحة المشاركة فيها live . ان شاء الله نشوف ناس عرب و لما لا من المنتدى يشاركون في المستقبل فالأمر قد يفيد الشبكة .
تتنافس انت و عده أفراد اخرين لحل هاته التحديات في أسرع وقت ممكن
الفريق بهاته التحديات غالبا ما يبحث عن أشخاص موهوبين ليقوم بدعوتهم للفريق الشهير

FLARE On Challenge

  • هو CTF سنوي في reverse engineering تنظمه فريق FLARE.
  • يركز على malware reversing وWindows internals.
  • كل سنة يقدم تحديات صعبة ومتعددة المراحل في reversing.
  • ممتاز لتحسين مهاراتك في reversing باستخدام عينات حقيقية من malware.



لماذا الفريق ينزل هاته التحديات؟
  • التحديات تختبر مهارات حقيقية: Reverse engineering، تحليل malware، وWindows internals — كلها مهارات حاسمة في مجال cyber defense.
  • تُظهر قدرة حل المشاكل: كيف تتعامل وتحل الألغاز الصعبة يعكس طريقة تفكيرك.
  • تحديد أفضل المواهب عالمياً: هذه المسابقات تجذب أشخاص مهرة من كل أنحاء العالم، مما يسهل العثور على الأفضل.
  • بناء مجتمع وسمعة: شركات مثل FireEye تبني ثقة وسمعة قوية عن طريق استضافة تحديات مفتوحة.



ماذا يحدث إذا أدّيت أداءً جيداً؟

  • أحياناً، منظمو التحديات أو الرعاة يتواصلون مباشرة مع أفضل المحللين بعروض عمل أو دعوات لمقابلات.
  • اسمك قد يُلاحَظ في مجتمع cybersecurity وعلى منصات مهنية.
  • يفتح لك الباب للتدريب، أدوار بحثية، أو وظائف مدفوعة في تحليل malware، وأكثر.
  • يضيف مصداقية كبيرة إلى سيرتك الذاتية أو ملفك على LinkedIn.


1- الخطوة الأولى
المهم عند تحميل التحدي من الموقع الرسمي نجد 7 ملفات كل واحدة عبارة عن تحدي . لن أتكلم هنا عن التحديين الأول و الثاني لأنهما نسبيا سهلين و سأقفز مباشرة الى الثالث C3.zip
1.webp


2-الخطوة الثانية
نقوم بفك الملف zip و نجد ملف باسم such.evil بدون امتداد نرميه في die للفحص و نجد انه تم عمل compile له بواسطة tiny c compiler
2.webp


3-الخطوة الثالثة
نفتح الملف في IDA PRO و تواجهنا هاته الرسالة التي تقول لنا باختصار انا ال import segment مع
طوبة و هدا دليل على انه تم التلاعب بالملف او ان هناك تشفير و استدعاءات غير مباشرة
3.webp

هنا نجد انه بالفعل الimport table صغيرة و ليس بها أي شيء مهم لنا

4.webp


4-الخطوة الرابعة

نبحث عن entry point . لنتجاهل حاليا كل التعليمات لأنها غير مهمة الى غاية وصولنا الى استدعاء اثار انتباهي و هو التالي

5.webp

وندخل لهاته الفانكشن sub_401000


5-الخطوة الخامسة
نجد تعليمات كثيرة تقوم بنقل hardcoded value الى registers eax كلها عبارة عن 1 byte ثم الى مكان في الستاك مممم interresting
:unsure: يبدو انه shellcode او شيء من هدا القبيل
يجب أن أدكر انه تم تخصيص 204 بايت في الداكرة هيكس تدكروا هدا الرقم جيدا لأنه سنحتاجه
6.webp

نقوم بالنزول الى اخر الفانكشن


6-الخطوة الخامسة
سنجد انه تم نقل كل البايتات الى eax و القفز اليها .لدا قمت بكتابه سكريبت صغير لكي اعمل dump للبايتس و أقوم بفتح ida لعمل static analysis
7.webp


7-الخطوة السابعة
بعد فتح الملف dumped.bin في ida نجد ان ida لم يتعرف بشكل كامل على البايتات على انها تعليمات بل فقط تخصيص لبعض الهكس values في الداكرة

8.webp


8-الخطوة الثامنة
نقوم بالضغط حرف 'c' في لوحة المفاتيح ليتم عمل reanalysis للملف ونجد هدا الكود أمامنا
9.webp


باختصار يتم نقل 0x1DF عدد من البايتات ابتداءا من الداكرة 0x00000021 و عمل xor بالرقم 66h و القفز اليها بعد فك التشفير . لدا قمنا بكتابة سكريبت اخر لفك التشفير و وضع الناتج في ملف اخر باسم dumped2_bin
10.webp

الى هنا نكتفي بهدا القدر لضيق الوقت سأطرح التكملة في موضوع اخر أو سأقوم بالتعديل على الموضوع نفسه
أتمنى أن ينال المحتوى اعجابكم . المحتوى يتطلب مجهود في الكتابة صراحة أصعب من حل التحدي نفسه :LOL: لكم الأهم أن يستفيد القارئ و ان شاء الله القادم أجمل
تـــــــــــــــــــــــــــــــــــــــــــحـــــــــــــــــــــــــــــــــياتـــــــــــــــــــــــــــــي
 
عندي ملاحظه اقبلها بصدر رحب 🥺

الله يعطيك العافيه لكن الصوره الاخيره لا يعطي

ناتج جيد الكود مكتوب بشكل غير صحيحه للكتابه.!!
على العموم الترميز 0x1DF ASCii يعطي رساله خطىء بسبب ß و 0x1DF Unicode يرمز لحرف â احرف لاتينية اعتقد مصمم الملف ياباني

هل متأكد ان الكود صحيح .؟
لان المعادله تغيير البت اذا كان 0 يصبح 1 والخ ..

ماعليش عندي مشكله في النظر بسبب ضعف النظر والتضبيب ..

النتيجه غير مرضيه ..

لا استطيع المشاركه لا يوجد لدي كمبيوتر

احبب اضيف مشاركه كا نظره على الكود في الصوره الاخيره
 
التعديل الأخير:
عندي ملاحظه اقبلها بصدر رحب 🥺

الله يعطيك العافيه لكن الصوره الاخيره لا يعطي

ناتج جيد الكود مكتوب بشكل غير صحيحه للكتابه.!!
على العموم الترميز 0x1DF ASCii يعطي رساله خطىء بسبب ß و 0x1DF Unicode يرمز لحرف â احرف لاتينية اعتقد مصمم الملف ياباني

هل متأكد ان الكود صحيح .؟
لان المعادله تغيير البت اذا كان 0 يصبح 1 والخ ..

ماعليش عندي مشكله في النظر بسبب ضعف النظر والتضبيب ..

النتيجه غير مرضيه ..

لا استطيع المشاركه لا يوجد لدي كمبيوتر

احبب اضيف مشاركه كا نظره على الكود في الصوره الاخيره
لم افهم اخي ما تحاول قوله
هل يمكنك الشرح أكثر؟
كما ان الكود شغال 100% العدد 0x1DF هو فقط SIZE لا اريد ترجمته الى محرف ASCII سواء UNICODE او SINGLE BYTE CHAR
 
السلام عليكم اخواني

اليوم قررت شرح تحدي مشهور جدا .هو عبارة عن 7 تحديات و سأقوم بشرح التحدي الثالت لكن قبل ان تقوم بقراءة الحل يمكنك المحاولة بنفسك أولا لتختبر قدراتك
المهم الفريق fireEye team سابقا مند 2014 و هو ينزل تحديات كهاته لم يسبق لي صراحة المشاركة فيها live . ان شاء الله نشوف ناس عرب و لما لا من المنتدى يشاركون في المستقبل فالأمر قد يفيد الشبكة .
تتنافس انت و عده أفراد اخرين لحل هاته التحديات في أسرع وقت ممكن
الفريق بهاته التحديات غالبا ما يبحث عن أشخاص موهوبين ليقوم بدعوتهم للفريق الشهير

FLARE On Challenge

  • هو CTF سنوي في reverse engineering تنظمه فريق FLARE.
  • يركز على malware reversing وWindows internals.
  • كل سنة يقدم تحديات صعبة ومتعددة المراحل في reversing.
  • ممتاز لتحسين مهاراتك في reversing باستخدام عينات حقيقية من malware.



لماذا الفريق ينزل هاته التحديات؟
  • التحديات تختبر مهارات حقيقية: Reverse engineering، تحليل malware، وWindows internals — كلها مهارات حاسمة في مجال cyber defense.
  • تُظهر قدرة حل المشاكل: كيف تتعامل وتحل الألغاز الصعبة يعكس طريقة تفكيرك.
  • تحديد أفضل المواهب عالمياً: هذه المسابقات تجذب أشخاص مهرة من كل أنحاء العالم، مما يسهل العثور على الأفضل.
  • بناء مجتمع وسمعة: شركات مثل FireEye تبني ثقة وسمعة قوية عن طريق استضافة تحديات مفتوحة.



ماذا يحدث إذا أدّيت أداءً جيداً؟

  • أحياناً، منظمو التحديات أو الرعاة يتواصلون مباشرة مع أفضل المحللين بعروض عمل أو دعوات لمقابلات.
  • اسمك قد يُلاحَظ في مجتمع cybersecurity وعلى منصات مهنية.
  • يفتح لك الباب للتدريب، أدوار بحثية، أو وظائف مدفوعة في تحليل malware، وأكثر.
  • يضيف مصداقية كبيرة إلى سيرتك الذاتية أو ملفك على LinkedIn.


1- الخطوة الأولى
المهم عند تحميل التحدي من الموقع الرسمي نجد 7 ملفات كل واحدة عبارة عن تحدي . لن أتكلم هنا عن التحديين الأول و الثاني لأنهما نسبيا سهلين و سأقفز مباشرة الى الثالث C3.zip
مشاهدة المرفق 17448


2-الخطوة الثانية
نقوم بفك الملف zip و نجد ملف باسم such.evil بدون امتداد نرميه في die للفحص و نجد انه تم عمل compile له بواسطة tiny c compiler
مشاهدة المرفق 17449


3-الخطوة الثالثة
نفتح الملف في IDA PRO و تواجهنا هاته الرسالة التي تقول لنا باختصار انا ال import segment مع
طوبة و هدا دليل على انه تم التلاعب بالملف او ان هناك تشفير و استدعاءات غير مباشرة
مشاهدة المرفق 17450
هنا نجد انه بالفعل الimport table صغيرة و ليس بها أي شيء مهم لنا

مشاهدة المرفق 17451


4-الخطوة الرابعة

نبحث عن entry point . لنتجاهل حاليا كل التعليمات لأنها غير مهمة الى غاية وصولنا الى استدعاء اثار انتباهي و هو التالي

مشاهدة المرفق 17452
وندخل لهاته الفانكشن sub_401000


5-الخطوة الخامسة
نجد تعليمات كثيرة تقوم بنقل hardcoded value الى registers eax كلها عبارة عن 1 byte ثم الى مكان في الستاك مممم interresting
:unsure: يبدو انه shellcode او شيء من هدا القبيل
يجب أن أدكر انه تم تخصيص 204 بايت في الداكرة هيكس تدكروا هدا الرقم جيدا لأنه سنحتاجه
مشاهدة المرفق 17453

نقوم بالنزول الى اخر الفانكشن


6-الخطوة الخامسة
سنجد انه تم نقل كل البايتات الى eax و القفز اليها .لدا قمت بكتابه سكريبت صغير لكي اعمل dump للبايتس و أقوم بفتح ida لعمل static analysis
مشاهدة المرفق 17454

7-الخطوة السابعة
بعد فتح الملف dumped.bin في ida نجد ان ida لم يتعرف بشكل كامل على البايتات على انها تعليمات بل فقط تخصيص لبعض الهكس values في الداكرة

مشاهدة المرفق 17455

8-الخطوة الثامنة
نقوم بالضغط حرف 'c' في لوحة المفاتيح ليتم عمل reanalysis للملف ونجد هدا الكود أمامنا
مشاهدة المرفق 17456


باختصار يتم نقل 0x1DF عدد من البايتات ابتداءا من الداكرة 0x00000021 و عمل xor بالرقم 66h و القفز اليها بعد فك التشفير . لدا قمنا بكتابة سكريبت اخر لفك التشفير و وضع الناتج في ملف اخر باسم dumped2_bin
مشاهدة المرفق 17457
الى هنا نكتفي بهدا القدر لضيق الوقت سأطرح التكملة في موضوع اخر أو سأقوم بالتعديل على الموضوع نفسه
أتمنى أن ينال المحتوى اعجابكم . المحتوى يتطلب مجهود في الكتابة صراحة أصعب من حل التحدي نفسه :LOL: لكم الأهم أن يستفيد القارئ و ان شاء الله القادم أجمل
تـــــــــــــــــــــــــــــــــــــــــــحـــــــــــــــــــــــــــــــــياتـــــــــــــــــــــــــــــي

ما شاء الله ! الله يعطيك العافية ويبارك فيك وبعلمك
بانتظاار القادم ..
 
لم افهم اخي ما تحاول قوله
هل يمكنك الشرح أكثر؟
كما ان الكود شغال 100% العدد 0x1DF هو فقط SIZE لا اريد ترجمته الى محرف ASCII سواء UNICODE او SINGLE BYTE CHAR
نعم الكود تمام لكن كانك تقول له عد من ١ الى ١٠٠ وحفظه في txt لم يتخطى شيء

ال 0x1DF عدد نعم اذا تم تحويله الى decimal لكن يبقى حرف لاتيني بال hex ..

على العموم ربما ضعف نظري يتوهملي ان المشكله لم تنحل ..

بالتوفيق لك
 
نعم الكود تمام لكن كانك تقول له عد من ١ الى ١٠٠ وحفظه في txt لم يتخطى شيء

ال 0x1DF عدد نعم اذا تم تحويله الى decimal لكن يبقى حرف لاتيني بال hex ..

على العموم ربما ضعف نظري يتوهملي ان المشكله لم تنحل ..

بالتوفيق لك
ارجو ان تشرحلي الكود من منظورك لافهم أكثر ما تحاول قوله
 
ارجو ان تشرحلي الكود من منظورك لافهم أكثر ما تحاول قوله
مثلاً انت تريد ان تبدء برقم 33 الى 479 وهذا رقم لا يمثل سوى خطىء والسبب انت تريد العد من 33 الى 479 والصحيح من 33 الى 127 في ال hex

ولكن الرقم في Unicode يعبر عن â

الصوره توضح لك ..

ربما اكون مخطئ وانت كلامك صح ..
 

المرفقات

  • IMG_٢٠٢٥٠٥٢٤_٢٢٤٠٥٠.webp
    IMG_٢٠٢٥٠٥٢٤_٢٢٤٠٥٠.webp
    54.1 KB · المشاهدات: 7
على العموم انت كلامك صحيح

convert 0X01DF to decimal.

F × 1 = 15
D × 16 = 208
1 × 16 × 16 = 256
0 × 16 × 16 × 16 = 0

15 + 208 + 256 + 0 = 479


اذا تم تحويله الى decimal وليس binary
 
مثلاً انت تريد ان تبدء برقم 33 الى 479 وهذا رقم لا يمثل سوى خطىء والسبب انت تريد العد من 33 الى 479 والصحيح من 33 الى 127 في ال hex

ولكن الرقم في Unicode يعبر عن â

الصوره توضح لك ..

ربما اكون مخطئ وانت كلامك صح ..
ااااااااه لا لا يا صديقي لقد فهمت الكود غلط
انا فهمت انت عايز تقول ايه. انت حسبتها على اساس نهاية الحروف في ascii table
كما انني يا صديقي لا أريد الحساب من 33الى 479
0x00000021 هو عبارة عن adress في الذاكرة و ليس ما فهمته انت انه حرف بالاضافة الى ان 0x1df هو عبارة عن size وليس حرف كما قلت نعم ممكن يكون هناك مقابل له في الascii table لو انك فرضا تريد العمل بunicode لكن ليس موضوعنا انا اريد قراءة الذاكرة من 33 الى 33+479
ما عندي أي غلط كما انه لو كان غلط ما كان اقدر عمل dump
انمنى ان تكون فهمتني
الموضوع ليس سهل قم بمتابعة بعض الدروس في الهندسة العكسية و ان شاء الله أي استفسار انا حاضر اخي.
 

آخر المشاركات

عودة
أعلى