الدرس الخامس : كشف عمليات تشفير وضغظ البرامج الخبيثة و فكها

بسم الله الرحمن الرحيم

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

 

اولا ما هي عملية الضغط Packing ؟

عملية packing هي استخدام خوارزميات تقوم بجمع اقسام البرنامج ( قسم الكود وقسم البيانات وغيرها ) داخل قسم واحد يتم ضغطه وتشفيره حتى لا يكون مفهوم عند عملية قرائته لانتاج برنامج جديد يحوي البيانات المشفره و قادر على فك التشفير بنفسه .

ويقوم برنامج packer الذي يقوم بهذه العمليه بوضع كود يقوم بفك ضغط وتشفير البرنامج عند التشغيل .

طبعا هذه العملية كانت موجوده منذ وقت طويل حيث كان يتم استخدامها لضغط البرنامج لان سعة التخزين في الماضي كانت محدوده .

هذه الصور توضح ماذا يحدث عن عمليه الضغط :

images

packer

ثانيا ما هدف ال packers ؟

1) اخفاء النصوص داخل البرنامج .

2) تغيير hash الخاص بالبرنامج حتى لا يتم اكتشافه من قبل المضادات عن طريق  signature كما تكلمنا عنها في الدرس الرابع .

3) اخفاء الدوال الخبيثة عن مضادات البرامج الخبيثة مثل دوال المستخدمه لتسجيل القيم المدخله عن طريق لوحه المفاتيح .

4) جعل مهمة كشف خصائص البرنامج الخبيث من قبل المحلل صعبة لاعطاء اكبر وقت ممكن للاستفاده من البرنامج الخبيث ونشره .

ثالثا دلائل على عملية الضغط .

1) وجود عدد قليل من النصوص في البرنامج .

2) وجود عدد قليل من الدوال التي سيتم استخدامها من قبل البرنامج .

3) وجود نصوص تحوي معلومات عن اسم برنامج packer الذي تم عمل من خلاله عملية الضغط .

4) قيم العشوائية للبرنامج عالية ( حيث يتم حساب القيم داخل البرنامج ومقدار بعد كل منها عن بعض مثلا لو كان هنالك قيم صغيرة جدا وبعدها قيم كبيره جدا وهنالك خوارزميات تقوم بحساب العشوائيه وحتى يمكنها عمل رسم يوضح العشوائيه للبرنامج كما سنرى في الفيديو التوضيحي ) .

5) وجود اقسام sections بحجم بيانات قليل على قرص التخزين لكن بحجم كبير عند تحميل البرنامج الى الذاكره
الجمله في اللغه الانجليزيه حتى تسهل الفهم : Large virtual sections with small raw disk size

رابعا اسماء برامج packers مشهوره :

يوجد الكثير من برامج ال packers منها المدفوع ومنها المجاني ومنها الغير منشور حتى لا يتم فك تشفيره بسهوله مثل الpacker الذي كانت تستخدمه شركه Hacking Team وتم تسريبه.
هذه بعض البرامج المشهوره :

1)  UPX
2) ASPack
3) VMProtect

رابط تحميل UPX وهو الذي سنستخدمه في هذا الدرس : downlaod

الان اترككم مع الشرح المصور لكيفية فك ضغط وتشفير البرامج :

[youtube https://www.youtube.com/watch?v=l5y4yR7-GXY&w=560&h=315]