.Net Reflector لتعديل و كسر البرامج المبرمجة بالـ .Net



من مدة ليست ببعيدة بدأت أهتم بالهندسة العكسية وطرق كسر البرامج والتعديل عليها.. عالم ممتع جدا بصراحة وزاد اهتمامي به بشكل كبير في الآونة الأخيرة! تكلمت سابقا عن بعض البرامج والأدوات البسيطة وطريقة استخدامها يمكنكم أن تجدوها في التصنيف Reverse Engineering. اليوم سأتكلم عن برنامج رائع بكل معنى الكلمة يمكّننا من استعراض الكود المصدري وتعديل البرامج التي تمت برمجتها بلغة C# , Visual Basic.Net أو أي لغة برمجة أخرى تعمل باستخدام Microsoft .NET Framework!
شخصيا أرى أن القدرة على تعديل عمل برنامج ما والتغيير فيه دون وجود الكود المصدري يعتبر تحدي بحد ذاته لا يختلف كثيرا عن الاختراق والتحدي باختراق شبكة أو سيرفر ما على سبيل المثال. لكن ليس لكسر البرامج وصناعة الكركات فكما قلت سابقا هذه ليست غايتي من تعلّم الهندسة العكسية لأني أؤمن أن استخدام البرامج المفتوحة المصدر أو المجانية وشراء البرامج التجارية في حال لم يتوفر بديل قوي أفضل بكثير من استعمال البرامج المكسورة الحماية! الأمر ليس صعب والبرامج المجانية/المفتوحة المصدر ليست سيئة كما يعتقد البعض كل ماهنالك أنك ستحتاج لبعض الوقت حتى تنتقل من البرامج التي تستخدمها الى أخرى مجانية بدأً من أصغر برنامج تستخدمه وصولا لنظام التشغيل! (شخصيا مازلت أحاول ذلك بالنسبة للبرامج التي أستخدمها أثناء عملي على نظام Windows وأفكر جدّيا باعداة تنصيب النظام واعتماد البرامج الحرّة بشكل نهائي!)
شرحت البرنامج بالفيديو هذه المرة وتم الطبيق على برنامج بسيط قمت ببرمجته بلغة C#:



يطلب منا البرنامج ادخال الرقم السري كما هو موضح بالصورة السابقة. اذا كان الرقم الذي قمنا بادخاله صحيح ستظهر العبارة TRUE باللون الأخضر أما اذا كان الرقم خاطئ ستظهر العبارة WRONG باللون الأحمر! المثال بسيط جدا لكنه يظهر فكرة عمل البرنامج وهذا هو المهم أما ما يجب علينا عمله  هو معرفة الرقم السري أو جعل البرنامج يأخذ جميع الاحتمالات! سأستخدم مع البرنامج اضافة تدعى Reflexil لتمكننا من التعديل على البرنامج الذي نريد لأن البرنامج الأساسي يمكّننا من رؤية الكود المصدري فقط.


التحقيق الجنائي الرقمي باستخدام توزيعة DEFT 5





التحقيق الجنائي الرقمي (Digital Forensics) هو عمليّة جمع أكبر قدر للمعلومات والأدلّة من أجهزة الأشخاص المشتبه بهم للوصول الى الملفات المخفيّة واسترجاع الملفّات الّتي تم حذفها مسبقاً يتضمّن ذلك معرفة المواقع التي قام المشتبه به بفتحها واستخراج كلمات مرور الحسابات المخزّنة بالنظام. Digital Evidence & Forensic Toolkit أو DEFT اختصاراً هي توزيعة من نظام لينوكس مبنيّة على Xubuntu تحوي على أغلب الأدوات المفتوحة المصدر المستخدمة في عمليّة التحقيق الجنائي الرقمي ويمكننا اعتبارها من أفضل التوزيعات المتوفّرة لهذه المهمة.
التحقيق الجنائي الرقمي هو قسم لا يستهان به من الهاكر, الدخول به يتطلّب معرفة قويّة بعدّة أمور بدءً من كيفية عمل القرص الصلب وأنظمة الملفات المختلفة (ntfs, fat32, ext3… ) وكيف تقوم هذه الأنظمة بتخزين وأرشفة الملفّات, فك التشفير وكسر الخوارزميات, انتهاءً بمعرفة الأمور المتقدّمة والمنخفضة المستوى بأنظمة التشغيل وكيف يمكننا الوصول لمعلومات تفيدنا في تعقّب المشتبه به ومعرفة الأمور التي نفّذها على النظام.
قد يسأل شخص كيف يمكن استرجاع الملف بعد حذفه؟ لقد قمت بحذفه وافراغ سلّة المحذوفات أيضاً!
مهمّة التعامل مع الهارد هي وظيفة نظام التشغيل الذي تستخدمه وهذا الأمر يختلف بحسب نوع نظام الملفات المستخدم. حذفك للملف من النظام ليس بالضرورة يعني أنّه حذف من الهارد, قد يظهر النظام أنه حذف الملف وأزال اسمه من مستعرض الملفات لكن فعليّاً محتوياته مازالت موجودة ولم يتم الكتابة فوقها بعد ويمكن بقليل من الجهد عن طريق استخدام برامج وأدوات مختلفة استرجاع الملفّات التي قمت بحذفها. لأوضّح الفكرة أكثر لنفرض أنك تملك هارد بسعة 250 GB وقمت باستخدامه بشكل شبه كامل ثم قررت حذف 150 GB من الملفّات المخزّنة عليه, ماهي المدّة التي استغرقها نظام التشغيل لحذفهم؟ بضع ثوان صحيح؟ لماذا يستهلك نسخ 150 GB الى الهارد أضعاف أضعاف ذلك؟ ببساطة لأنك عندما حذفت الملفات حتى بعد افراغ سلّة المحذوفات النظام أزال أرشفتهم فقط ولم يقم بازالة محتوياتهم من الهارد وعندما تقوم بتعبئة الهارد مرّة أخرى سيتم الكتابة مكان الأماكن السابقة.
ماذا لو تم فرمتة الهارد كاملاً؟ هل من الممكن استعادة الملفات المحذوفة؟
فرمتة الهارد بشكل سريع تستغرق ثوان فقط! وفعليّاً هي لاتقوم بحذف شيء من الهارد بل تقوم باعداد جداول جديدة للأرشفة حسب نظام الملفات الذي اخترته وهذا يعني أننا نستطيع استرجاع الملفّات أيضاً حتى بعد الفرمتة, الا اذا استخدمت أدوات تقوم بـ “تصفير” الهارد أو كتابة معلومات عشوائية على كامل مساحة الهارد ثم فرمتته من جديدة, بهذه الحالة فقط لم يعد هنالك مجال لاستعادة المعلومات لأنها لم تعد موجودة أساساً.
في التحقيق الجنائي بالدول المتقدّمة (لا أعلم ان كان هذا الاختصاص موجود عربياً؟) غالباً يتم عمل نسخة طبق الأصل من الهارد باستخدام جهاز مخصص لهذه العمليّة (الجهاز ينسخ كل byte من الهارد وليس الملفات التي يظهرها نظام التشغيل فقط) ثم يتم استخدام برامج وأدوات خاصّة لمعرفة محتويات الهارد بشكل كامل واسترجاع الملفات التي تمّ حذفها سابقاً, لا يتم التعامل مع الهارد الأصلي بشكل مباشر ولا يتم العمل على نظام التشغيل المنصّب الّا من النسخة المأخوذة لكي لا يتم تغيير أي شيء أو تخريب الأدلّة والمعلومات الموجودة فيه.
ليس من الضروري استخدام الطريقة السابقة دائماً ففي الوقت الحالي أصبح بامكاننا استخدام احدى توزيعات نظام لينوكس للعمل من LiveCD أو ذاكرة USB واستخراج المعلومات التي نحتاجها وتخزينها على ذاكرة USB دون الحاجة لتشغيل النظام المنصّب بالجهاز أو تعديل أي شيء بالهارد لأن أنظمة التشغيل التي تعمل من LiveCD أو Live USB تنسخ الملفات التي تحتاجها الى ذاكرة الجهاز RAM وليس الى القرص الصلب.
أكبر خطأ في التحقيق الجنائي الرقمي هو تشغيل النظام المنصّب على الجهاز والعمل عليه مباشرة دون أخذ نسخة كاملة للهارد فاذا كان المتهم يملك خبرة برمجية بسيطة يستطيع برمجة برنامج يقوم بحذف الملفات بشكل تلقائي عند بدء التشغيل في حال لم تدخل كلمة مرور معيّنة أو توقف عمل البرنامج بعد بضع ثوان من بدء التشغيل مثلاً كذلك الأمر مع كلمات المرور فيمكن للمهاجم استخدام برنامج يقوم بفعل معيّن في حال أدخلت كلمة مرور خاطئة أو في حال أدخلت كلمة مرور مكشوفة! مخصصة لهذا الغرض (ورقة جانب اللابتوب كتب عليها My Password!! مثلا… )
قررت أن أستعرض احدى توزيعات نظام لينوكس بشكل سريع مع هذا الموضوع ووقع اختياري على توزيعة DEFT الايطاليّة, التوزيعة جميلة وخفيفة تستخدم LXDE كواجهة رسومية وتحتوي على أفضل الأدوات المفتوحة المصدر بهذا المجال.

عند اقلاع التوزيعة يمكنك تشغيل الواجهة الرسومية بتنفيذ الأمر:
startx
بعض الأدوات الموجودة في التوزيعة:



طبعاً هذه ليست كافة أدوات التحقيق الجنائي الموجودة في التوزيعة فكثير من البرامج والأدوات تعمل من سطر الأوامر لذلك لم يتم وضعهم قائمة الأدوات السابقة, يمكن الاطلاع على هذه الصفحة لمعرفة كافة الأدوات الموجودة في التوزيعة.
في التهاية ما يجب معرفته أن هذا الموضوع مجرّد مقدّمة بسيطة والطرق والأساليب المستخدمة في التحقيق الجنائي في تطوّر مستمر وتم تأليف كتب كاملة عن هذا الموضوع فالمحققين الجنائيين يطوّرون أدوات وبرامج وتقنيات جديدة لتسهّل لهم عملهم والهاكرز أيضاً يطوّرون برامج وأدوات مضادّة لذلك…