القيم الست عشرية (Hex) ماهيتها تاريخها وشرح مبسط ومستفيض عنها

انتشرت في الآونة الأخيرة طرق تشفير الفيروسات والخوادم من برامج مكافحة الفيروسات، وتعتمد تلك الطرق على تغير رموز معينة في الفيروسات والخوادم تسمي القيم الست عشرية،،
سأحاول في هذا الموضوع أن عرض لكم ماهية هذه الرموز وطبيعتها…

ماهية القيم الست عشرية:

ذو قاعدة الـ16 (النظام الست عشري) أو (hexadecimal) وبشكل أبسط (Hex) هو نظام عددي مبني على 16رمز، وهذا النظام العددي يستخدم الأرقام من صفر(0) إلى (9) والحروف من (A) إلى (F)، في بدايته استخدم هذه النظام في عام 1963م من قبل شركة آي بي إم (IBM).

والحقيقة أن شركة أخرى استخدمت هذا النظام في 1956م غير أنه كان يعتمد على الحروف من (U) إلى (Z) بالإضافة إلى الأرقام.

على سبيل المثال العدد العشري (93) هو نفسه العدد (01011101) في نظام العد الثنائي وهذا العدد يمكن أن يكتب (5d) بالنظام الست عشري.

التمثيل الست عشري (Representing hexadecimal):

بعض أرقام النظام الست عشري (Hex) لا تختلف عن أرقام نظام العد العشري، لذلك عند كتابة مثل هذه الأرقام يوضع إشارة أو دليل يدل على نظام الكتابة، مثال:

في لغة السي واللغات الشبيهة (c++, c# and JAVA) يشار إلى القيم الست عشرية برمز استهلالي “0x” … مثال ذلك “0x5A3”.

وتميز لغة (HTML) رموز Hex كذلك باستخدام بادئة استهلالية هي x مثال ذلك (&#x5a3) هو نفسه (֣) في متصفح الانترنت!

والألوان في هذه اللغة تستهل بـ # ، مثل: “#FFFFFF” وهو ما نسميه كود اللون الأبيض.
وهكذا دواليك فلكل لغة برمجة رموز وطرق تميز من خلالها الرموز الست عشرية ولم يتفق على توحيد هذه الدلائل.

الاستخدامات:

غالبا ما تستخدم الرموز الست عشرية (Hex) في لغات البرمجة وخاصة لغتا HTML و CSS…
فهذه اللغات تستخدم ترميزا ستا عشريا لتحديد الألوان على صفحات الانترنت،، 24 بيتً من هذه الألوان يصاغ على هيئة #RRGGBB ، حيث يحدد RR قيمة للون الأحمر، و GG قيمة اللون الأخضر، وBB قيمة اللون الأزرق، فمثلا درجة اللون الأحمر تعطى بـ (238,9,63) في النظام العشري، بينما تصاغ كـ #EE093F في النظام الست عشري Hex .

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

والجدير بالذكر أنه يمكن تحويل لغة الآلة وأوامرها (1010001) التي تتكون من الرقمين صفر وواحد لأي برنامج كان إلى رموز ست عشرية (رموز هيكس) حيث يمكن التحويل بتمثيل كل موقع في السورس وهذا تماما ما تظهره محررات الهيكس أمثال Hex workshop

وكما رأينا أن الرموز الست عشرية تستخدم من قبل برامج مكافحة الفيروسات (anti viruses software) حيث تقوم هذه البرامج بتحديد مواقع معينة (في الرموز الست عشرية) لكل ملف غير حميد لكي تعرّف بهذه الطريقة أي ملف شبيه بهذا الملف كفيروس(طبعا مع الأخذ بالحسبان الحجم وغيره).

وكالعادة تدّخل المشفر ليغير هذه القيم الست عشرية (لكي يعمي أعين برامج الحماية من هذه الفيروسات ويمر هذا الفيروس منها مرور الكرام.

الآن فهمنا أن الـ (Anti Viruses software) تتعرف على الملفات الضارة من خلال قيم وأكواد مرتبطة ارتباطا مباشراً مع القيم الست عشرية لذلك الملف.

في دروس تعمية الخوادم والفيروسات من برامج الحماية التي انتشرت في المنتديات العربية، رأينا أنه لتضليل مكافح فيروسات مثل الـ(Norton) يلزم معرفة قيم معينة في الملف المراد تعميته، عند تغيير جزئي لهذه القيم يعطي الـ(Norton) رسالة بعدم وجود خطر في الملف.

وإذا كنت من المتابعين الجيدين سترى عدة مواضيع كانت تتحدث عن برنامج Bi frost وتم فيها تعمية (تشفير*) خادمه من برامج مكافحة الفيروسات أكثر من 30 مرة، حيث أنه كان في كل مرة يُعرَّف فيها الخادم ثانيةً يتم تغيير القيمة الجديدة - قد تكون أكثر من قيمة في كل مرة - وها نحن قد رأينا أخيرا موضوع انتشر في عدة منتديات أخرى بعنوان مركز التشفير* العربي وتم وضع باتش يغير أكثر من 133 قيمة في خادم Bi frost ليتم تعميته عن أكثر من 21 برنامج حماية.

مؤخراً مررت بموضوع في أحد المنتديات يشتكي من أحد برامج الحماية وأذكر أنه N O D32 وأن هذا المكافح يُعَرِّف قيم ست عشرية حساسة* في الخادم، بحيث يتضرر الخادم عند محاولة تغيير هذه القيم ولا يستطيع الإقلاع فالعمل.

ما تفسير تعطل الخادم عند تغيير قيم معينة، وعدم تضرره عند تغير قيم أخرى له؟

نستطيع تقسيم القيم الست عشرية للملفات إلى قسمين كالتالي:

الأولى: قيم ست عشرية بياناتية hex data
الثانية: قيم ست عشرية برمجية * hex codes

مع ملاحظة أن هناك برامج تضيف بايتات وهمية للملفات لتزيد من أحجامها وهذه البايتات (القيم) تكون فرعية لكن جزء منها يكون ترميزي وآخر بياناتي.

الموضوع بدأ يتضح الآن، لعلك جربت تعمية (تشفير*) فيروس معين من برنامج حماية ما، وقد نجحت في ذلك، يعني هذا الأمر أن القيم الست عشرية التي قمت بتغيرها تقع في قسم البيانات للفيروس أي أنك قمت بتغير بيانات وتسميات وقد تكون أوامر غير نشطة دائما لا تؤثر مباشرة (جذريا) في عمل ذلك الفيروس وهذا ما يفسر نجاح تشفير* خادم الـ Bi frost حيث أن جميع القيم التي تم تغييرها فيه لا ترتبط (مباشرة) بالأكواد البرمجية الخاصة به…

هنا مثال لقيم ست عشرية بياناتية في مترجم الفيجوال بيسك مثلا، عندما نقوم بعمل Form جديد ونضع عليه زر Button ومن ثم ندرج Form2, بعدها نحاول ربط الزر الذي أدرجناه على Form1 بـالـ Form2 ليظهره،، سنقوم بكتابة الكود التالي في حالة عمل Click على الزر:

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

تُرجم إلى قيم ست عشرية وفي حال تم التغير في أحد هذه القيم سيؤثر هذا على الكود form2.show وهذا ما أردت توضيحه.

وفي حالة عمل Jump لذلك الكود يمكن التخلص من الخطأ (لا ينطبق على كل الفيروسات) ، والأمر هنا يحتاج معرفة بلغة الأسمبلي …
وأيضا يمكن تتبع قيم أخرى في الهيكس لتلافي ظهور رسالة الخطأ ولا تناقض في وجود سبل أخرى لتخطي الخطأ.

بقلم أخوكم: اِنتـAnti.Hackـهـاك

وفي إنتظار استفساراتكم أو حتى انتقاداتكم
والسلام مسك الختام

إعجاب واحد (1)

السلام عليكم ورحمة الله وبركاته
اهلا بك اخى العزيز معنا وجزاك الله خيرا على ما تقدمه
فانت فعلا نعم الاعضاء لقد قمت بطرح مواضيع متميزة دون طلبات او استفسارات
جزاك الله خيرا ونتمنى منك الاستمرار
أخوك أحمد الديب

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

شكرا لك اخي العزيز موضوع متميز…

رائـــع بـ حق…!
واصل ونحن متابعون لكَ…:slight_smile:

شكرا على الموضوع الجميل واحلى ما فية انه مع الصور

many thanxxxxxxxxx

شكرا Level 1