انتشرت في الآونة الأخيرة طرق تشفير الفيروسات والخوادم من برامج مكافحة الفيروسات، وتعتمد تلك الطرق على تغير رموز معينة في الفيروسات والخوادم تسمي القيم الست عشرية،،
سأحاول في هذا الموضوع أن عرض لكم ماهية هذه الرموز وطبيعتها..
ذو قاعدة الـ16 (النظام الست عشري) أو (hexadecimal) وبشكل أبسط (Hex) هو نظام عددي مبني على 16رمز، وهذا النظام العددي يستخدم الأرقام من صفر(0) إلى (9) والحروف من (A) إلى (F)، في بدايته استخدم هذه النظام في عام 1963م من قبل شركة آي بي إم (IBM).
والحقيقة أن شركة أخرى استخدمت هذا النظام في 1956م غير أنه كان يعتمد على الحروف من (U) إلى (Z) بالإضافة إلى الأرقام.
على سبيل المثال العدد العشري (79) هو نفسه العدد (01001111) في نظام العد الثنائي وهذا العدد يمكن أن يكتب (4F) بالنظام الست عشري.
بعض أرقام النظام الست عشري (Hex) لا تختلف عن أرقام نظام العد العشري، لذلك عند كتابة مثل هذه الأرقام يوضع إشارة أو دليل يدل على نظام الكتابة، مثال:
في لغة السي واللغات الشبيهة (c++, c# and JAVA) يشار إلى القيم الست عشرية برمز استهلالي "0x" .. مثال ذلك "0x5A3".
وتميز لغة (HTML) رموز Hex كذلك باستخدام بادئة استهلالية هي x مثال ذلك (֣) هو نفسه (֣) في متصفح الانترنت!
والألوان في هذه اللغة تستهل بـ # ، مثل: "#FFFFFF" وهو ما نسميه كود اللون الأبيض.
وهكذا دواليك فلكل لغة برمجة رموز وطرق تميز من خلالها الرموز الست عشرية ولم يتفق على توحيد هذه الدلائل.
- الاستخدامات:
غالبا ما تستخدم الرموز الست عشرية (Hex) في لغات البرمجة وخاصة لغتا HTML و CSS..
فهذه اللغات تستخدم ترميزا ستا عشريا لتحديد الألوان على صفحات الانترنت،، 24 بيتً من هذه الألوان يصاغ على هيئة #RRGGBB ، حيث يحدد RR قيمة للون الأحمر، و GG قيمة اللون الأخضر، وBB قيمة اللون الأزرق، فمثلا درجة اللون الأحمر تعطى بـ (238,9,63) في النظام العشري، بينما تصاغ كـ #EE093F في النظام الست عشري Hex .
أيضا وكما هو معروف في عناوين مواقع الانترنت URLs تستخدم رموز هيكس حيث تميز ببادئة استهلالية وهي العلامة المئوية %، واستغل مستخدمو برامج الاختراق هذه الخاصية، حيث قاموا بإخفاء مسار وعناوين خوادمهم وصفحاتهم المزورة من أعين الضحايا وذلك عن طريق طمر عناوين مواقعهم وجعلها مكتوبة بلغة غير مفهومة(رموز ست عشرية) لدى الضحية العادي .
والجدير بالذكر أنه يمكن تحويل لغة الآلة وأوامرها (1010001) التي تتكون من الرقمين صفر وواحد لأي برنامج كان إلى رموز ست عشرية (رموز هيكس) حيث يمكن التحويل بتمثيل كل موقع في السورس وهذا تماما ما تظهره محررات الهيكس أمثال Hex workshop
وكما رأينا أن الرموز الست عشرية تستخدم من قبل برامج مكافحة الفيروسات (anti viruses software) حيث تقوم هذه البرامج بتحديد مواقع معينة (في الرموز الست عشرية) لكل ملف غير حميد لكي تعرّف بهذه الطريقة أي ملف شبيه بهذا الملف كفيروس(طبعا مع الأخذ بالحسبان الحجم وغيره).
وكالعادة تدّخل المشفر ليغير هذه القيم الست عشرية (لكي يعمي أعين برامج الحماية من هذه الفيروسات ويمر هذا الفيروس منها مرور الكرام.
الآن فهمنا أن الـ (Anti Viruses software) تتعرف على الملفات الضارة من خلال قيم وأكواد
في مترجم الفيجوال بيسك مثلا، عندما نقوم بعمل Form جديد ونضع عليه زر Button ومن
ثم ندرج Form2, بعدها نحاول ربط الزر الذي أدرجناه على Form1 بـالـ Form2
ليظهره،، سنقوم بكتابة الكود التالي في حالة عمل Click على الزر:
ونجرب تنفيذه لنرى أنه يعمل بشكل صحيح
الآن سنغير حرف معين في الكود
بهذا الشكل سنجرب تنفيذ البرنامج وقطعا لن يعمل وسيشير إلى خطأ
هذا فكرة ما يحدث عند تغير قيمة ست عشرية ويتعطل الخادم عن العمل، ذلك أن تلك القيمة التي قمت بتغيرها في الهيكس هي قيمة مترجمة من كود برمجي مهم في البرنامج.
Form2.show تُرجم إلى قيم ست عشرية وفي حال تم التغير في أحد هذه القيم سيؤثر هذا على الكود form2.show وهذا ما أردت توضيحه.
وفي حالة عمل تعليمة Jmp لذلك الكود يمكن التخلص من الخطأ(لا ينطبق على كل الفيروسات) ، والأمر هنا يحتاج معرفة بلغة الأسمبلي ..
وأيضا يمكن تتبع قيم أخرى في الهيكس لتلافي ظهور رسالة الخطأ
والتشفير الأمثل هو الذي يتعامل مع الاكواد البرمجية للفيرس بغض النظر عن القيم الست عشرية..
وهذا ما نلاحظه في سيرفر برورات 1.9 فيكس 10 حيث تختلف قيمه تماما عن سيرفر برورات 1.9 فيكس 18
إذ ان التشفير تعامل مع أكواد السيرفر مباشرة ولم يقم بتغير قيم معينة في الهيكس
ولا تناقض في وجود سبل أخرى لتخطي الخطأ.
السلام عليكم ورحمة الله وبركاته
حبيبي أنا عارف إني الوحيد إلي يمكن أسأل
أولا : الدرس والله شرحه واضح وجاء على الجرح
لكن على كلامك مستحيل نقدر نشفر الخادم عن Nod32
وإذا كان في طريقة كيف
ثانيا : أنا في كل الدروس العربية إلي دخلتها وقريتها عن التشفير بالهكس
يعتمدون على التخمين طيب مافي طريقة أو شيء يدل على إن هذه قيم ما تأثر إذا
غيرناها
تسلمون لمروركم أخواني
أخي العاطل أنا كنت أنتظر أي استفسار عشان نناقش فيه..وطبعا انا مو صاحب الموضوع وكاتبه الأصلي هو اِنتـAnti.Hackـهـاك من منتديات بوابة الخليج, ولا يمنع أن أرد لبعض الاستفسارات التي لربما يكون لي دراية بها..
((لكن على كلامك مستحيل نقدر نشفر الخادم عن Nod32 وإذا كان في طريقة كيف))
لا ما مستحيل، NOD32 غالبا إختياراته تكون لقيم حساسة بس مو دايم، وحتى لو كان اختار قيم
اذا تم تغيرها يتعطل الخادم ، هنا يمكن حل المشكلة بطرق مثل تتبع قيم أخرى في الخادم وتغيرها (كما في الدرس).
((أنا في كل الدروس العربية إلي دخلتها وقريتها عن التشفير بالهكس
يعتمدون على التخمين طيب مافي طريقة أو شيء يدل على إن هذه قيم ما تأثر إذا
غيرناها))
فعلا أخي ربما توجد طريقة، برنامج إسمه OllyDbg هذا البرنامج يستخدم لأغراض متقدمة مثل الهندسة العكسية(عن طريق أسمبلي)، أذكر أن به خاصية من خلالها تقدر تفصل قيم الهكس البيناتية عن البرمجية، و بحاول أوصل لكاتب الموضوع وإن شالله أسأله