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

الهندسة العكسية (وتُعرف أيضًا بالهندسة الخلفية أو الهندسة العكسية ) هي عملية أو منهجية تُستخدم لفهم كيفية إنجاز جهاز أو عملية أو نظام أو برنامج مُصنَّع مسبقًا لمهمة ما، وذلك من خلال الاستدلال الاستنتاجي، مع معرفة ضئيلة (إن وُجدت) بكيفية أدائه لها. وبحسب النظام قيد الدراسة والتقنيات المُستخدمة، يُمكن للمعرفة المُكتسبة خلال الهندسة العكسية أن تُساعد في إعادة استخدام الأجهزة القديمة، أو إجراء تحليل أمني، أو فهم آلية عمل شيء ما. [ 1 ] [ 2 ] [ 3 ]
على الرغم من أن عملية الهندسة العكسية تختلف باختلاف الكائن الذي تُجرى عليه، إلا أن جميع عملياتها تتألف من ثلاث خطوات أساسية: استخلاص المعلومات، والنمذجة، والمراجعة. استخلاص المعلومات هو عملية جمع جميع المعلومات ذات الصلة لإجراء العملية. أما النمذجة فهي عملية دمج المعلومات المُجمعة في نموذج مجرد، يُمكن استخدامه كدليل لتصميم الكائن أو النظام الجديد. والمراجعة هي اختبار النموذج لضمان صحة النموذج المجرد المُختار. [ 4 ] تُطبّق الهندسة العكسية في مجالات هندسة الحاسوب ، والهندسة الميكانيكية ، والتصميم ، والهندسة الكهربائية والإلكترونية ، والهندسة المدنية ، والهندسة النووية ، وهندسة الطيران ، وهندسة البرمجيات ، والهندسة الكيميائية ، [ 5 ] وعلم الأحياء النظمي ، [ 6 ] وغيرها.
ملخص
تتعدد الأسباب التي تدفع إلى إجراء الهندسة العكسية في مختلف المجالات. تعود جذور الهندسة العكسية إلى تحليل الأجهزة لتحقيق مزايا تجارية أو عسكرية. [ 7 ] : 13 ومع ذلك، قد لا تقتصر عملية الهندسة العكسية دائمًا على إنشاء نسخة طبق الأصل أو تغيير المنتج بأي شكل من الأشكال. بل قد تُستخدم كجزء من تحليل لاستنتاج خصائص التصميم من المنتجات دون معرفة تُذكر، أو حتى بدون معرفة ، بالإجراءات المتبعة في إنتاجها الأصلي. [ 7 ] : 15
في بعض الحالات، قد يكون الهدف من عملية الهندسة العكسية مجرد إعادة توثيق الأنظمة القديمة . [ 7 ] : 15 [ 8 ] حتى عندما يكون المنتج المُهندس عكسيًا منتجًا لمنافس، قد لا يكون الهدف هو نسخه، بل إجراء تحليل للمنافس . [ 9 ] يمكن أيضًا استخدام الهندسة العكسية لإنشاء منتجات قابلة للتشغيل البيني ، وعلى الرغم من وجود بعض التشريعات الأمريكية والأوروبية المصممة خصيصًا لهذا الغرض، فقد كانت شرعية استخدام تقنيات الهندسة العكسية المحددة لهذا الغرض موضع جدل حاد في المحاكم حول العالم لأكثر من عقدين. [ 10 ]
يمكن أن تُسهم الهندسة العكسية للبرمجيات في تحسين فهم شفرة المصدر الأساسية لصيانة البرمجيات وتطويرها. إذ يُمكن استخلاص المعلومات ذات الصلة لاتخاذ قرارات تطوير البرمجيات، كما تُتيح التمثيلات الرسومية للشفرة رؤى بديلة حول شفرة المصدر، مما يُساعد في اكتشاف الأخطاء والثغرات البرمجية وإصلاحها . في كثير من الأحيان، ومع تطور بعض البرمجيات، تُفقد معلومات التصميم والتحسينات بمرور الوقت، ولكن يُمكن استعادة هذه المعلومات المفقودة عادةً من خلال الهندسة العكسية. كما تُساعد هذه العملية في تقليل الوقت اللازم لفهم شفرة المصدر، وبالتالي خفض التكلفة الإجمالية لتطوير البرمجيات. [ 11 ] تُساعد الهندسة العكسية أيضًا في اكتشاف وإزالة الشفرات الخبيثة المكتوبة في البرمجيات باستخدام أدوات كشف شفرات أكثر تطورًا. يُمكن استخدام الهندسة العكسية لشفرة المصدر لإيجاد استخدامات بديلة لها، مثل اكتشاف النسخ غير المصرح به لشفرة المصدر في غير موضعها المُخصص، أو الكشف عن كيفية بناء منتج منافس. [ 12 ] تُستخدم هذه العملية عادةً لـ "اختراق" البرامج والوسائط لإزالة حماية النسخ الخاصة بها ، [ 12 ] : 7 أو لإنشاء نسخة محسّنة أو حتى نسخة مقلدة ، وهو عادةً هدف المنافس أو المخترق. [ 12 ] : 8
كثيرًا ما يستخدم مطورو البرامج الضارة تقنيات الهندسة العكسية لاكتشاف الثغرات الأمنية في نظام التشغيل ، بهدف بناء فيروس حاسوبي يستغل هذه الثغرات. [ 12 ] : 5 كما تُستخدم الهندسة العكسية في تحليل الشفرات لاكتشاف الثغرات الأمنية في تشفير الاستبدال ، وخوارزمية المفتاح المتناظر ، أو تشفير المفتاح العام . [ 12 ] : 6
هناك استخدامات أخرى للهندسة العكسية:
- تُستخدم الهندسة العكسية في سياق الألعاب ومحركاتها غالبًا لفهم آلياتها الأساسية، وهياكل بياناتها، وبروتوكولاتها الخاصة، مما يسمح للمطورين بإنشاء تعديلات ، وأدوات مخصصة، أو تحسين التوافق. تُعد هذه الممارسة مفيدة بشكل خاص عند التفاعل مع الأنظمة الحالية لتحسين قابلية التشغيل البيني بين مكونات اللعبة المختلفة، أو محركاتها، أو منصاتها. توفر منصات مثل ResHax [ 13 ] أدوات وموارد تساعد في تحليل ملفات اللعبة الثنائية، وفهم سلوك محرك اللعبة، مما يُسهم في فهم أعمق لتقنية الألعاب، ويُمكّن من إجراء تحسينات مدفوعة من المجتمع.
- الربط البيني. يمكن استخدام الهندسة العكسية عندما يكون النظام بحاجة إلى الربط البيني مع نظام آخر، وعندها يُراد تحديد كيفية تفاوض النظامين. عادةً ما توجد مثل هذه المتطلبات لضمان قابلية التشغيل البيني .
- التجسس العسكري أو التجاري . قد يؤدي التعرف على أحدث أبحاث العدو أو المنافس عن طريق سرقة أو الاستيلاء على نموذج أولي وتفكيكه إلى تطوير منتج مماثل أو إجراء مضاد أفضل ضده.
- التقادم. غالبًا ما تُصمَّم الدوائر المتكاملة على أنظمة خاصة وتُصنَّع على خطوط إنتاج، ما يجعلها قديمة في غضون سنوات قليلة. عندما يتعذر صيانة الأنظمة التي تستخدم هذه المكونات لتوقف إنتاجها، فإن السبيل الوحيد لدمج وظائفها في تقنيات جديدة هو الهندسة العكسية للشريحة الحالية، ثم إعادة تصميمها باستخدام أدوات أحدث، مسترشدين بالفهم المُكتسب. ومن المشكلات الأخرى الناجمة عن التقادم، والتي يمكن حلها بالهندسة العكسية، الحاجة إلى دعم (صيانة وتوفير الإمداد اللازم للتشغيل المستمر) الأجهزة القديمة التي لم يعد يدعمها مُصنِّعها الأصلي . وتُعد هذه المشكلة بالغة الأهمية في العمليات العسكرية.
- تحليل أمن المنتج. يدرس هذا التحليل كيفية عمل المنتج من خلال تحديد مواصفات مكوناته وتقدير التكاليف، ويكشف عن أي انتهاك محتمل لبراءات الاختراع . كما يشمل تحليل أمن المنتج الحصول على بيانات حساسة عن طريق تفكيك وتحليل تصميم أحد مكونات النظام. [ 14 ] وقد يكون الهدف الآخر هو إزالة حماية النسخ أو التحايل على قيود الوصول.
- الاستخبارات التقنية التنافسية. أي فهم ما يفعله المنافس فعلياً، بدلاً من فهم ما يقول إنه يفعله.
- توفير المال. إن معرفة ما يمكن أن يفعله جهاز إلكتروني ما قد يغني المستخدم عن شراء منتج منفصل.
- إعادة الاستخدام . يتم بعد ذلك إعادة استخدام الأشياء القديمة بطريقة مختلفة ولكنها مفيدة.
- التصميم . طبّقت شركات الإنتاج والتصميم الهندسة العكسية على عمليات التصنيع الحرفية العملية. تستطيع هذه الشركات العمل على مجموعات التصنيع "التاريخية" من خلال المسح ثلاثي الأبعاد، وإعادة النمذجة ثلاثية الأبعاد، وإعادة التصميم. في عام 2013، قامت شركتا التصنيع الإيطاليتان بالدي وسافيو فيرمينو، بالتعاون مع جامعة فلورنسا، بتحسين عمليات الابتكار والتصميم والإنتاج لديهما. [ 15 ]
الاستخدامات الشائعة
الآلات
مع ازدياد شعبية التصميم بمساعدة الحاسوب (CAD)، أصبحت الهندسة العكسية أسلوبًا عمليًا لإنشاء نموذج افتراضي ثلاثي الأبعاد لجزء مادي موجود، لاستخدامه في برامج التصميم والتصنيع بمساعدة الحاسوب ( CAM) والهندسة بمساعدة الحاسوب (CAE) وغيرها من البرامج . [ 16 ] تتضمن عملية الهندسة العكسية قياس الجسم ثم إعادة بنائه كنموذج ثلاثي الأبعاد. يمكن قياس الجسم المادي باستخدام تقنيات المسح ثلاثي الأبعاد مثل آلات قياس الإحداثيات (CMM) ، والماسحات الضوئية الليزرية ، وأجهزة تحويل الضوء المهيكل ، أو التصوير المقطعي المحوسب الصناعي (CT ). تفتقر البيانات المقاسة وحدها، والتي تُمثل عادةً كسحابة نقاط ، إلى المعلومات الطوبولوجية وهدف التصميم. يمكن استعادة المعلومات الطوبولوجية بتحويل سحابة النقاط إلى شبكة مثلثية الأوجه . تهدف الهندسة العكسية إلى تجاوز مجرد إنتاج هذه الشبكة، واستعادة هدف التصميم من خلال أسطح تحليلية بسيطة عند الاقتضاء ( مستويات ، أسطوانات ، إلخ)، بالإضافة إلى أسطح NURBS إن أمكن ، لإنتاج نموذج CAD يُمثل حدود الجسم . تتيح استعادة مثل هذا النموذج تعديل التصميم لتلبية المتطلبات الجديدة، وإنشاء خطة تصنيع، وما إلى ذلك.
يُعدّ النمذجة الهجينة مصطلحًا شائع الاستخدام عند تطبيق نمذجة NURBS والنمذجة البارامترية معًا. ويمكن أن يوفر استخدام مزيج من الأسطح الهندسية والأسطح الحرة طريقة فعّالة للنمذجة ثلاثية الأبعاد . إذ يُمكن دمج مناطق البيانات الحرة مع الأسطح الهندسية الدقيقة لإنشاء نموذج هجين. ومن الأمثلة النموذجية على ذلك الهندسة العكسية لرأس أسطوانة، والتي تتضمن ميزات مصبوبة حرة الشكل، مثل قنوات التبريد ومناطق التشغيل الآلي عالية الدقة. [ 17 ]
تستخدم الشركات الهندسة العكسية أيضًا لنقل التصميم الهندسي المادي الموجود إلى بيئات تطوير المنتجات الرقمية، ولإنشاء سجل ثلاثي الأبعاد رقمي لمنتجاتها، أو لتقييم منتجات المنافسين. وتُستخدم لتحليل كيفية عمل المنتج، ووظيفته، ومكوناته؛ وتقدير التكاليف؛ وتحديد انتهاكات براءات الاختراع المحتملة ؛ وغير ذلك.
تتضمن هندسة القيمة ، وهي نشاط ذو صلة تستخدمه الشركات أيضاً، تفكيك المنتجات وتحليلها. ومع ذلك، فإن الهدف هو إيجاد فرص لخفض التكاليف.
لوحات الدوائر المطبوعة
تتضمن الهندسة العكسية للوحات الدوائر المطبوعة إعادة إنشاء بيانات التصنيع الخاصة بلوحة دوائر معينة. ويتم ذلك أساسًا لتحديد التصميم، وفهم خصائصه الوظيفية والهيكلية. كما يتيح اكتشاف مبادئ التصميم الكامنة وراء المنتج، خاصةً إذا لم تكن معلومات التصميم هذه متاحة بسهولة.
غالباً ما تخضع لوحات الدوائر المطبوعة القديمة للهندسة العكسية، لا سيما عندما تؤدي وظائف بالغة الأهمية مثل تشغيل الآلات أو المكونات الإلكترونية الأخرى. تتيح الهندسة العكسية لهذه الأجزاء القديمة إعادة بناء لوحة الدوائر المطبوعة إذا كانت تؤدي مهمة حيوية، فضلاً عن إيجاد بدائل تؤدي الوظيفة نفسها، أو ترقية لوحة الدوائر المطبوعة القديمة. [ 18 ]
تتبع عملية الهندسة العكسية للوحات الدوائر المطبوعة (PCBs) سلسلة خطوات متشابهة إلى حد كبير. أولًا، تُنشأ صور للوحة الدوائر المطبوعة عن طريق الرسم أو المسح الضوئي أو التصوير الفوتوغرافي. ثم تُنقل هذه الصور إلى برامج الهندسة العكسية المناسبة لإنشاء تصميم أولي للوحة الجديدة. وتتناسب جودة هذه الصور، اللازمة للهندسة العكسية الناجحة، طرديًا مع مدى تعقيد لوحة الدوائر المطبوعة نفسها. فلوحات الدوائر الأكثر تعقيدًا تتطلب صورًا بإضاءة جيدة على خلفيات داكنة، بينما يمكن إعادة إنشاء لوحات الدوائر البسيطة نسبيًا بمجرد تحديد الأبعاد الأساسية. تُعاد كل طبقة من طبقات لوحة الدوائر المطبوعة بعناية في البرنامج بهدف إنتاج تصميم نهائي أقرب ما يكون إلى التصميم الأولي. ثم تُنشأ المخططات الخاصة بالدائرة باستخدام أداة مناسبة. [ 19 ]
برمجة
في عام 1990، عرّف معهد مهندسي الكهرباء والإلكترونيات (IEEE) الهندسة العكسية للبرمجيات (SRE) بأنها "عملية تحليل نظام معين لتحديد مكوناته وعلاقاتها المتبادلة، وإنشاء تمثيلات له بصيغة أخرى أو بمستوى تجريد أعلى"، حيث يمثل "النظام المعني" الناتج النهائي لتطوير البرمجيات. تقتصر الهندسة العكسية على الفحص فقط، ولا يتم تعديل نظام البرمجيات قيد الدراسة، وهو ما يُعدّ إعادة هندسة أو إعادة هيكلة. ويمكن تطبيق الهندسة العكسية في أي مرحلة من مراحل دورة حياة المنتج، وليس بالضرورة من المنتج النهائي الوظيفي. [ 11 ]
يتألف الهندسة العكسية من عنصرين: إعادة التوثيق واستعادة التصميم. إعادة التوثيق هي إنشاء تمثيل جديد لرمز الحاسوب ليسهل فهمه. أما استعادة التصميم فهي استخدام الاستنتاج أو الاستدلال من المعرفة العامة أو الخبرة الشخصية بالمنتج لفهم وظائفه فهمًا كاملًا. [ 11 ] ويمكن أيضًا اعتبارها "العودة إلى الوراء عبر دورة التطوير". [ 20 ] في هذا النموذج، تُعاد هندسة مخرجات مرحلة التنفيذ (في شكل رمز المصدر) عكسيًا إلى مرحلة التحليل، في عكس نموذج الشلال التقليدي . ويُطلق على هذه التقنية أيضًا اسم فهم البرنامج . [ 8 ] يُعقد المؤتمر السنوي للهندسة العكسية (WCRE) لاستكشاف تقنيات الهندسة العكسية وتطويرها. [ 12 ] [ 21 ] وقد ساهمت هندسة البرمجيات بمساعدة الحاسوب (CASE) وتوليد الشفرة الآلي إسهامًا كبيرًا في مجال الهندسة العكسية. [ 12 ]
تُستخدم تقنيات مكافحة التلاعب بالبرمجيات، مثل التشفير، لردع الهندسة العكسية وإعادة هندسة البرمجيات الاحتكارية والأنظمة التي تعمل بالبرمجيات. عمليًا، يظهر نوعان رئيسيان من الهندسة العكسية. في الحالة الأولى، يكون رمز المصدر متاحًا بالفعل للبرنامج، ولكن يتم اكتشاف جوانب عالية المستوى منه، والتي قد تكون موثقة بشكل سيئ أو موثقة ولكنها لم تعد صالحة. أما في الحالة الثانية، فلا يتوفر رمز المصدر للبرنامج، وتُعتبر أي جهود لاكتشاف رمز مصدر محتمل له هندسة عكسية. الاستخدام الثاني للمصطلح هو الأكثر شيوعًا. يمكن للهندسة العكسية للبرمجيات الاستفادة من تقنية تصميم الغرفة النظيفة لتجنب انتهاك حقوق الملكية الفكرية.
وفي سياق متصل، يشترك اختبار الصندوق الأسود في هندسة البرمجيات في الكثير من الخصائص مع الهندسة العكسية. عادةً ما يمتلك المختبِر واجهة برمجة التطبيقات (API) ، لكن هدفه هو اكتشاف الأخطاء والميزات غير الموثقة من خلال اختبار المنتج من الخارج. [ 22 ]
وتشمل الأغراض الأخرى للهندسة العكسية التدقيق الأمني، وإزالة حماية النسخ (" الاختراق ")، والتحايل على قيود الوصول الموجودة غالبًا في الإلكترونيات الاستهلاكية ، وتخصيص الأنظمة المدمجة (مثل أنظمة إدارة المحرك)، والإصلاحات أو التحديثات الداخلية، وتمكين ميزات إضافية على الأجهزة "المعطلة" منخفضة التكلفة (مثل بعض شرائح بطاقات الرسومات)، أو حتى مجرد إشباع الفضول.
البرامج الثنائية
تُجرى الهندسة العكسية الثنائية عندما يكون رمز المصدر لبرنامج ما غير متوفر. [ 12 ] تُسمى هذه العملية أحيانًا هندسة الشفرة العكسية ، أو RCE. [ 23 ] على سبيل المثال، يمكن فك تجميع الملفات الثنائية لمنصة جافا باستخدام Jad. ومن أشهر حالات الهندسة العكسية أول تطبيق غير تابع لشركة IBM لنظام BIOS الخاص بالحاسوب الشخصي ، والذي أطلق صناعة الحواسيب الشخصية المتوافقة مع IBM، والتي هيمنت على سوق أجهزة الحاسوب لسنوات عديدة. وتحظى الهندسة العكسية للبرمجيات بحماية في الولايات المتحدة بموجب استثناء الاستخدام العادل في قانون حقوق النشر . [ 24 ] يُعد برنامج Samba ، الذي يسمح للأنظمة التي لا تعمل بنظام Microsoft Windows بمشاركة الملفات مع الأنظمة التي تعمل به، مثالًا كلاسيكيًا على الهندسة العكسية للبرمجيات [ 25 ]، حيث اضطر مشروع Samba إلى عكس هندسة معلومات غير منشورة حول كيفية عمل مشاركة الملفات في Windows حتى تتمكن أجهزة الحاسوب غير العاملة بنظام Windows من محاكاتها. ويقوم مشروع Wine بالشيء نفسه لواجهة برمجة تطبيقات Windows ، بينما تُعد OpenOffice.org إحدى الجهات التي تقوم بذلك لتنسيقات ملفات Microsoft Office . يُعد مشروع ReactOS أكثر طموحًا في أهدافه من خلال السعي لتوفير التوافق الثنائي (ABI و API) مع أنظمة تشغيل Windows الحالية من فرع NT، مما يسمح بتشغيل البرامج وبرامج التشغيل المكتوبة لنظام Windows على نظير برمجيات حرة (GPL) تم هندستها عكسيًا في بيئة نظيفة .
تقنيات البرمجيات الثنائية
يمكن إجراء الهندسة العكسية للبرمجيات باستخدام طرق متنوعة. وتشمل المجموعات الرئيسية الثلاث للهندسة العكسية للبرمجيات ما يلي:
- يُعدّ تحليل تبادل المعلومات من خلال الملاحظة أسلوبًا شائعًا في هندسة البروتوكولات العكسية، حيث يستخدم محللات ناقل البيانات وأدوات تحليل حزم البيانات ، مثل تلك المستخدمة للوصول إلى ناقل بيانات الحاسوب أو اتصال شبكة الحاسوب وكشف بيانات المرور عليه. بعد ذلك، يُمكن تحليل سلوك ناقل البيانات أو الشبكة لإنتاج تطبيق مستقل يُحاكي هذا السلوك. يُعدّ هذا مفيدًا بشكل خاص في هندسة برامج تشغيل الأجهزة العكسية. في بعض الأحيان، تُسهّل الأدوات التي يُقدّمها المُصنّع عمدًا، مثل منافذ JTAG أو وسائل تصحيح الأخطاء الأخرى، عملية الهندسة العكسية على الأنظمة المُدمجة . في نظام التشغيل مايكروسوفت ويندوز ، تحظى أدوات تصحيح الأخطاء منخفضة المستوى، مثل SoftICE، بشعبية واسعة.
- التفكيك باستخدام برنامج تفكيك ، أي قراءة لغة الآلة الخام للبرنامج وفهمها بمصطلحاتها الخاصة، فقط بمساعدة رموز لغة الآلة . يعمل هذا الأسلوب مع أي برنامج حاسوبي، ولكنه قد يستغرق وقتًا طويلاً، خاصةً لمن ليس لديهم خبرة في لغة الآلة. يُعد برنامج التفكيك التفاعلي أداة شائعة الاستخدام.
- فك التجميع باستخدام برنامج فك التجميع ، وهي عملية تحاول، بنتائج متفاوتة، إعادة إنشاء الكود المصدري بلغة عالية المستوى لبرنامج متوفر فقط بلغة الآلة أو بايت كود .
تصنيف البرمجيات
تصنيف البرمجيات هو عملية تحديد أوجه التشابه بين ملفات البرمجيات الثنائية المختلفة (مثل نسختين مختلفتين من نفس الملف الثنائي) المستخدمة للكشف عن العلاقات البرمجية بين عينات البرمجيات. كانت هذه المهمة تُنفذ يدويًا في السابق لعدة أسباب (مثل تحليل التصحيحات للكشف عن الثغرات الأمنية وانتهاكات حقوق الملكية الفكرية )، ولكن يمكن الآن تنفيذها بشكل شبه آلي لعدد كبير من العينات.
تُستخدم هذه الطريقة في الغالب لمهام الهندسة العكسية المطولة والشاملة (التحليل الكامل لخوارزمية معقدة أو برنامج ضخم). وبشكل عام، يُعتبر التصنيف الإحصائي مشكلة صعبة، وينطبق هذا أيضاً على تصنيف البرامج، ولذا فإن الحلول والأدوات التي تُجيد التعامل مع هذه المهمة قليلة.
شفرة المصدر
يشير عدد من أدوات UML إلى عملية استيراد وتحليل التعليمات البرمجية المصدرية لإنشاء مخططات UML باسم "الهندسة العكسية" .
على الرغم من أن لغة النمذجة الموحدة (UML) تُعدّ إحدى طرق "الهندسة العكسية"، فقد أدت التطورات الحديثة في أنشطة المعايير الدولية إلى تطوير نموذج اكتشاف المعرفة (KDM). يوفر هذا المعيار أنطولوجيا للتمثيل الوسيط (أو المجرد) لبنى لغات البرمجة وعلاقاتها المتبادلة. وباعتباره معيارًا لمجموعة إدارة الكائنات (ويجري العمل على اعتماده كمعيار ISO أيضًا)، فقد بدأ KDM يكتسب رواجًا في الصناعة مع تطوير أدوات وبيئات تحليل قادرة على استخراج وتحليل شفرة المصدر، والشفرة الثنائية، وشفرة البايت. بالنسبة لتحليل شفرة المصدر، تُمكّن بنية معايير KDM الدقيقة من استخراج تدفقات نظام البرمجيات (البيانات، والتحكم، وخرائط الاستدعاءات)، والبنى، ومعرفة طبقة الأعمال (القواعد، والمصطلحات، والعمليات). كما يُمكّن المعيار من استخدام تنسيق بيانات مشترك (XMI) يسمح بربط طبقات معرفة النظام المختلفة لإجراء تحليل مفصل (مثل السبب الجذري، والتأثير) أو تحليل مشتق (مثل استخراج عمليات الأعمال). على الرغم من أن الجهود المبذولة لتمثيل بنى اللغة قد تكون مستمرة بلا نهاية نظرًا لكثرة اللغات، والتطور المتواصل للغات البرمجيات، وظهور لغات جديدة، إلا أن المعيار يسمح باستخدام الإضافات لدعم مجموعة اللغات الواسعة والتطور المستمر. يتوافق KDM مع UML وBPMN وRDF وغيرها من المعايير، مما يتيح الانتقال إلى بيئات أخرى، وبالتالي الاستفادة من معرفة النظام في جهود مثل تحويل أنظمة البرمجيات وتحليل طبقة الأعمال المؤسسية.
البروتوكولات
البروتوكولات عبارة عن مجموعات من القواعد التي تصف تنسيقات الرسائل وكيفية تبادلها: آلة حالة البروتوكول . وبناءً على ذلك، يمكن تقسيم مشكلة الهندسة العكسية للبروتوكول إلى مشكلتين فرعيتين: تنسيق الرسائل والهندسة العكسية لآلة الحالة.
لطالما تم تحليل صيغ الرسائل عكسيًا يدويًا، وهو إجراء شاق يتضمن تحليل كيفية معالجة بروتوكولات معالجة الرسائل، إلا أن الأبحاث الحديثة اقترحت عددًا من الحلول الآلية. [ 26 ] [ 27 ] [ 28 ] عادةً، تقوم الأساليب الآلية بتجميع الرسائل المرصودة في مجموعات باستخدام تحليلات تجميع متنوعة ، أو تحاكي تطبيق البروتوكول من خلال تتبع معالجة الرسائل.
لم يُجرَ الكثير من العمل على الهندسة العكسية لآلات الحالة الخاصة بالبروتوكولات. عمومًا، يمكن تعلم آلات حالة البروتوكول إما من خلال عملية تعلم غير متصلة ، والتي تراقب الاتصال بشكل سلبي وتحاول بناء آلة الحالة الأكثر عمومية التي تقبل جميع تسلسلات الرسائل المرصودة، أو من خلال التعلم المتصل ، والذي يسمح بالتوليد التفاعلي لتسلسلات الرسائل التجريبية والاستماع إلى الاستجابات لتلك التسلسلات. من المعروف عمومًا أن التعلم غير المتصل لآلات الحالة الصغيرة هو مسألة NP-كاملة [ 29 ] ، بينما يمكن إجراء التعلم المتصل في وقت متعدد الحدود [ 30 ] . وقد عرض كومباريتي وآخرون [ 28 ] نهجًا آليًا غير متصل ، بينما عرض تشو وآخرون [ 31 ] نهجًا متصلًا.
يمكن أيضًا عكس هندسة مكونات أخرى من البروتوكولات النموذجية، مثل التشفير ووظائف التجزئة، تلقائيًا. عادةً، تتعقب الأساليب التلقائية تنفيذ تطبيقات البروتوكول وتحاول اكتشاف المخازن المؤقتة في الذاكرة التي تحتوي على حزم غير مشفرة. [ 32 ]
الدوائر المتكاملة/البطاقات الذكية
الهندسة العكسية هي شكلٌ من أشكال تحليل البطاقات الذكية ، يتسم بالتدخل والتدمير . يستخدم المهاجم مواد كيميائية لإزالة طبقات البطاقة الذكية طبقةً تلو الأخرى، ثم يلتقط صورًا باستخدام مجهر إلكتروني ماسح (SEM). تكشف هذه التقنية عن المكونات المادية والبرمجية الكاملة للبطاقة الذكية. تكمن المشكلة الرئيسية للمهاجم في إعادة ترتيب جميع المكونات بشكل صحيح لفهم آلية عملها. يحاول مصنّعو البطاقة إخفاء المفاتيح والعمليات عن طريق تغيير مواقع الذاكرة، كما في حالة تشويش ناقل البيانات. [ 33 ] [ 34 ]
في بعض الحالات، يُمكن حتى توصيل مسبار لقياس الفولتية أثناء تشغيل البطاقة الذكية. يستخدم مُصنّعو البطاقة أجهزة استشعار للكشف عن هذا الهجوم ومنعه. [ 35 ] هذا الهجوم ليس شائعًا جدًا لأنه يتطلب استثمارًا كبيرًا في الجهد ومعدات خاصة لا تتوفر عادةً إلا لكبار مُصنّعي الرقائق. علاوة على ذلك، فإن العائد من هذا الهجوم منخفض نظرًا لاستخدام تقنيات أمنية أخرى في كثير من الأحيان، مثل الحسابات الوهمية. لا يزال من غير المؤكد ما إذا كانت الهجمات على بطاقات الشريحة والرقم السري لنسخ بيانات التشفير ثم اختراق الأرقام السرية ستُشكّل هجومًا فعالًا من حيث التكلفة على المصادقة متعددة العوامل.
تتم عملية الهندسة العكسية الكاملة على عدة خطوات رئيسية.
تتمثل الخطوة الأولى بعد التقاط الصور باستخدام المجهر الإلكتروني الماسح في دمجها معًا، وهو أمر ضروري لأن كل طبقة لا يمكن تصويرها بلقطة واحدة. يحتاج المجهر الإلكتروني الماسح إلى مسح منطقة الدائرة والتقاط مئات الصور لتغطية الطبقة بأكملها. تستقبل عملية دمج الصور مئات الصور كمدخلات، وتُخرج صورة واحدة متطابقة تمامًا للطبقة بأكملها.
بعد ذلك، يجب محاذاة الطبقات المدمجة لأن العينة، بعد عملية الحفر، لا يمكن وضعها في نفس الموضع تمامًا بالنسبة للمجهر الإلكتروني الماسح في كل مرة. لذلك، لن تتداخل النسخ المدمجة بالشكل الصحيح كما هو الحال في الدائرة الحقيقية. عادةً، يتم اختيار ثلاث نقاط متناظرة، ويتم تطبيق تحويل بناءً على ذلك.
لاستخراج بنية الدائرة، يجب تقسيم الصور المتراصة والمجمعة، مما يسلط الضوء على الدوائر المهمة ويفصلها عن الخلفية غير المهمة والمواد العازلة.
وأخيرًا، يمكن تتبع الأسلاك من طبقة إلى أخرى، ويمكن إعادة بناء قائمة الشبكة الخاصة بالدائرة، والتي تحتوي على جميع معلومات الدائرة.
التطبيقات العسكرية
تُستخدم الهندسة العكسية غالبًا لنسخ تقنيات أو أجهزة أو معلومات دول أخرى، والتي حصلت عليها القوات النظامية في الميدان أو من خلال عمليات الاستخبارات . وقد شاع استخدامها خلال الحرب العالمية الثانية والحرب الباردة . فيما يلي بعض الأمثلة المعروفة من الحرب العالمية الثانية وما بعدها:
- عبوة جيري : لاحظت القوات البريطانية والأمريكية في الحرب العالمية الثانية أن الألمان يمتلكون عبوات بنزين ذات تصميم ممتاز. فقاموا بهندسة عكسية لنسخ تلك العبوات، والتي عُرفت شعبياً باسم "عبوات جيري".
- ناكاجيما G5N : في عام 1939، باعت شركة دوغلاس الأمريكية للطائرات نموذجها الأولي من طائرة الركاب DC-4E إلى الخطوط الجوية الإمبراطورية اليابانية ، التي كانت تعمل سرًا كواجهة للبحرية الإمبراطورية اليابانية ، التي كانت ترغب في امتلاك قاذفة استراتيجية بعيدة المدى ، لكن صناعة الطائرات اليابانية أعاقتها قلة خبرتها في مجال الطائرات الثقيلة بعيدة المدى. نُقلت طائرة DC-4E إلى شركة ناكاجيما للطائرات وفُككت لدراستها؛ وكغطاء، ذكرت الصحافة اليابانية أنها تحطمت في خليج طوكيو . [ 36 ] [ 37 ] نُسخت أجنحة ومحركات وعجلات هبوط طائرة G5N مباشرةً من طائرة DC-4E. [ 38 ]
- بانزرشريك : استولى الألمان على بازوكا أمريكية خلال الحرب العالمية الثانية وقاموا بهندسة عكسية لها لإنشاء البانزرشريك الأكبر حجماً.
- توبوليف تو-4 : في عام 1944، اضطرت ثلاث قاذفات أمريكية من طراز بي-29، كانت تقوم بمهام فوق اليابان، إلى الهبوط في الاتحاد السوفيتي . قرر السوفيت، الذين لم يكن لديهم قاذفة استراتيجية مماثلة، نسخ طائرة بي-29. وفي غضون ثلاث سنوات، طوروا طائرة تو-4، وهي نسخة شبه مثالية. [ 39 ]
- رادار SCR-584 : تم نسخه من قبل الاتحاد السوفيتي بعد الحرب العالمية الثانية، وهو معروف ببعض التعديلات - СЦР-584، Бинокль-Д.
- صاروخ V-2 : استولى الحلفاء الغربيون على الوثائق التقنية الخاصة بصاروخ V-2 والتقنيات ذات الصلة في نهاية الحرب. ركز الأمريكيون جهودهم في الهندسة العكسية من خلال عملية مشبك الورق ، مما أدى إلى تطوير صاروخ ريدستون PGM-11 . [ 40 ] استخدم السوفيت مهندسين ألمان تم أسرهم لإعادة إنتاج الوثائق والخطط التقنية، وانطلقوا من المعدات التي تم الاستيلاء عليها لصنع نسختهم من الصاروخ، R-1 . وهكذا بدأ برنامج الصواريخ السوفيتي بعد الحرب، والذي أدى إلى تطوير صاروخ R-7 وبداية سباق الفضاء .
- أصبح صاروخ K-13/R-3S ( اسم تعريف الناتو AA-2 Atoll)، وهو نسخة سوفيتية معدلة هندسياً عكسياً من صاروخ AIM-9 Sidewinder ، ممكناً بعد أن أصاب صاروخ AIM-9B تايواني (ROCAF) طائرة MiG-17 تابعة لجيش التحرير الشعبي الصيني دون أن ينفجر في سبتمبر 1958. [ 41 ] علق الصاروخ داخل هيكل الطائرة، وعاد الطيار إلى القاعدة ومعه ما سيصفه العلماء السوفييت بدورة جامعية في تطوير الصواريخ.
- صاروخ طوفان : في مايو 1975، تعثرت المفاوضات بين إيران وشركة هيوز لأنظمة الصواريخ بشأن الإنتاج المشترك لصواريخ BGM-71 TOW ومافريك بسبب خلافات حول هيكل التسعير، وأدت ثورة 1979 اللاحقة إلى إنهاء جميع خطط هذا الإنتاج المشترك. نجحت إيران لاحقًا في إعادة هندسة الصاروخ، وتنتج الآن نسختها الخاصة، وهي صاروخ طوفان.
- قامت الصين بهندسة عكسية للعديد من نماذج المعدات الغربية والروسية، بدءًا من الطائرات المقاتلة وصولًا إلى الصواريخ وسيارات هامفي ، مثل طائرات ميغ-15 و17 و19 و21 (التي أصبحت J-2 و5 و6 و7) وسو-33 (التي أصبحت J-15). [ 42 ]
- خلال الحرب العالمية الثانية، قام خبراء التشفير البولنديون والبريطانيون بدراسة أجهزة تشفير الرسائل الألمانية " إنجما " التي تم الاستيلاء عليها بحثًا عن نقاط ضعفها. ثم تمت محاكاة تشغيلها على أجهزة كهروميكانيكية تُعرف باسم " بومب "، والتي جربت جميع إعدادات التشفير الممكنة لأجهزة "إنجما"، مما ساعد في فك تشفير الرسائل المشفرة التي أرسلها الألمان.
- خلال الحرب العالمية الثانية أيضاً، قام علماء بريطانيون بتحليل وتعطيل سلسلة من أنظمة الملاحة اللاسلكية المتطورة التي استخدمها سلاح الجو الألماني (لوفتفافه) لتنفيذ مهام قصف موجهة ليلاً. وكانت التدابير البريطانية المضادة للنظام فعالة للغاية لدرجة أنه في بعض الحالات، تم توجيه الطائرات الألمانية بواسطة إشارات للهبوط في قواعد سلاح الجو الملكي البريطاني ، لاعتقادها أنها عادت إلى الأراضي الألمانية.
شبكات الجينات
طُبقت مفاهيم الهندسة العكسية في علم الأحياء أيضًا، وتحديدًا لفهم بنية ووظيفة شبكات تنظيم الجينات . فهي تُنظم تقريبًا كل جانب من جوانب السلوك البيولوجي، وتُمكّن الخلايا من القيام بالعمليات الفيزيولوجية والاستجابة للاضطرابات. ولذلك، يُعد فهم بنية وسلوك شبكات الجينات الديناميكي أحد أهم تحديات بيولوجيا الأنظمة، وله تداعيات عملية مباشرة في العديد من التطبيقات التي تتجاوز نطاق البحث الأساسي. [ 43 ]
توجد عدة طرق للهندسة العكسية لشبكات تنظيم الجينات باستخدام أساليب البيولوجيا الجزيئية وعلوم البيانات. وقد تم تقسيمها عمومًا إلى ست فئات: [ 44 ]

- تعتمد طرق التعبير المشترك على فكرة أنه إذا أظهر جينان نمط تعبير مشابه، فقد يكونان مرتبطين على الرغم من أنه لا يمكن استنتاج السببية ببساطة من التعبير المشترك.
- تُحلل طرق تسلسل الأنماط مُحفزات الجينات للعثور على نطاقات ارتباط عوامل النسخ المُحددة . إذا تم التنبؤ بأن عامل نسخ ما يرتبط بمُحفز جين مُعين، يُمكن افتراض وجود صلة تنظيمية.
- تقوم طرق الترسيب المناعي للكروماتين (ChIP) بدراسة الملف الجينومي الكامل لربط الحمض النووي لعوامل النسخ المختارة لاستنتاج شبكات الجينات اللاحقة لها.
- تنقل أساليب علم التماثل الجيني المعرفة المتعلقة بشبكة الجينات من نوع إلى آخر.
- تستخدم أساليب الأدبيات استخراج النصوص والبحث اليدوي لتحديد الروابط المفترضة أو المثبتة تجريبياً لشبكة الجينات.
- تستفيد طرق المركبات النسخية من المعلومات المتعلقة بالتفاعلات بين البروتينات بين عوامل النسخ، وبالتالي توسيع مفهوم شبكات الجينات ليشمل المركبات التنظيمية النسخية.
غالبًا ما يتم اختبار موثوقية الشبكات الجينية من خلال تجارب الاضطراب الجيني، متبوعةً بنمذجة ديناميكية، استنادًا إلى مبدأ أن إزالة عقدة واحدة من الشبكة لها تأثيرات متوقعة على وظائف العقد المتبقية. [ 45 ] تتراوح تطبيقات الهندسة العكسية للشبكات الجينية من فهم آليات فسيولوجيا النبات [ 46 ] إلى تسليط الضوء على أهداف جديدة لعلاج السرطان. [ 47 ]
التداخل مع قانون براءات الاختراع
تُطبق الهندسة العكسية بشكل أساسي على اكتساب فهم لعملية أو منتج لم يوضح فيه منشئه طريقة بنائه أو استخدامه أو عملياته الداخلية.
لا يشترط بالضرورة إجراء هندسة عكسية للمنتجات الحاصلة على براءات اختراع لدراستها، إذ يكمن جوهر براءة الاختراع في أن يقدم المخترعون إفصاحًا عامًا مفصلًا بأنفسهم، ويحصلون في المقابل على حماية قانونية للاختراع المعني. مع ذلك، قد يتضمن منتجٌ ما، مُصنَّع بموجب براءة اختراع واحدة أو أكثر، تقنيات أخرى غير حاصلة على براءة اختراع وغير مُفصَح عنها. في الواقع، يتمثل أحد الدوافع الشائعة للهندسة العكسية في تحديد ما إذا كان منتج منافس ينتهك براءة اختراع أو حقوق نشر .
الشرعية
الولايات المتحدة
في الولايات المتحدة، حتى لو كانت قطعة أثرية أو عملية محمية بموجب أسرار تجارية ، فإن الهندسة العكسية للقطعة الأثرية أو العملية غالباً ما تكون قانونية إذا تم الحصول عليها بشكل مشروع. [ 48 ]
أظهر التحليل القانوني أن الهندسة العكسية قد تُعتبر استخدامًا عادلًا عندما يكون الهدف هو دراسة كيفية عمل النظام، أو إجراء بحث أمني، بشرط عدم إعادة توزيع حقوق الملكية الفكرية [ 49 ]. وقد أوضحت أحكام المحاكم، مثل قضية سيجا إنتربرايزز المحدودة ضد أكوليد، أن الهندسة العكسية للوصول إلى العناصر الوظيفية غير المحمية للبرمجيات قد تكون قانونية بموجب مبدأ حقوق النشر الأمريكي. [ 50 ]
غالبًا ما يندرج الهندسة العكسية لبرامج الحاسوب تحت قانون العقود باعتباره خرقًا للعقد، فضلًا عن أي قوانين أخرى ذات صلة. ويعود ذلك إلى أن معظم اتفاقيات ترخيص المستخدم النهائي تحظرها صراحةً، وقد قضت المحاكم الأمريكية بأنه في حال وجود مثل هذه الشروط، فإنها تُبطل قانون حقوق النشر الذي يسمح بها صراحةً (انظر Bowers v. Baystate Technologies [ 51 ] [ 52 ] ). ووفقًا للمادة 103(و) من قانون الألفية الرقمية لحقوق النشر ( 17 USC § 1201(و) )، يجوز للشخص الذي يمتلك برنامجًا بشكل قانوني إجراء هندسة عكسية له والتحايل على حمايته إذا كان ذلك ضروريًا لتحقيق "التوافق التشغيلي"، وهو مصطلح يشمل على نطاق واسع الأجهزة والبرامج الأخرى التي يمكنها التفاعل معه واستخدامه، ونقل البيانات منه وإليه بطرق مفيدة. ويوجد استثناء محدود يسمح بمشاركة المعرفة المكتسبة بهذه الطريقة واستخدامها لأغراض التوافق التشغيلي. [ أ ]
الاتحاد الأوروبي
يُحكم توجيه الاتحاد الأوروبي رقم 2009/24 بشأن الحماية القانونية لبرامج الحاسوب، والذي حل محل توجيه سابق (1991)، [ 53 ] عملية الهندسة العكسية في دول الاتحاد الأوروبي . [ 54 ] [ ب ]
انظر أيضاً
- الهندسة العكسية بمساعدة الذكاء الاصطناعي – فرع من علوم الحاسوب
- آلية أنتيكيثيرا – حاسوب فلكي تناظري يوناني قديم
- الاستقراء العكسي – عملية الاستدلال العكسي بالتسلسل
- المقارنة المعيارية – مقارنة مؤشرات الأداء الرئيسية في قطاع معين
- محلل ناقل البيانات
- تشوندا – نوع من محركات هوندا. صفحات تعرض وصفًا موجزًا لأهداف إعادة التوجيه.
- الاستنساخ (في مجال الحوسبة) - نسخة طبق الأصل من نظام ما
- آلة قياس الإحداثيات (CMM) – جهاز لقياس هندسة الأجسام
- تحويل الشفرة – أسلوب يُستخدم في إخفاء البرمجيات
- محطة ألعاب Connectix الافتراضية
- التزييف – صنع نسخة أو تقليد يُعرض على أنه الأصل. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه
- تحليل الشفرات – دراسة تحليل أنظمة المعلومات بهدف اكتشاف جوانبها الخفية
- فك التجميع - برنامج يترجم الملف التنفيذي إلى شفرة مصدرية. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه.
- إعادة الصياغة - مجموعة من الإجراءات التحليلية في الكيمياء
- قانون الألفية الرقمية لحقوق المؤلف (DMCA) – قانون حقوق المؤلف في الولايات المتحدة لعام 1998
- برنامج تفكيك – برنامج حاسوبي لترجمة لغة الآلة إلى لغة التجميع
- دونجل – قطعة صغيرة من أجهزة الكمبيوتر
- الهندسة الجنائية – التحقيق في حالات الفشل المرتبطة بالتدخل القانوني
- التصوير المقطعي الصناعي – عملية التصوير المقطعي بمساعدة الحاسوب. صفحات تعرض أوصافًا موجزة للأهداف المراد إعادة توجيهها.
- أداة التفكيك التفاعلي – أداة هندسة البرمجيات العكسية
- نموذج ما وراء اكتشاف المعرفة – مواصفات مجموعة إدارة الكائنات
- الماسح الضوئي الليزري – مسح جسم أو بيئة لجمع بيانات عن شكله. صفحات تعرض أوصافًا موجزة لأهداف إعادة التوجيه.
- قائمة مواضيع الإنتاج
- محركات ليسترويد – شركة بريطانية مصنعة للآلات الزراعية. صفحات تعرض وصفًا موجزًا لأهداف إعادة التوجيه.
- محلل المنطق – جهاز اختبار إلكتروني يقيس إشارات متعددة من دائرة كهربائية
- راتب (فيلم) – فيلم خيال علمي وحركة أمريكي من إنتاج عام 2003 للمخرج جون وو
- إعادة الاستخدام – استخدام الشيء المخصص لغرض معين بطريقة بديلة
- الاستدلال الرجعي (التجريب الفكري) – حالة افتراضية
- الهندسة العكسية – مفهوم في تحليل النظم
- هندسة الرحلة ذهابًا وإيابًا
- علم آثار البرمجيات – دراسة تطبيقات البرمجيات القديمة
- قرصنة البرامج – تعديل البرامج، غالباً لاستخدامها مجاناً
- هندسة القيمة – تحليل هندسي يهدف إلى تحقيق أقصى نسبة بين الوظيفة والتكلفة
ملحوظات
- ↑ ينص القسم على ما يلي:(و) الهندسة العكسية.—(1) بالرغم من أحكام الفقرة الفرعية (أ)(1)(أ)، يجوز للشخص الذي حصل بشكل قانوني على حق استخدام نسخة من برنامج حاسوبي أن يتحايل على إجراء تقني يتحكم بشكل فعال في الوصول إلى جزء معين من ذلك البرنامج لغرض وحيد هو تحديد وتحليل عناصر البرنامج الضرورية لتحقيق قابلية التشغيل البيني لبرنامج حاسوبي تم إنشاؤه بشكل مستقل مع برامج أخرى، والتي لم تكن متاحة بسهولة من قبل للشخص الذي يقوم بالتحايل، وذلك في حدود ما لا تشكل فيه أي من أعمال التحديد والتحليل هذه انتهاكًا بموجب هذا الباب.(2) بالرغم من أحكام البندين (أ)(2) و(ب)، يجوز لأي شخص تطوير واستخدام وسائل تكنولوجية للتحايل على إجراء تكنولوجي، أو للتحايل على الحماية التي يوفرها إجراء تكنولوجي، وذلك لتمكين التحديد والتحليل بموجب الفقرة (1)، أو لغرض تمكين التشغيل البيني لبرنامج حاسوبي تم إنشاؤه بشكل مستقل مع برامج أخرى، إذا كانت هذه الوسائل ضرورية لتحقيق هذا التشغيل البيني، وذلك في حدود ما لا يشكل انتهاكًا بموجب هذا الباب.(3) يجوز إتاحة المعلومات التي تم الحصول عليها من خلال الأفعال المسموح بها بموجب الفقرة (1)، والوسائل المسموح بها بموجب الفقرة (2)، للآخرين إذا قام الشخص المشار إليه في الفقرة (1) أو (2)، حسب الحالة، بتوفير هذه المعلومات أو الوسائل فقط لغرض تمكين التشغيل البيني لبرنامج حاسوبي تم إنشاؤه بشكل مستقل مع برامج أخرى، وذلك في حدود ما لا يشكل انتهاكًا بموجب هذا الباب أو مخالفة للقانون المعمول به بخلاف هذا القسم.(4) لأغراض هذا القسم الفرعي، فإن مصطلح "قابلية التشغيل البيني" يعني قدرة برامج الكمبيوتر على تبادل المعلومات، وقدرة هذه البرامج على استخدام المعلومات التي تم تبادلها بشكل متبادل.
- ↑ ينص التوجيه على ما يلي:
يُعدّ النسخ أو الترجمة أو التعديل أو التحويل غير المصرح به لشكل الشفرة البرمجية التي أُتيحت بها نسخة من برنامج حاسوبي انتهاكًا للحقوق الحصرية للمؤلف. ومع ذلك، قد توجد ظروف يكون فيها نسخ الشفرة وترجمتها ضروريًا للحصول على المعلومات اللازمة لتحقيق التوافق التشغيلي لبرنامج مُنشأ بشكل مستقل مع برامج أخرى. لذا، يجب اعتبار أنه في هذه الظروف المحدودة فقط، يُعدّ قيام شخص يملك حق استخدام نسخة من البرنامج، أو القيام بذلك نيابةً عنه، أمرًا مشروعًا ومتوافقًا مع الممارسات العادلة، وبالتالي لا يتطلب إذنًا من صاحب الحق. يهدف هذا الاستثناء إلى تمكين ربط جميع مكونات نظام الحاسوب، بما في ذلك مكونات الشركات المصنعة المختلفة، لكي تعمل معًا. لا يجوز استخدام هذا الاستثناء من الحقوق الحصرية للمؤلف بطريقة تضر بالمصالح المشروعة لصاحب الحق أو تتعارض مع الاستخدام الطبيعي للبرنامج.
مراجع
- ↑ "ما هي الهندسة العكسية؟ وكيف تعمل؟" . موقع SearchSoftwareQuality . تاريخ الاسترجاع: 27 يوليو 2022 .
- ↑ "الهندسة العكسية" . ethics.csc.ncsu.edu . تم الاطلاع عليه بتاريخ 27 يوليو 2022 .
- ↑ غارسيا، خورخي (ديسمبر 2015). "تفكيك اللبنات: نموذج للهندسة العكسية والأساليب الاستدلالية التطبيقية" (ملف PDF) . Core.ac.uk. تاريخ الاسترجاع: 4 يونيو 2023 .
- ↑
:1خطأ في الاستشهاد: تم استدعاء المرجع المسمى ولكن لم يتم تعريفه مطلقًا (انظر صفحة المساعدة ). - ↑ ثاير، كين. "كيف تعمل الهندسة العكسية؟" . المواصفات العالمية . معهد مهندسي الكهرباء والإلكترونيات. تم الاطلاع عليه بتاريخ 26 فبراير 2018 .
- ↑ فيلافيردي، أليخاندرو ف.؛ بانغا، خوليو ر. (6 فبراير 2014). "الهندسة العكسية والتعرف في بيولوجيا الأنظمة: استراتيجيات، ووجهات نظر، وتحديات" . مجلة الجمعية الملكية للواجهات . 11 (91) 20130505. doi : 10.1098/rsif.2013.0505 . PMC 3869153. PMID 24307566 .
- 1 2 3 تشيكوفسكي، إي جيه وكروس، جيه إتش الثاني (1990). "الهندسة العكسية واستعادة التصميم: تصنيف". مجلة IEEE للبرمجيات . 7 (1): 13-17 . رمز Bibcode : 1990ISoft...7a..13C . doi : 10.1109/52.43044 . S2CID 16266661 .
- 1 2 دراسة استقصائية حول الهندسة العكسية وفهم البرامج. مايكل ل. نيلسون، 19 أبريل 1996، جامعة أولد دومينيون، علوم الحاسوب 551 - دراسة استقصائية في هندسة البرمجيات. arXiv : cs/0503068v1
- ↑ فينيش راجا؛ كيران ج. فرنانديز (2007). الهندسة العكسية: منظور صناعي . سبرينغر ساينس آند بيزنس ميديا. ص 3. ISBN 978-1-84628-856-2.
- ↑ جوناثان باند؛ ماسانوبو كاتوه (2011). واجهات قيد التجربة 2.0 . مطبعة معهد ماساتشوستس للتكنولوجيا. ص 136. ISBN 978-0-262-29446-1.
- 1 2 3 تشيكوفسكي، إي جيه؛ كروس، جيه إتش (يناير 1990). "الهندسة العكسية واستعادة التصميم: تصنيف" (ملف PDF) . مجلة IEEE للبرمجيات . 7 (1): 13-17 . رمز Bibcode : 1990ISoft...7a..13C . doi : 10.1109/52.43044 . S2CID 16266661. مؤرشف من الأصل (ملف PDF) في 17 أبريل 2018. تم الاطلاع عليه في 2 يوليو 2012 .
- 1 2 3 4 5 6 7 8 إيلام، إلداد (2005). الهندسة العكسية: أسرار الهندسة العكسية . جون وايلي وأولاده. ISBN 978-0-7645-7481-8.
- ↑ "ResHax" . ResHax . 12 نوفمبر 2025. تم الاطلاع عليه بتاريخ 19 نوفمبر 2025 .
- ↑ فريق عمل هندسة الإنترنت RFC 2828 مسرد مصطلحات أمن الإنترنت
- ↑ كاروفسكي، فالديمار؛ ترزسيلينسكي، ستيفان؛ مروجالسك، بياتا؛ دينيكولانتونيو، ماسيمو؛ روسي، إميليو (2018). التطورات في التصنيع وإدارة الإنتاج والتحكم في العمليات . ص 287-288 .
- ↑ فارادي، ت؛ مارتن، ر؛ كوكس، ج (1997). "الهندسة العكسية للنماذج الهندسية - مقدمة". التصميم بمساعدة الحاسوب . 29 (4): 255-268 . Bibcode : 1997CAD....29..255V . doi : 10.1016/S0010-4485(96)00054-1 .
- ↑ "الهندسة العكسية" . مادي رقمي .
- ↑ باتيل، سوريش (25 أغسطس 2022). "الهندسة العكسية للوحة الدوائر المطبوعة" . التصميم الإلكتروني . تم الاسترجاع في 1 فبراير 2024 .
- ↑ باتيل، سوريش (25 أغسطس 2022). "الهندسة العكسية للوحة الدوائر المطبوعة" . التصميم الإلكتروني . تم الاسترجاع في 1 فبراير 2024 .
- ↑ واردن، ر. (1992). إعادة استخدام البرمجيات والهندسة العكسية في الممارسة العملية . لندن، إنجلترا: تشابمان وهول. ص 283-305 .
- ↑ "المؤتمر العملي حول الهندسة العكسية (WCRE)" . uni-trier.de . قائمة مراجع علوم الحاسوب. مؤرشف من الأصل في 14 مارس 2017. تم الاطلاع عليه في 22 فبراير 2018 .
- ↑ شهباز، مزمل (2012). الهندسة العكسية واختبار مكونات البرمجيات ذات الصندوق الأسود: باستخدام تقنيات الاستدلال النحوي . دار لامبرت للنشر الأكاديمي. ISBN 978-3-659-14073-0.
- ↑ تشوفاكين، أنطون؛ سايروس بيكاري (يناير 2004). محارب الأمن ( الطبعة الأولى). أورايلي. مؤرشف من الأصل في 22 مايو 2006. تم الاسترجاع في 25 مايو 2006 .
- ↑ سامويلسون، باميلا وسكوتشمر، سوزان (2002). "قانون واقتصاديات الهندسة العكسية" . مجلة ييل للقانون . 111 (7): 1575-1663 . doi : 10.2307/797533 . JSTOR 797533. مؤرشف من الأصل في 15 يوليو 2010. تم الاطلاع عليه في 31 أكتوبر 2011 .
- ↑ "السامبا: مقدمة" . 27 نوفمبر 2001. تم الاطلاع عليه في 7 مايو 2009 .
- ↑ و. كوي، ج. كانان، و هـ. ج. وانغ. ديسكوفر: هندسة عكسية تلقائية للبروتوكولات من آثار الشبكة. في وقائع ندوة يوسينيكس الأمنية السادسة عشرة، الصفحات 1-14.
- ↑ و. كوي، م. بينادو، ك. تشين، هـ. ج. وانغ، و ل. إيرون-بريز. توبني: الهندسة العكسية التلقائية لتنسيقات الإدخال. في وقائع المؤتمر الخامس عشر لجمعية الحوسبة الآلية (ACM) حول أمن الحاسوب والاتصالات، الصفحات 391-402. جمعية الحوسبة الآلية، أكتوبر 2008.
- 1 2 ب. م. كومباريتي، ج. ووندراسيك، س. كرويجل، وإ. كيردا. بروسبكس: استخراج مواصفات البروتوكول. في وقائع ندوة IEEE الثلاثين للأمن والخصوصية لعام 2009، الصفحات 110-125، واشنطن، 2009. جمعية IEEE للحاسبات.
- ↑ غولد، إي (1978). "تعقيد تحديد هوية الآلة من البيانات المعطاة" . المعلومات والتحكم . 37 (3): 302-320 . doi : 10.1016/S0019-9958(78)90562-4 .
- ↑ د. أنغلوين (1987). "تعلم المجموعات المنتظمة من الاستعلامات والأمثلة المضادة" . المعلومات والحوسبة . 75 (2): 87-106 . doi : 10.1016/0890-5401(87)90052-6 .
- ↑ سي واي تشو، دي بابيتش، آر شين، ودي سونغ. الاستدلال وتحليل النماذج الرسمية لبروتوكولات التحكم والقيادة لشبكات الروبوتات ، مؤتمر ACM لعام 2010 حول أمن الحاسوب والاتصالات.
- ↑ بوليغلوت: الاستخراج التلقائي لتنسيق رسالة البروتوكول باستخدام التحليل الثنائي الديناميكي . ج. كاباليرو، هـ. ين، ز. ليانغ، ود. سونغ. وقائع المؤتمر الرابع عشر لجمعية الحوسبة الآلية حول أمن الحاسوب والاتصالات، الصفحات 317-329.
- ↑ فولفغانغ رانكل، فولفغانغ إيفينغ، دليل البطاقة الذكية (2004)
- ↑ تي. ويلز: البطاقات الذكية كوسيلة للدفع(2008)، ندوة ITS-Security Ruhr-Universität Bochum
- ↑ ديفيد سي. ماسكر: حماية واستغلال الملكية الفكرية في الإلكترونيات، مؤرشف بتاريخ 9 يوليو 2011 في أرشيف الإنترنت ، مؤتمرات IBC، 10 يونيو 1998
- ↑ فرانسيون، رينيه ج. (1988) [1979]. طائرات ماكدونيل دوغلاس منذ عام 1920. المجلد 1 ( الطبعة الثانية). أنابوليس، ماريلاند: مطبعة المعهد البحري. الصفحات 265-268 . ISBN 0-87021-428-4.
- ↑ ويستيل، فريمان (نوفمبر 1999). "آلات ضخمة، محركات ضخمة، ومشاكل أكبر: بناء أولى القاذفات الاستراتيجية التجريبية". القوة الجوية . 29 (6): 18، 49-50 .
- ↑ أنجيلوتشي، إنزو؛ ماتريكاردي، باولو (1978). - طائرات الحرب العالمية الثانية: المجلد 2. شيكاغو: راند ماكنالي وشركاه. ص 127. ISBN 0-528-88171-X.
- ^ ييم جوردون وفلاديمير ريجمانت، Tupolev Tu-4: Superfortress السوفيتية (هينكلي، المملكة المتحدة: ميدلاند، 2002).
- ↑ "صاروخ ريدستون" . centennialofflight.net . تم الاطلاع عليه بتاريخ 27 أبريل 2010 .
- ↑ "القوات الجوية الصينية: المفاهيم والأدوار والقدرات المتطورة"، مركز دراسات الشؤون العسكرية الصينية (الولايات المتحدة)، من منشورات جامعة الدفاع الوطني، ص 277
- ↑ تشاندراشيكار، س.، ر. ناجابا، ل. سونداريسان، ون .راماني. 2011. التكنولوجيا والابتكار في الصين: دراسة حالة لتطوير سبيكة فائقة أحادية البلورة لشفرات توربينات الطائرات، R4–11. المعهد الوطني للدراسات المتقدمة ISSSP، بنغالور. http://isssp.in/wp-content/uploads/2013/01/Technology-and-Innovation-in-China-A-case-Study-of-Single-Crystal4.pdf وديلون تشو، "طائرة مقاتلة صينية من طراز J-15: مسؤولون صينيون يدافعون عن المقاتلة الجديدة باعتبارها صينية الأصل، لكن لا تزال هناك تساؤلات"، موقع Mic، 16 ديسمبر/كانون الأول 2012، https://www.mic.com/articles/20270/china-j-15-fighter-jet-chinese-officials-defend-new-fighter-as-chinese-original-but-questions-remain as-chinese-original-but-questions-remain
- ↑ جيورجي، فيديريكو م. (2020). "الهندسة العكسية لشبكات الجينات: الجيل القادم". مجلة بيوشيميكا وبيوفيزيكا أكتا (BBA) - آليات تنظيم الجينات . 1863 ( 6) 194523. doi : 10.1016/j.bbagrm.2020.194523 . hdl : 11585/753853 . ISSN 1874-9399 . PMID 32145356. S2CID 212629142 .
- 1 2 ميركاتيلي، دانييلي؛ سكالامبرا، لورا؛ تريبولي، لوكا؛ راي، فورست؛ جيورجي، فيديريكو م. (2020). "موارد استدلال شبكة تنظيم الجينات: نظرة عامة عملية". بيوشيميكا إت بيوفيزيكا أكتا (BBA) - آليات تنظيم الجينات . 1863 (6) 194430. doi : 10.1016/j.bbagrm.2019.194430 . ISSN 1874-9399 . PMID 31678629. S2CID 207895066 .
- ↑ تيغنر، ج.؛ يونغ، م.ك.س.؛ هاستي، ج.؛ كولينز، ج.ج. (2003). "الهندسة العكسية لشبكات الجينات: دمج الاضطرابات الجينية مع النمذجة الديناميكية" . وقائع الأكاديمية الوطنية للعلوم . 100 (10): 5944-5949 . Bibcode : 2003PNAS..100.5944T . doi : 10.1073/pnas.0933416100 . ISSN 0027-8424 . PMC 156306. PMID 12730377 .
- ↑ فريدل، سويتلانا؛ أوساديل، بيورن؛ فون ويرن، نيكولاس؛ سرينيفاسولو، نيس (2012). "الهندسة العكسية: عنصر أساسي في بيولوجيا الأنظمة لكشف التفاعل المتبادل بين الإجهاد اللاأحيائي العالمي" . مجلة فرونتيرز إن بلانت ساينس . 3 : 294. Bibcode : 2012FrPS....3..294F . doi : 10.3389/fpls.2012.00294 . ISSN 1664-462X . PMC 3533172. PMID 23293646 .
- ↑ لوفيفر، سيلين؛ ريكهوف، غابرييل؛ كاليفانو، أندريا (2012). "الهندسة العكسية للشبكات التنظيمية البشرية" . مراجعات وايلي متعددة التخصصات: بيولوجيا الأنظمة والطب . 4 (4): 311-325 . doi : 10.1002/wsbm.1159 . ISSN 1939-5094 . PMC 4128340. PMID 22246697 .
- ↑ "أسرار التجارة 101"، مقال رئيسي، مارس 2011. الجمعية الأمريكية للمهندسين الميكانيكيين. تم الاطلاع عليه بتاريخ 31 أكتوبر 2013.
- ↑ سامويلسون، ب. (2003). "الهندسة العكسية بموجب قانون حقوق النشر". اتصالات ACM، 46(8)، 15-20.
- ↑ Sega Enterprises Ltd. v. Accolade, Inc. , 977 F.2d 1510 (محكمة الاستئناف الأمريكية للدائرة التاسعة 1992).
- ↑ مناقشة قضية Baystate ضد Bowers . Utsystem.edu. تم الاطلاع عليها بتاريخ 29-05-2011.
- ↑ غروس، غرانت. (26-06-2003) قضية عقدية قد تضر بالهندسة العكسية | عالم المطورين . إنفوورلد. تم الاطلاع عليه بتاريخ 29-05-2011.
- ↑ توجيه المجلس 91/250/EEC الصادر في 14 مايو 1991 بشأن الحماية القانونية لبرامج الحاسوب
- ↑ التوجيه 2009/24/EC الصادر عن البرلمان الأوروبي والمجلس بتاريخ 23 أبريل 2009 بشأن الحماية القانونية لبرامج الحاسوب (النسخة المدونة)
مصادر
- إيلام، إلداد (2005). الهندسة العكسية: أسرار الهندسة العكسية . دار نشر وايلي . ص 595. ISBN 978-0-7645-7481-8.
- إلفيدج، جوليا، "استخدام الهندسة العكسية لاكتشاف انتهاك براءات الاختراع"، تشيب وركس، سبتمبر 2010. متاح على الإنترنت: http://www.photonics.com/Article.aspx?AID=44063
- سيبريسو، تيودورو (2009). "تعليم هندسة البرمجيات العكسية" . رسالة ماجستير، جامعة ولاية سان خوسيه . تم الاطلاع عليها بتاريخ 22 أغسطس 2009 .
- هاوسي أ. مولر وهولجر م. كينلي، "مقدمة موجزة في الهندسة العكسية للبرمجيات"، تقرير فني، جامعة فيكتوريا، ١٧ صفحة، مارس ٢٠٠٩. متاح على الإنترنت: http://holgerkienle.wikispaces.com/file/view/MK-UVic-09.pdf
- هاينز، هنري، "تحديد التعدي عن طريق حيود الأشعة السينية"، عملية الهندسة الكيميائية ، يناير 1999 (مثال على الهندسة العكسية المستخدمة للكشف عن التعدي على الملكية الفكرية)
- هوانغ، أندرو (2003). اختراق إكس بوكس: مقدمة في الهندسة العكسية . دار نشر نو ستارش . رقم ISBN 978-1-59327-029-2.
- جيمس، ديك (19 يناير 2006). "الهندسة العكسية توفر معرفة بالمنتج؛ وتساعد على نشر التكنولوجيا" . التصميم الإلكتروني . بنتون ميديا، إنك . تم الاطلاع عليه في 3 فبراير 2009 .
- ميسلر، روبرت (2013). الهندسة العكسية: الآليات، والهياكل، والأنظمة، والمواد . ماكجرو هيل . ISBN 978-0-07-182516-0.(مقدمة عن تفكيك الأجهزة، بما في ذلك المنهجية والأهداف)
- راجا، فينيش؛ فرنانديز، كيران ج. (2008). الهندسة العكسية - منظور صناعي . سبرينغر . ص 242. ISBN 978-1-84628-855-5.
- سامويلسون، باميلا وسكوتشمر، سوزان، "قانون واقتصاديات الهندسة العكسية"، مجلة ييل للقانون، المجلد 111، ص 1575 (2002). متاح على الإنترنت: http://people.ischool.berkeley.edu/~pam/papers/l&e%20reveng3.pdf
- شولمان، أندرو؛ براون، رالف د .؛ ماكسي، ديفيد؛ ميشيلز، ريموند ج.؛ كايل، جيم (1994) [نوفمبر 1993]. نظام التشغيل DOS غير الموثق: دليل المبرمج لوظائف MS-DOS المحجوزة وهياكل البيانات - موسع ليشمل MS-DOS 6 وNovell DOS وWindows 3.1 ( الطبعة الثانية). ريدينغ، ماساتشوستس: أديسون ويسلي . الصفحات 229-241 . ISBN 0-201-63287-X.(xviii+856+vi صفحات، قرص مرن 3.5 بوصة) تصحيحات:(ملاحظة: حول المنهجية العامة للهندسة العكسية، المطبقة على برامج السوق الشامل: برنامج لاستكشاف نظام التشغيل DOS وتفكيك نظام التشغيل DOS.)
- شولمان، أندرو؛ وآخرون (1992). نوافذ غير موثقة: دليل المبرمج لوظائف واجهة برمجة تطبيقات مايكروسوفت ويندوز المحجوزة . أديسون ويسلي . ISBN 978-0-201-60834-2.(الصفحات 59-188 حول المنهجية العامة للهندسة العكسية، المطبقة على برامج السوق الشامل: فحص الملفات التنفيذية لنظام التشغيل ويندوز، وتفكيك نظام التشغيل ويندوز، وأدوات استكشاف نظام التشغيل ويندوز)
- شولمان، أندرو، "الاختباء في وضح النهار: استخدام الهندسة العكسية لكشف انتهاكات براءات اختراع البرمجيات"، مجلة الملكية الفكرية اليوم ، نوفمبر 2010. متاح على الإنترنت: http://www.iptoday.com/issues/2010/11/hiding-in-plain-sight-using-reverse-engineering-to-uncover-software-patent-infringement.asp
- شولمان، أندرو، "مفتوح للتفتيش: استخدام الهندسة العكسية للكشف عن التقنيات البرمجية السابقة"، مجلة نيو ماتر (قسم الملكية الفكرية بنقابة المحامين بولاية كاليفورنيا)، صيف 2011 (الجزء 1)؛ خريف 2011 (الجزء 2). متاح على الإنترنت: http://www.SoftwareLitigationConsulting.com
- ثوم، مايك (2007). "تكتيكات الحديث" (ملف PDF) . مؤتمر IEEE للدوائر المتكاملة المخصصة لعام 2007 (CICC) . IEEE، Inc. تم الاطلاع عليه في 3 فبراير 2009 .
- الهندسة العكسية
- تجسس
- قانون براءات الاختراع
- الهندسة الصناعية
- الذكاء التقني
- السباقات التكنولوجية
- مسائل NP-كاملة
- هندسة الأمن السيبراني
