recent
أخبار ساخنة

كيفية استخراج السورس كود لأي تطبيق والتعديل عليه | ماهي الهندسة العكسية في البرمجة

الصفحة الرئيسية


كيفية استخراج السورس كود لأي تطبيق والتعديل عليه | ما هي الهندسة العكسية في البرمجة




ما هي الهندسة العكسية في البرمجة:


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



تعريف اخر :


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




مرحبا بزوار ومتابعي مدونة هزام للمعلوميات

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


أحد أشهر الأمثلة على الهندسة العكسية هو ما تفعله شركة Phoenix Technology ومقرها سان خوسيه. أرادت الشركة إنتاج BIOS لأجهزة الكمبيوتر الخاصة بها حتى لا تواجه مشكلة قانونية لنسخ رمز BIOS من شركة IBM، وقد قامت بخدعة بسيطة: لقد جلبت فريقًا من المهندسين لدراسة الكود. وكان حجم الكود 8 كيلو بايت، وبعد أن فهموا كيفية عمله، قاموا بإحضار مجموعة أخرى من المبرمجين الذين لا يعرفون كود BIOS، وشرح لهم المهندسون ما كان من المفترض أن يفعلوه.




قام الفريق بعد ذلك بتطوير كود BIOS جديد كان مختلفًا تمامًا عن الكود السابق وعمل تمامًا كما هو متوقع.



ماهي (,اهمية الهندسة العكسية،)؟




للهندسة العكسية، فوائد عديدة، أبرزها:


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


هل تعلم أن بعض الأجهزة، مثل الطائرات بدون طيار، ستدمر نفسها إذا سقطت، مما يمنع التكنولوجيا من الوصول إلى أراضي العدو؟



المخاطر والقضايا الأخلاقية


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


أهم أداة الهندسة العكسية


تقوم هذه الأدوات بتحليل العمل من نموذج ثنائي من التعليمات البرمجية (مثل ملف exe أو apk) إلى لغة أقرب إلى الجهاز (مثل لغة التجميع).

تعد أداة Apktool واحدة من أفضل أدوات الهندسة العكسية مفتوحة المصدر لتطبيقات Android حيث يتم فك تشفير ملفات APK إلى برمجة التجميع وملفات بتنسيق smali. الأداة فريدة من نوعها في قدرتها على فك التعليمات البرمجية إلى مسارها الأصلي، وإعادة بنائها مع التعديلات، وتصحيح الأخطاء الطفيفة.
أيقونة ApkTool على كالي لينكس
IDA Pro هو برنامج الهندسة العكسية الأكثر شهرة لأنظمة تشغيل Windows، على عكس ApkTool، فهو أكثر تفاعلية ويحتوي على واجهة مستخدم رسومية.
JavaSnoop، أداة اختراق لتطبيقات Java.
WinHex هو محرر سداسي عشري يوفر مجموعة واسعة من الأدوات لتطوير Windows.
Dex2jar هي إحدى أدوات الهندسة العكسية الأساسية في توزيعة Kali Linux التي تسمح لك بتحويل ملفات APK إلى JARs ثم عرض الكود المصدري الخاص بها.
Dex2jar على كالي لينكس




يمكن استخدام هذه الأدوات في تطوير برامجك من خلال اقتباس الأفكار وطريقة العمل التي توفرها البرامج.



كيفية (استخراج السورس كود لأي تطبيق)والتعديل عليه(الهندسة العكسية)



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


الخطوة 1: فهم القوانين والأخلاقيات

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

الخطوة 2: ابحث عن المصدر

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

الخطوة 3: "استخراج السورس كود"

بمجرد العثور على مصدر التطبيق، يمكنك استخراج السورس كود إلى جهاز الكمبيوتر الخاص بك. يمكن استخدام أمر "git clone" إذا كنت تعمل على منصة مثل GitHub. إذا كنت تحصل على ملف مضغوط، قم بفك ضغطه على جهاز الكمبيوتر.
الخطوة 4: تهيئة البيئة

قبل البدء في التعديل على السورس كود، قد تحتاج إلى تهيئة بيئة التطوير. قد تحتاج إلى تثبيت الأدوات والبرامج المطلوبة وإعداد بيئة العمل.

الخطوة 5: الاستفادة من السورس كود

الآن، يمكنك استخدام السورس كود لفهم كيف يعمل التطبيق والبدء في تعديله. يمكنك تحرير الملفات المصدرية باستخدام محرر النص أو بيئة التطوير المفضلة لديك.

الخطوة 6: اختبار التعديلات

بعد إجراء التعديلات على السورس كود، قم بإجراء اختبارات للتحقق من أن التطبيق ما زال يعمل كما هو متوقع. يمكنك استخدام وحدات الاختبار (Unit Testing) لضمان استقرار التطبيق.

الخطوة 7: النشر والاستفادة


بمجرد الانتهاء من التعديلات والاختبارات، يمكنك نشر التطبيق المعدل إذا كنت مسموحًا بذلك. يمكنك أيضًا الاحتفاظ بالتعديلات للاستفادة الشخصية أو مشاركتها مع المجتمع المفتوح المصدر.



author-img
bakr_soft

تعليقات

ليست هناك تعليقات
إرسال تعليق

    matzamn2

    google-playkhamsatmostaqltradent