مقال : شرح أساسيات الهندسة العكسية على تطبيقات Java
تحدثنا في العديد من المقالات السابقة عن الهندسة العكسية سواء كانت بشرح مفاهيم أو مصطلحات أو حتى تطبيقات عملية لبعض البرامج بشكل سريع , في هذا المقال إن شاء الله سوف نتحدث عن كيفية تحليل برنامج بسيط جداً مكتوب بلغة java وإستخراج السورس كود الخاص به , تفيدنا طبعاً هذه العملية بشكل كبير جداً في حال كنا نريد تحليل فايروس معين فنقوم بعمل هندسة عكسية وقرأة السورس كود الخاص به , وطبعاً تدخل عملية الهندسة العكسية بهذا الشكل للفايروسات ضمن مرحلة Static Malware analysis حيث تقوم بتحليل الملف ضار دون تشغيله من الأساس , أي أنك فقط تقوم بمحاولة عمل هندسة عكسية عليه أو حتى إستخراج بعض الأمور دون الحاجه لعمل هندسة عكسية.
كما ذكرت في هذا المقال إن شاء الله سوف نقوم بعمل هندسة عكسية على تطبيق بسيط مكتوب بلغة Java يطلب من المستخدم إدخال كلمة مرور وفي حال كانت الكلمة متطابقه يقوم بعرض معلومات معينه للمستخدم أما في حال كانت خاطئه سوف يقوم بطباعة رسالة خطأ لك , سوف نتعرف كيفية تطبيق الهندسة العكسية بشكل مباشر على هذا التطبيق وقرأة السورس كود الخاص به ومن ثم فهم عمله وبالنهاية إستخراج كلمة المرور الصحيحة.
حسناً كما نرى هذا هو البرنامج الخاص بنا والصور التالية توضح كيفية عمله :
الصورة التالية توضح ظهور شاشة تسألنا عن كلمة المرور.
وهذه الصورة توضح الخطأ الذي يظهر في حال قمنا بإدخال كلمة مرور خاطئه :
عندما طلب مني البرنامج إدخال كلمة المرور , قمت بإدخال رقم عشوائي فكانت النتيجة كما بالصورة الثانية.
الأن سوف نبدأ بتحليل البرنامج وسوف نحاول معرفة كلمة المرور الصحيحة , دعونا نلقي نظرة على البرنامج بإستعراض جميع الملفات الموجودة بمجلد العمل الحالي:
كما نشاهد إسم البرنامج الخاص بنا هو file.class ومن المعروف أن .class هي صيغة لتطبيقات java وطبعاً يكون هذا الملف مترجم من قبل مترجم لغة java وعليه فإننا لا نستطيع تصفحه من خلال محرر النصوص العادي وقرأة السورس كود الخاص بهذا البرنامج وهنا سوف يأتي دور الهندسة العكسية بمحاولة فهم ما يجري بالضبط وإستخراج السورس كود الخاص بهذا البرنامج.
طبعاً كما ذكرنا يتم تحويل السورس كود الخاص بالبرنامج إلى ملف جافا مترجم لا يمكن قرأته وهو بصيغة .class , هذه الصورة توضح ألية التحويل :
كما نشاهد يتم تحويل السورس كود بصيغة .java إلى برنامج مترجم بصيغة .class وهنا سوف يأتي دورنا بعكس هذه العملية وهذا ما سوف نقوم به من خلال برنامج Java Decompiler حيث يقوم بإستعراض السورس كود الخاص ببرنامج .class كسورس كود ملف جافا طبيعي.
من الممكن أن لا يظهر السورس كود ما هو بنسبة 100% ولكن يظهر بشكل برمجي منطقي كامل بأغلب الأحيان.
حسناً هذه صورة برنامج Java Decompiler بعد تشغيله , سوف أرفق رابط تحميل البرنامج بأسفل التدوينة.
سوف نقوم بالذهاب إلى file – open file ومن ثم إختبار file.class حيث سوف يظهر لنا التالي :
كما نشاهد إستطعنا قرأة السورس كود الخاص بالبرنامج وظهر لنا البرنامج بشكل بسيط جداً , حيث أننا نرى إستدعاء JOtionPane لكي يتم التعامل مع إدخال المستخدم وطباعة الرسائل وأيضاً نقوم بعمل تعريف للمتغير i ومقارنته مع ما يتم إدخاله مع المستخدم ومن ثم طباعة card number , حيث أن المتغير i يشكل كلمة المرور التي نبحث عنها وهي 741852963 , وفي حال قمنا بإدخال الرقم 741852963 سوف نحصل على التالي :
كما نشاهد تمكنا من قرأة المعلومات السرية التي تظهر للمستخدم فور إدخال كلمة المرور الصحيحة , وبهذا نكون قد قمنا بعملية هندسة عكسية بسيطة جداً على هذا البرنامج.
كما ذكرت مسبقاً أن السورس كود لا يكون دقيق 100% والصورة الحقيقة للسورس الخاص بالبرنامج توضح إختلاف بعض المتغيرات والأمور البسيطة.
بإذن الله سوف يكون هنالك شرح للمزيد من الأمور المتعلقه بالهندسة العكسية سواء كانت على تطبيقات سطح المكتب أم على تطبيقات Android إن شاء الله.
الموقع الرسمي ل Java Decompiler
مقال جميل
Any Application For Testing Bro
ماشاء الله وفقك الله اخي لاول مره اعجب في هكر عربي واتعلم منه وارفع له القبعة
سؤال جانبي هل يمكن اختبار دردشة طعون الصوتيه فهي تستخدم الجافا ولها مستخدمين بالالاف
مشكور خويا محمد عسكر
شرح مفيد
لماذا حذفتم المفالات السابقة ارجوك محمد عسكر اذا كان لديكم المقالات ارسلهم الي