
- بواسطة x32x01 ||
فاكرين لما كنا بنتكلم البوست اللي فات عن الـ Malware Analysis؟
النهارده هناخد خطوة كمان لقدّام ونتكلم عن حاجة مرتبطة بيه جدًا وهي الـ Reverse Engineering أو زي ما بنسميها بالعربي "الهندسة العكسية".
هات كوبايه الشاي بتاعتك
وخلينا نبدأ واحدة واحدة.
ببساطة كده، الـ Reverse Engineering (RE) معناها إنك "تعكس" عملية بناء برنامج أو نظام علشان تفهم هو اتعمل إزاي من جوه.
يعني كأنك بتعمل Flashback للفيديو علشان توصل لأول لحظة بدأ منها.
تخيل مثلًا:
الـ RE ليها 3 أهداف رئيسية، وخلينا نشرحهم بطريقة بسيطة:
زي كده لما تعمل Information Gathering، بتجمع معلومات عن البرنامج اللي بتدرسه علشان تفهم أكوادُه وطريقة عمله.
هنا بتبدأ تدخل في أعماق الكود، وتفك كل جزء فيه علشان توصل للبنية الأساسية (Root Structure) بتاعة البرنامج.
بعد ما تفهم وتفك كل حاجة، تقدر تبني البرنامج تاني بالطريقة اللي تعجبك - سواء علشان تخصصه لمؤسستك أو تعمل نسخة جديدة منه تناسب احتياجاتك.
ودي زي لما تغير شكل الأيقونات أو الثيم بتاع البرنامج - يعني تجميله أو تعديله عشان يناسب ذوقك.
ودي الأشهر وبتُستخدم في عمل الـ Crack للبرامج 
بمعنى إنك بتعدل على مسار الكود علشان تتخطى الحماية (زي إنك تخلي برنامج Trial يشتغل Full Version).

لو نزلت Crack من مصدر مش مضمون، ممكن يكون فيه Malware أو Ransomware.
جربه دايمًا جوه Sandbox أو Virtual Lab الأول، علشان متخسرش بياناتك.
ده جزء متقدم شوية في عالم الـ Exploit Development،
وفيه بتعمل Injection لكود جديد جوه الـ RAM Memory عشان البرنامج ينفذ وظيفة جديدة مش موجودة في الأصل.
خلينا نقول إن الأدوات دي هي العدة اللي هتحتاجها في الشغل ده:
بيحول الأكواد الغامضة (Hex Bytes) إلى لغة Assembly تقدر تفهمها وتعدل عليها.
بيوريك الكود بالـ Hexadecimal (أرقام من 0 لـ 9 وحروف من a لـ f)، زي اللي بنشوفه في الـ MAC Address أو الـ IPv6.
هو نفس الأداة اللي اتكلمنا عنها في Malware Analysis،
بتشغل البرنامج خطوة بخطوة وتراقب كل Function وتشوف سلوكها.
الأداة دي لتعديل الواجهة الرسومية للبرامج (UI)، زي تغيير شكل النوافذ أو الأزرار.
أكيد الشركات مش هتسيب منتجاتها مفتوحة لأي حد يعدّل عليها!
عشان كده بيستخدموا تقنيات ذكية جدًا زي:
تشويش الكود علشان مايبقاش مفهوم لأي Reverse Engineer.
بيخلي البرنامج يراجع نفسه أثناء التشغيل، فلو حاولت تعمله Debug، بيرجع الأكواد لحالتها الأصلية فورًا 
الـ Reverse Engineering مش مجرد “تفكيك برامج”،
ده علم كامل بيساعدك تفهم كيف بتشتغل الأنظمة،
سواء علشان تحميها كـ Blue Team أو تختبرها كـ Red Team
ابدأ خطوة بخطوة، ومع الوقت هتفهم إن كل سطر كود وراه حكاية كبيرة جدًا.
النهارده هناخد خطوة كمان لقدّام ونتكلم عن حاجة مرتبطة بيه جدًا وهي الـ Reverse Engineering أو زي ما بنسميها بالعربي "الهندسة العكسية".
هات كوبايه الشاي بتاعتك

يعني إيه Reverse Engineering؟
ببساطة كده، الـ Reverse Engineering (RE) معناها إنك "تعكس" عملية بناء برنامج أو نظام علشان تفهم هو اتعمل إزاي من جوه.يعني كأنك بتعمل Flashback للفيديو علشان توصل لأول لحظة بدأ منها.
تخيل مثلًا:
- إزاي بعض الناس بتعمل شفرات ألعاب (Game Mods)؟
- أو إزاي نسخة Windows التجريبية (Trial) بتشتغل معاك مدى الحياة؟
- أو ليه الألعاب بتنزل كل شوية Patches أو تحديثات؟
أهداف الهندسة العكسية
الـ RE ليها 3 أهداف رئيسية، وخلينا نشرحهم بطريقة بسيطة:
1- Comprehension (الفهم)
زي كده لما تعمل Information Gathering، بتجمع معلومات عن البرنامج اللي بتدرسه علشان تفهم أكوادُه وطريقة عمله.
2- Decomposition (التفكيك)
هنا بتبدأ تدخل في أعماق الكود، وتفك كل جزء فيه علشان توصل للبنية الأساسية (Root Structure) بتاعة البرنامج.
3- Reconstruction (إعادة البناء)
بعد ما تفهم وتفك كل حاجة، تقدر تبني البرنامج تاني بالطريقة اللي تعجبك - سواء علشان تخصصه لمؤسستك أو تعمل نسخة جديدة منه تناسب احتياجاتك.
أهم استخدامات الـ Reverse Engineering
1- ReModing (تعديل الموارد)
ودي زي لما تغير شكل الأيقونات أو الثيم بتاع البرنامج - يعني تجميله أو تعديله عشان يناسب ذوقك.
2- CFB (Control Flow Bypass)
ودي الأشهر وبتُستخدم في عمل الـ Crack للبرامج 
بمعنى إنك بتعدل على مسار الكود علشان تتخطى الحماية (زي إنك تخلي برنامج Trial يشتغل Full Version).
وCFB بيتقسم لتلات حاجات:
- Alter Programme Flow: تعديل مسار الكود.
- Forcing Intended Actions: إجبار البرنامج ينفذ حاجة معينة.
- Jumping Over Protection Shields: تجاوز أنظمة الحماية أو التفعيل.

لو نزلت Crack من مصدر مش مضمون، ممكن يكون فيه Malware أو Ransomware.
جربه دايمًا جوه Sandbox أو Virtual Lab الأول، علشان متخسرش بياناتك.
3- Code Caving
ده جزء متقدم شوية في عالم الـ Exploit Development،وفيه بتعمل Injection لكود جديد جوه الـ RAM Memory عشان البرنامج ينفذ وظيفة جديدة مش موجودة في الأصل.
الأدوات الأساسية في Reverse Engineering
خلينا نقول إن الأدوات دي هي العدة اللي هتحتاجها في الشغل ده:
1- Disassembler
بيحول الأكواد الغامضة (Hex Bytes) إلى لغة Assembly تقدر تفهمها وتعدل عليها.
2- Hex Editor
بيوريك الكود بالـ Hexadecimal (أرقام من 0 لـ 9 وحروف من a لـ f)، زي اللي بنشوفه في الـ MAC Address أو الـ IPv6.
3- Debugger
هو نفس الأداة اللي اتكلمنا عنها في Malware Analysis،بتشغل البرنامج خطوة بخطوة وتراقب كل Function وتشوف سلوكها.
4- Resources Editor
الأداة دي لتعديل الواجهة الرسومية للبرامج (UI)، زي تغيير شكل النوافذ أو الأزرار.
خطوات عملية لتطبيق الـ Reverse Engineering
- حدد اللغة البرمجية اللي مكتوب بيها البرنامج.
- اكتشف نوع الـ Packer اللي استخدم لتجميعه.
- افهم الـ Library Files اللي البرنامج بيعتمد عليها.
- اختار طريقة التحليل: Static ولا Dynamic (زي اللي شرحناهم قبل في الـ Malware Analysis).
طب والشركات بتحمي نفسها إزاي؟
أكيد الشركات مش هتسيب منتجاتها مفتوحة لأي حد يعدّل عليها!عشان كده بيستخدموا تقنيات ذكية جدًا زي:
1- Obfuscation
تشويش الكود علشان مايبقاش مفهوم لأي Reverse Engineer.
2- Self Debugging
بيخلي البرنامج يراجع نفسه أثناء التشغيل، فلو حاولت تعمله Debug، بيرجع الأكواد لحالتها الأصلية فورًا 
إزاي تبدأ تذاكر Reverse Engineering؟
- اتعلم لغة Assembly كويس جدًا.
- تدرب على استخدام Debuggers وDisassemblers.
- جرّب بنفسك على برامج بسيطة (من GitHub أو GitLab).
- خد كورس عملي زي كورس المهندس أحمد بهاء على منصة Mharatech:
من هنا

👆 أضغط على الصورة لمشاهدة الفيديو 👆

👆 أضغط على الصورة لمشاهدة الفيديو 👆

👆 أضغط على الصورة لمشاهدة الفيديو 👆

👆 أضغط على الصورة لمشاهدة الفيديو 👆
الخلاصة
الـ Reverse Engineering مش مجرد “تفكيك برامج”،ده علم كامل بيساعدك تفهم كيف بتشتغل الأنظمة،
سواء علشان تحميها كـ Blue Team أو تختبرها كـ Red Team

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