الهندسة العكسية
تتضمن هذه المقالة قائمة بالمراجع العامة ، لكنها تفتقر إلى الاستشهادات المضمنة الكافية . ( يناير 2018 ) |
الهندسة العكسية (المعروفة أيضًا باسم الهندسة العكسية أو الهندسة الخلفية ) هي عملية أو طريقة يحاول من خلالها المرء أن يفهم من خلال الاستدلال الاستنتاجي كيف يقوم جهاز أو عملية أو نظام أو قطعة من البرامج المصنعة مسبقًا بإنجاز مهمة مع القليل جدًا (إن وجد) من البصيرة في كيفية القيام بذلك بالضبط. اعتمادًا على النظام قيد النظر والتقنيات المستخدمة، يمكن أن تساعد المعرفة المكتسبة أثناء الهندسة العكسية في إعادة استخدام الأشياء القديمة أو إجراء تحليل أمني أو تعلم كيفية عمل شيء ما. [1] [2] [3]
على الرغم من أن العملية خاصة بالكائن الذي يتم إجراؤها عليه، فإن جميع عمليات الهندسة العكسية تتكون من ثلاث خطوات أساسية: استخراج المعلومات والنمذجة والمراجعة. استخراج المعلومات هو ممارسة جمع كل المعلومات ذات الصلة لأداء العملية. النمذجة هي ممارسة دمج المعلومات المجمعة في نموذج مجرد، يمكن استخدامه كدليل لتصميم الكائن أو النظام الجديد. المراجعة هي اختبار النموذج للتأكد من صحة الملخص المختار. [ 1] الهندسة العكسية قابلة للتطبيق في مجالات هندسة الكمبيوتر والهندسة الميكانيكية والتصميم والهندسة الإلكترونية وهندسة البرمجيات والهندسة الكيميائية [4] وعلم الأحياء النظمي . [5]
ملخص
هناك العديد من الأسباب لإجراء الهندسة العكسية في مجالات مختلفة. تعود أصول الهندسة العكسية إلى تحليل الأجهزة لتحقيق ميزة تجارية أو عسكرية. [6] : 13 ومع ذلك، قد لا تكون عملية الهندسة العكسية معنية دائمًا بإنشاء نسخة أو تغيير القطعة الأثرية بطريقة ما. يمكن استخدامها كجزء من التحليل لاستنتاج ميزات التصميم من المنتجات مع القليل من المعرفة الإضافية أو بدونها حول الإجراءات المتضمنة في إنتاجها الأصلي. [6] : 15
في بعض الحالات، قد يكون هدف عملية الهندسة العكسية ببساطة إعادة توثيق الأنظمة القديمة . [6] : 15 [7] حتى عندما يكون المنتج الذي تمت هندسته عكسيًا منتجًا لمنافس، فقد لا يكون الهدف هو نسخه ولكن إجراء تحليل للمنافس . [8] يمكن أيضًا استخدام الهندسة العكسية لإنشاء منتجات قابلة للتشغيل المتبادل وعلى الرغم من بعض التشريعات المصممة بشكل ضيق في الولايات المتحدة والاتحاد الأوروبي، فإن شرعية استخدام تقنيات الهندسة العكسية المحددة لهذا الغرض كانت محل نزاع ساخن في المحاكم في جميع أنحاء العالم لأكثر من عقدين من الزمن. [9]
يمكن أن تساعد الهندسة العكسية للبرمجيات في تحسين فهم الكود المصدر الأساسي لصيانة وتحسين البرنامج، ويمكن استخراج المعلومات ذات الصلة لاتخاذ قرار بشأن تطوير البرنامج ويمكن أن توفر التمثيلات الرسومية للكود وجهات نظر بديلة فيما يتعلق بالكود المصدر، مما قد يساعد في اكتشاف وإصلاح خطأ أو ثغرة في البرنامج . في كثير من الأحيان، مع تطوير بعض البرامج، غالبًا ما تُفقد معلومات التصميم والتحسينات الخاصة بها بمرور الوقت، ولكن يمكن عادةً استرداد هذه المعلومات المفقودة من خلال الهندسة العكسية. يمكن أن تساعد العملية أيضًا في تقليل الوقت المطلوب لفهم الكود المصدر، وبالتالي تقليل التكلفة الإجمالية لتطوير البرنامج. [10] يمكن أن تساعد الهندسة العكسية أيضًا في اكتشاف وإزالة الكود الضار المكتوب للبرنامج باستخدام أجهزة كشف الكود الأفضل. يمكن استخدام عكس الكود المصدر للعثور على استخدامات بديلة للكود المصدر، مثل اكتشاف التكرار غير المصرح به للكود المصدر حيث لم يكن من المقصود استخدامه، أو الكشف عن كيفية بناء منتج منافس. [11] تُستخدم هذه العملية عادةً في "اختراق" البرامج والوسائط لإزالة حماية النسخ الخاصة بها ، [11] : 7 أو لإنشاء نسخة محسنة أو حتى تقليد ، وهو ما يكون عادةً هدف المنافس أو المخترق. [11] : 8
غالبًا ما يستخدم مطورو البرامج الضارة تقنيات الهندسة العكسية للعثور على نقاط ضعف في نظام التشغيل لبناء فيروس كمبيوتر يمكنه استغلال نقاط ضعف النظام. [11] : 5 تُستخدم الهندسة العكسية أيضًا في تحليل التشفير للعثور على نقاط ضعف في تشفير الاستبدال أو خوارزمية المفتاح المتماثل أو تشفير المفتاح العام . [11] : 6
هناك استخدامات أخرى للهندسة العكسية:
- الربط . يمكن استخدام الهندسة العكسية عندما يكون من المطلوب أن يتفاعل نظام مع نظام آخر، ويجب تحديد كيفية تعامل كلا النظامين. توجد مثل هذه المتطلبات عادةً من أجل التشغيل المتبادل .
- التجسس العسكري أو التجاري . قد يؤدي التعرف على أحدث أبحاث العدو أو المنافس من خلال سرقة نموذج أولي أو الاستيلاء عليه وتفكيكه إلى تطوير منتج مماثل أو اتخاذ تدابير أفضل لمواجهته.
- التقادم . غالبًا ما يتم تصميم الدوائر المتكاملة على أنظمة خاصة وبناءها على خطوط إنتاج، والتي تصبح قديمة في غضون بضع سنوات فقط. عندما لا يمكن صيانة الأنظمة التي تستخدم تلك الأجزاء نظرًا لأن الأجزاء لم تعد تُصنع، فإن الطريقة الوحيدة لدمج الوظيفة في التكنولوجيا الجديدة هي إجراء هندسة عكسية للشريحة الحالية ثم إعادة تصميمها باستخدام أدوات أحدث باستخدام الفهم المكتسب كدليل. مشكلة أخرى ناجمة عن التقادم يمكن حلها عن طريق الهندسة العكسية وهي الحاجة إلى دعم (الصيانة والإمداد للتشغيل المستمر) الأجهزة القديمة الموجودة التي لم تعد مدعومة من قبل الشركة المصنعة لمعداتها الأصلية . هذه المشكلة بالغة الأهمية بشكل خاص في العمليات العسكرية.
- تحليل أمان المنتج . والذي يفحص كيفية عمل المنتج من خلال تحديد مواصفات مكوناته وتقدير التكاليف وتحديد انتهاكات براءات الاختراع المحتملة . كما يعد الحصول على بيانات حساسة من خلال تفكيك وتحليل تصميم أحد مكونات النظام جزءًا من تحليل أمان المنتج. [12] قد يكون القصد الآخر هو إزالة حماية النسخ أو التحايل على قيود الوصول.
- الاستخبارات التقنية التنافسية . أي فهم ما يفعله المنافس بالفعل، وليس ما يقوله المنافس عن نفسه.
- توفير المال . إن معرفة ما يمكن أن تفعله قطعة إلكترونية قد يوفر على المستخدم شراء منتج منفصل.
- إعادة الاستخدام . يتم بعد ذلك إعادة استخدام الأشياء القديمة بطريقة مختلفة ولكنها مفيدة.
- التصميم . طبقت شركات الإنتاج والتصميم الهندسة العكسية على عملية التصنيع القائمة على الحرف اليدوية العملية. يمكن للشركات العمل على مجموعات التصنيع "التاريخية" من خلال المسح الضوئي ثلاثي الأبعاد وإعادة النمذجة ثلاثية الأبعاد وإعادة التصميم. في عام 2013، قامت شركات التصنيع الإيطالية Baldi و Savio Firmino بالتعاون مع جامعة فلورنسا بتحسين عمليات الابتكار والتصميم والإنتاج الخاصة بها. [13]
الاستخدامات الشائعة
الآلات
مع تزايد شعبية التصميم بمساعدة الكمبيوتر (CAD)، أصبحت الهندسة العكسية طريقة قابلة للتطبيق لإنشاء نموذج افتراضي ثلاثي الأبعاد لجزء مادي موجود للاستخدام في CAD ثلاثي الأبعاد أو CAM أو CAE أو برامج أخرى . [14] تتضمن عملية الهندسة العكسية قياس كائن ثم إعادة بنائه كنموذج ثلاثي الأبعاد. يمكن قياس الكائن المادي باستخدام تقنيات المسح الضوئي ثلاثية الأبعاد مثل آلات قياس الإحداثيات أو الماسحات الضوئية بالليزر أو محولات الضوء المنظم أو المسح المقطعي الصناعي (التصوير المقطعي المحوسب). تفتقر البيانات المقاسة وحدها، والتي يتم تمثيلها عادةً على شكل سحابة نقاط ، إلى المعلومات الطوبولوجية ونية التصميم. يمكن استرداد الأولى عن طريق تحويل سحابة النقاط إلى شبكة ذات وجه مثلث. تهدف الهندسة العكسية إلى تجاوز إنتاج مثل هذه الشبكة واستعادة نية التصميم من حيث الأسطح التحليلية البسيطة عند الاقتضاء ( الطائرات والأسطوانات وما إلى ذلك) بالإضافة إلى أسطح NURBS المحتملة لإنتاج نموذج CAD لتمثيل الحدود . يسمح استرداد مثل هذا النموذج بتعديل التصميم لتلبية المتطلبات الجديدة، وإنشاء خطة تصنيع، وما إلى ذلك.
النمذجة الهجينة هو مصطلح يستخدم بشكل شائع عندما يتم تنفيذ NURBS والنمذجة البارامترية معًا. يمكن أن يوفر استخدام مزيج من الأسطح الهندسية والحرة طريقة قوية للنمذجة ثلاثية الأبعاد . يمكن دمج مناطق البيانات ذات الشكل الحر مع الأسطح الهندسية الدقيقة لإنشاء نموذج هجين. من الأمثلة النموذجية على ذلك الهندسة العكسية لرأس الأسطوانة، والتي تتضمن ميزات صب الشكل الحر، مثل سترات المياه والمناطق الميكانيكية عالية التحمل. [15]
تستخدم الشركات الهندسة العكسية أيضًا لإدخال الهندسة الفيزيائية الموجودة في بيئات تطوير المنتجات الرقمية، أو لإنشاء سجل رقمي ثلاثي الأبعاد لمنتجاتها الخاصة، أو لتقييم منتجات المنافسين. تُستخدم الهندسة العكسية لتحليل كيفية عمل المنتج، وما يفعله، وما هي مكوناته؛ وتقدير التكاليف؛ وتحديد انتهاكات براءات الاختراع المحتملة ؛ وما إلى ذلك.
الهندسة القيمية ، وهي نشاط مرتبط تستخدمه الشركات أيضًا، تتضمن تفكيك المنتجات وتحليلها. ومع ذلك، فإن الهدف هو إيجاد فرص لخفض التكاليف.
لوحات الدوائر المطبوعة
تتضمن الهندسة العكسية للوحات الدوائر المطبوعة إعادة إنشاء بيانات التصنيع للوحة دوائر معينة. يتم ذلك في المقام الأول لتحديد التصميم، ومعرفة الخصائص الوظيفية والبنيوية للتصميم. كما يسمح باكتشاف مبادئ التصميم وراء المنتج، خاصةً إذا لم تكن معلومات التصميم هذه متاحة بسهولة.
غالبًا ما تخضع لوحات الدوائر المطبوعة القديمة للهندسة العكسية، وخاصةً عندما تؤدي وظائف بالغة الأهمية مثل تشغيل الآلات أو المكونات الإلكترونية الأخرى. يمكن أن تسمح الهندسة العكسية لهذه الأجزاء القديمة بإعادة بناء لوحة الدوائر المطبوعة إذا كانت تؤدي بعض المهام الحاسمة، بالإضافة إلى إيجاد بدائل توفر نفس الوظيفة، أو في ترقية لوحة الدوائر المطبوعة القديمة. [16]
تتبع عملية هندسة الدوائر المطبوعة العكسية إلى حد كبير نفس سلسلة الخطوات. أولاً، يتم إنشاء الصور عن طريق الرسم أو المسح الضوئي أو التقاط صور للدائرة المطبوعة. ثم يتم نقل هذه الصور إلى برنامج هندسة عكسية مناسب من أجل إنشاء تصميم أولي للدائرة المطبوعة الجديدة. إن جودة هذه الصور اللازمة للهندسة العكسية المناسبة تتناسب طرديًا مع تعقيد الدائرة المطبوعة نفسها. تتطلب الدوائر المطبوعة الأكثر تعقيدًا صورًا مضاءة جيدًا على خلفيات داكنة، بينما يمكن إعادة إنشاء الدوائر المطبوعة البسيطة ببساطة من خلال تحديد الأبعاد الأساسية فقط. يتم إعادة إنشاء كل طبقة من الدائرة المطبوعة بعناية في البرنامج بهدف إنتاج تصميم نهائي أقرب ما يكون إلى التصميم الأولي. بعد ذلك، يتم إنشاء المخططات التخطيطية للدائرة أخيرًا باستخدام أداة مناسبة. [17]
برمجة
في عام 1990، عرّف معهد مهندسي الكهرباء والإلكترونيات (IEEE) الهندسة العكسية (البرمجية) بأنها "عملية تحليل نظام موضوعي لتحديد مكونات النظام والعلاقات المتبادلة بينها وإنشاء تمثيلات للنظام في شكل آخر أو على مستوى أعلى من التجريد" حيث يكون "النظام الموضوعي" هو المنتج النهائي لتطوير البرمجيات. الهندسة العكسية هي عملية فحص فقط، ولا يتم تعديل نظام البرمجيات قيد النظر، والذي من شأنه أن يكون إعادة هندسة أو إعادة هيكلة بخلاف ذلك. يمكن إجراء الهندسة العكسية من أي مرحلة من مراحل دورة المنتج، وليس بالضرورة من المنتج النهائي الوظيفي. [10]
هناك مكونان في الهندسة العكسية: إعادة التوثيق واستعادة التصميم. إعادة التوثيق هي إنشاء تمثيل جديد لكود الكمبيوتر بحيث يسهل فهمه. وفي الوقت نفسه، فإن استعادة التصميم هي استخدام الاستنتاج أو المنطق من المعرفة العامة أو الخبرة الشخصية للمنتج لفهم وظائف المنتج بشكل كامل. [10] يمكن أيضًا اعتباره "الرجوع إلى الوراء خلال دورة التطوير". [18] في هذا النموذج، يتم إجراء هندسة عكسية لإخراج مرحلة التنفيذ (في شكل كود المصدر) إلى مرحلة التحليل، في عكس نموذج الشلال التقليدي . مصطلح آخر لهذه التقنية هو فهم البرنامج . [7] تم عقد مؤتمر العمل حول الهندسة العكسية (WCRE) سنويًا لاستكشاف وتوسيع تقنيات الهندسة العكسية. [11] [19] ساهمت هندسة البرمجيات بمساعدة الكمبيوتر (CASE) وتوليد الكود الآلي بشكل كبير في مجال الهندسة العكسية. [11]
تُستخدم تكنولوجيا مكافحة التلاعب بالبرمجيات مثل التعتيم لردع كل من الهندسة العكسية وإعادة هندسة البرمجيات الملكية والأنظمة التي تعمل بالبرمجيات. في الممارسة العملية، يظهر نوعان رئيسيان من الهندسة العكسية. في الحالة الأولى، يكون الكود المصدر متاحًا بالفعل للبرنامج، ولكن يتم اكتشاف جوانب أعلى مستوى من البرنامج، والتي ربما تكون موثقة بشكل سيئ أو موثقة ولكنها لم تعد صالحة. في الحالة الثانية، لا يتوفر كود مصدر للبرنامج، وتعتبر أي جهود نحو اكتشاف كود مصدر محتمل للبرنامج بمثابة هندسة عكسية. الاستخدام الثاني للمصطلح أكثر شيوعًا لدى معظم الناس. يمكن للهندسة العكسية للبرمجيات الاستفادة من تقنية تصميم الغرفة النظيفة لتجنب انتهاك حقوق النشر.
في سياق متصل، يتشابه اختبار الصندوق الأسود في هندسة البرمجيات مع الهندسة العكسية إلى حد كبير. عادةً ما يمتلك المُختبر واجهة برمجة التطبيقات ولكنه يهدف إلى العثور على الأخطاء والميزات غير الموثقة من خلال انتقاد المنتج من الخارج. [20]
تشمل الأغراض الأخرى للهندسة العكسية التدقيق الأمني، وإزالة حماية النسخ (" الاختراق ")، والتحايل على قيود الوصول الموجودة غالبًا في الأجهزة الإلكترونية الاستهلاكية ، وتخصيص الأنظمة المضمنة (مثل أنظمة إدارة المحرك)، والإصلاحات أو التعديلات الداخلية، وتمكين ميزات إضافية على الأجهزة "المعطلة" منخفضة التكلفة (مثل بعض شرائح بطاقات الرسومات)، أو حتى مجرد إرضاء الفضول.
برنامج ثنائي
يتم إجراء الهندسة العكسية الثنائية إذا كان الكود المصدري لبرنامج غير متاح. [11] تسمى هذه العملية أحيانًا هندسة الكود العكسي ، أو RCE. [21] على سبيل المثال، يمكن إنجاز فك تجميع الثنائيات لمنصة Java باستخدام Jad. كانت إحدى الحالات الشهيرة للهندسة العكسية هي أول تنفيذ غير تابع لشركة IBM لنظام BIOS الخاص بأجهزة الكمبيوتر ، والذي أطلق صناعة أجهزة الكمبيوتر المتوافقة التاريخية من IBM والتي كانت منصة الأجهزة الحاسوبية المهيمنة بشكل كبير لسنوات عديدة. الهندسة العكسية للبرمجيات محمية في الولايات المتحدة بموجب استثناء الاستخدام العادل في قانون حقوق النشر . [22] يعد برنامج Samba ، الذي يسمح للأنظمة التي لا تعمل بأنظمة Microsoft Windows بمشاركة الملفات مع الأنظمة التي تعمل بها، مثالاً كلاسيكيًا للهندسة العكسية للبرمجيات [23] حيث كان على مشروع Samba إجراء هندسة عكسية لمعلومات غير منشورة حول كيفية عمل مشاركة ملفات Windows حتى تتمكن أجهزة الكمبيوتر غير العاملة بنظام Windows من محاكاتها. يقوم مشروع Wine بنفس الشيء بالنسبة لواجهة برمجة تطبيقات Windows ، و OpenOffice.org هو أحد الأطراف التي تقوم بذلك لتنسيقات ملفات Microsoft Office . إن مشروع ReactOS أكثر طموحًا في أهدافه من خلال السعي إلى توفير التوافق الثنائي (ABI وAPI) مع أنظمة التشغيل Windows الحالية لفرع NT، والذي يسمح للبرامج وبرامج التشغيل المكتوبة لنظام Windows بالعمل على نظير برمجي مجاني تم هندسته عكسيًا ( GPL ) . يسمح WindowsSCOPE بالهندسة العكسية للمحتويات الكاملة للذاكرة الحية لنظام Windows بما في ذلك الهندسة العكسية الرسومية على المستوى الثنائي لجميع العمليات الجارية.
هناك مثال كلاسيكي آخر، وإن لم يكن معروفًا، وهو أنه في عام 1987 قامت شركة Bell Laboratories بهندسة عكسية لنظام التشغيل Mac OS 4.1، والذي كان يعمل في الأصل على Apple Macintosh SE ، حتى تتمكن من تشغيله على أجهزة RISC الخاصة بها. [24]
تقنيات البرمجيات الثنائية
يمكن إنجاز الهندسة العكسية للبرمجيات بطرق مختلفة. المجموعات الرئيسية الثلاث للهندسة العكسية للبرمجيات هي
- التحليل من خلال ملاحظة تبادل المعلومات، وهو الأكثر انتشارًا في الهندسة العكسية للبروتوكول، والذي يتضمن استخدام محللي الحافلات ومستكشفي الحزم ، مثل الوصول إلى حافلة كمبيوتر أو اتصال شبكة كمبيوتر وكشف بيانات حركة المرور عليها. يمكن بعد ذلك تحليل سلوك الحافلة أو الشبكة لإنتاج تنفيذ مستقل يحاكي هذا السلوك. وهذا مفيد بشكل خاص للهندسة العكسية لبرامج تشغيل الأجهزة . في بعض الأحيان، يتم مساعدة الهندسة العكسية على الأنظمة المضمنة بشكل كبير من خلال الأدوات التي يقدمها المصنع عمدًا، مثل منافذ JTAG أو وسائل تصحيح الأخطاء الأخرى. في Microsoft Windows ، تعد أدوات تصحيح الأخطاء منخفضة المستوى مثل SoftICE شائعة.
- التفكيك باستخدام أداة التفكيك ، أي قراءة لغة الآلة الخام للبرنامج وفهمها وفقًا لشروطها الخاصة، فقط بمساعدة الاختصارات الخاصة بلغة الآلة . تعمل هذه الطريقة على أي برنامج كمبيوتر ولكنها قد تستغرق بعض الوقت، وخاصة بالنسبة لأولئك الذين لم يعتادوا على استخدام أكواد الآلة. أداة التفكيك التفاعلية هي أداة شائعة بشكل خاص.
- فك التجميع باستخدام مفكك ، وهي عملية تحاول، بنتائج متفاوتة، إعادة إنشاء الكود المصدر في بعض لغات المستوى العالي لبرنامج متاح فقط في الكود الآلي أو الكود الثنائي .
تصنيف البرمجيات
تصنيف البرمجيات هو عملية تحديد أوجه التشابه بين الثنائيات البرمجية المختلفة (مثل نسختين مختلفتين من نفس الثنائي) المستخدمة للكشف عن العلاقات البرمجية بين عينات البرمجيات. كانت المهمة تتم تقليديًا يدويًا لعدة أسباب (مثل تحليل التصحيح للكشف عن الثغرات الأمنية وانتهاك حقوق النشر )، ولكن يمكن الآن القيام بذلك تلقائيًا إلى حد ما لأعداد كبيرة من العينات.
تُستخدم هذه الطريقة في الغالب في مهام الهندسة العكسية الطويلة والشاملة (التحليل الكامل لخوارزمية معقدة أو قطعة كبيرة من البرامج). بشكل عام، يُعتبر التصنيف الإحصائي مشكلة صعبة، وهو ما ينطبق أيضًا على تصنيف البرامج، وبالتالي فإن الحلول/الأدوات التي تتعامل مع هذه المهمة بشكل جيد قليلة.
الكود المصدر
يشير عدد من أدوات UML إلى عملية استيراد وتحليل التعليمات البرمجية المصدرية لإنشاء مخططات UML باعتبارها "هندسة عكسية". راجع قائمة أدوات UML .
على الرغم من أن UML هي إحدى الطرق في توفير "الهندسة العكسية"، إلا أن التطورات الأحدث في أنشطة المعايير الدولية أدت إلى تطوير نموذج اكتشاف المعرفة (KDM). يوفر المعيار علم الوجود للتمثيل الوسيط (أو المجرد) لهياكل لغة البرمجة والعلاقات المتبادلة بينها. بدأ KDM، وهو معيار لمجموعة إدارة الكائنات (في طريقه إلى أن يصبح معيارًا لمنظمة ISO أيضًا)، في ترسيخ مكانته في الصناعة مع تطوير أدوات وبيئات تحليل يمكنها تقديم استخراج وتحليل التعليمات البرمجية المصدرية والثنائية والبايتية . بالنسبة لتحليل التعليمات البرمجية المصدرية، تمكن بنية معايير KDM الحبيبية من استخراج تدفقات نظام البرمجيات (البيانات والتحكم وخرائط الاتصال) والهندسة المعمارية ومعرفة طبقة الأعمال (القواعد والشروط والعملية). يتيح المعيار استخدام تنسيق بيانات مشترك (XMI) مما يتيح ربط الطبقات المختلفة من معرفة النظام إما للتحليل التفصيلي (مثل السبب الجذري والتأثير) أو التحليل المشتق (مثل استخراج عملية الأعمال). على الرغم من أن الجهود المبذولة لتمثيل بنيات اللغة قد لا تنتهي أبدًا بسبب عدد اللغات والتطور المستمر للغات البرمجيات وتطوير لغات جديدة، فإن المعيار يسمح باستخدام الامتدادات لدعم مجموعة اللغات الواسعة بالإضافة إلى التطور. يتوافق KDM مع UML وBPMN وRDF وغيرها من المعايير مما يتيح الانتقال إلى بيئات أخرى وبالتالي الاستفادة من معرفة النظام للجهود مثل تحويل نظام البرمجيات وتحليل طبقة الأعمال المؤسسية.
البروتوكولات
البروتوكولات عبارة عن مجموعات من القواعد التي تصف تنسيقات الرسائل وكيفية تبادل الرسائل: آلة حالة البروتوكول . وعليه، يمكن تقسيم مشكلة الهندسة العكسية للبروتوكول إلى مشكلتين فرعيتين: تنسيق الرسالة والهندسة العكسية لآلة الحالة.
كانت تنسيقات الرسائل تتم هندستها عكسيًا بشكل تقليدي من خلال عملية يدوية شاقة، والتي تتضمن تحليل كيفية معالجة تنفيذات البروتوكول للرسائل، ولكن الأبحاث الحديثة اقترحت عددًا من الحلول التلقائية. [25] [26] [27] عادةً، تقوم مجموعة الأساليب التلقائية بمراقبة الرسائل في مجموعات باستخدام تحليلات التجميع المختلفة ، أو تحاكي تنفيذ البروتوكول الذي يتتبع معالجة الرسائل.
كان هناك عمل أقل على الهندسة العكسية لآلات الحالة للبروتوكولات. بشكل عام، يمكن تعلم آلات حالة البروتوكول إما من خلال عملية التعلم غير المتصل بالإنترنت ، والتي تراقب الاتصال بشكل سلبي وتحاول بناء آلة الحالة الأكثر عمومية التي تقبل جميع تسلسلات الرسائل المرصودة، والتعلم عبر الإنترنت ، والذي يسمح بالتوليد التفاعلي لتسلسلات استكشاف الرسائل والاستماع إلى الاستجابات لتلك التسلسلات الاستكشافية. بشكل عام، من المعروف أن التعلم غير المتصل بالإنترنت لآلات الحالة الصغيرة هو NP-complete ، [28] ولكن يمكن إجراء التعلم عبر الإنترنت في وقت متعدد الحدود. [29] وقد أظهر Comparetti et al. [27] نهجًا تلقائيًا غير متصل بالإنترنت ونهجًا عبر الإنترنت بواسطة Cho et al. [30]
يمكن أيضًا إجراء هندسة عكسية تلقائيًا لمكونات أخرى من البروتوكولات النموذجية، مثل التشفير ووظائف التجزئة. عادةً، تتعقب الأساليب التلقائية تنفيذ تنفيذات البروتوكول وتحاول اكتشاف المخازن المؤقتة في الذاكرة التي تحتوي على حزم غير مشفرة. [31]
الدوائر المتكاملة/البطاقات الذكية
الهندسة العكسية هي شكل غزوي ومدمر لتحليل البطاقة الذكية . يستخدم المهاجم مواد كيميائية لحفر طبقة تلو الأخرى من البطاقة الذكية ويلتقط صورًا باستخدام المجهر الإلكتروني الماسح (SEM). يمكن لهذه التقنية الكشف عن الجزء الكامل من الأجهزة والبرامج للبطاقة الذكية. تكمن المشكلة الرئيسية للمهاجم في ترتيب كل شيء بالترتيب الصحيح لمعرفة كيفية عمل كل شيء. يحاول صانعو البطاقة إخفاء المفاتيح والعمليات عن طريق خلط مواضع الذاكرة، مثل تشفير الحافلة. [32] [33]
في بعض الحالات، من الممكن حتى إرفاق مسبار لقياس الفولتات بينما لا تزال البطاقة الذكية قيد التشغيل. يستخدم صانعو البطاقة أجهزة استشعار للكشف عن هذا الهجوم ومنعه. [34] هذا الهجوم ليس شائعًا جدًا لأنه يتطلب استثمارًا كبيرًا في الجهد ومعدات خاصة متوفرة عمومًا فقط لمصنعي الرقائق الكبار. علاوة على ذلك، فإن العائد من هذا الهجوم منخفض نظرًا لاستخدام تقنيات أمان أخرى غالبًا مثل الحسابات الظلية. لا يزال من غير المؤكد ما إذا كانت الهجمات ضد بطاقات الشريحة والرقم السري لتكرار بيانات التشفير ثم كسر أرقام التعريف الشخصية ستوفر هجومًا فعالاً من حيث التكلفة على المصادقة متعددة العوامل.
تتم عملية الهندسة العكسية الكاملة في عدة خطوات رئيسية.
الخطوة الأولى بعد التقاط الصور باستخدام المجهر الإلكتروني الماسح هي تجميع الصور معًا، وهو أمر ضروري لأنه لا يمكن التقاط كل طبقة بلقطة واحدة. يحتاج المجهر الإلكتروني الماسح إلى مسح مساحة الدائرة والتقاط عدة مئات من الصور لتغطية الطبقة بالكامل. يأخذ تجميع الصور كمدخلات عدة مئات من الصور ويخرج صورة واحدة متداخلة بشكل صحيح للطبقة الكاملة.
بعد ذلك، يجب محاذاة الطبقات المخيطة لأن العينة، بعد الحفر، لا يمكن وضعها في نفس الموضع بالضبط بالنسبة للمجهر الإلكتروني الماسح في كل مرة. لذلك، لن تتداخل الإصدارات المخيطة بالطريقة الصحيحة، كما هو الحال في الدائرة الحقيقية. عادةً، يتم تحديد ثلاث نقاط متناظرة، وتطبيق التحويل على أساس ذلك.
لاستخراج بنية الدائرة، يجب تجزئة الصور المتراصة والمخيطة، مما يسلط الضوء على الدوائر المهمة ويفصلها عن الخلفية غير المثيرة للاهتمام والمواد العازلة.
أخيرًا، يمكن تتبع الأسلاك من طبقة إلى أخرى، ويمكن إعادة بناء قائمة الشبكة الخاصة بالدائرة، والتي تحتوي على كافة معلومات الدائرة.
التطبيقات العسكرية
يحتاج هذا القسم إلى مصادر إضافية للتحقق . ( يوليو 2014 ) |
غالبًا ما يستخدم الناس الهندسة العكسية لنسخ تقنيات أو أجهزة أو معلومات دول أخرى تم الحصول عليها بواسطة القوات النظامية في الحقول أو من خلال العمليات الاستخباراتية . وقد تم استخدامها غالبًا أثناء الحرب العالمية الثانية والحرب الباردة . وفيما يلي أمثلة معروفة من الحرب العالمية الثانية وما بعدها:
- علب جيري : لاحظت القوات البريطانية والأمريكية في الحرب العالمية الثانية أن الألمان لديهم علب بنزين ذات تصميم ممتاز. فقاموا بعمل هندسة عكسية لنسخ من تلك العلب، والتي عُرفت شعبيًا باسم "علب جيري".
- ناكاجيما جي 5 إن : في عام 1939، باعت شركة دوغلاس الأمريكية للطائرات النموذج الأولي لطائرة الركاب دي سي-4 إي إلى الخطوط الجوية الإمبراطورية اليابانية ، والتي كانت تعمل سرًا كواجهة للبحرية الإمبراطورية اليابانية ، والتي كانت تريد قاذفة استراتيجية بعيدة المدى ولكنها أعاقتها قلة خبرة صناعة الطائرات اليابانية في الطائرات الثقيلة بعيدة المدى. تم نقل دي سي-4 إي إلى شركة ناكاجيما للطائرات وتفكيكها للدراسة؛ وكقصة تغطية، ذكرت الصحافة اليابانية أنها تحطمت في خليج طوكيو . [35] [36] تم نسخ الأجنحة والمحركات وعتاد الهبوط للطائرة جي 5 إن مباشرة من دي سي-4 إي. [37]
- بانزرشريك : استولى الألمان على بازوكا أمريكية أثناء الحرب العالمية الثانية وقاموا بتصميمها بشكل عكسي لإنشاء بانزرشريك الأكبر.
- توبوليف تو-4 : في عام 1944، اضطرت ثلاث قاذفات أمريكية من طراز بي-29 إلى الهبوط في الاتحاد السوفييتي أثناء مهمات فوق اليابان . وقرر السوفييت، الذين لم يكن لديهم قاذفة استراتيجية مماثلة، تقليد طائرة بي-29. وفي غضون ثلاث سنوات، تمكنوا من تطوير طائرة تو-4، وهي نسخة شبه مثالية. [38]
- رادار SCR-584 : تم نسخه بواسطة الاتحاد السوفييتي بعد الحرب العالمية الثانية، وهو معروف ببعض التعديلات - СЦР-584، Бинокль-Д.
- صاروخ V-2 : استولى الحلفاء الغربيون على الوثائق الفنية الخاصة بصاروخ V-2 والتقنيات المرتبطة به في نهاية الحرب. ركز الأمريكيون جهودهم في الهندسة العكسية عبر عملية Paperclip ، والتي أدت إلى تطوير صاروخ PGM-11 Redstone . [39] استخدم السوفييت المهندسين الألمان الأسرى لإعادة إنتاج الوثائق والخطط الفنية وعملوا من الأجهزة التي تم الاستيلاء عليها لصنع نسخة طبق الأصل من الصاروخ، R-1 . وهكذا بدأ برنامج الصواريخ السوفييتي بعد الحرب، والذي أدى إلى R-7 وبداية سباق الفضاء .
- أصبح صاروخ K-13/R-3S ( الاسم الذي يطلقه حلف شمال الأطلسي AA-2 Atoll)، وهو نسخة سوفييتية معاكسة هندسية من صاروخ AIM-9 Sidewinder ، ممكنًا بعد أن ضرب صاروخ AIM-9B التايواني (القوات الجوية لجمهورية الصين الشعبية) طائرة ميج-17 الصينية التابعة لجيش التحرير الشعبي دون أن ينفجر في سبتمبر 1958. [40] استقر الصاروخ داخل هيكل الطائرة، وعاد الطيار إلى القاعدة بما وصفه العلماء السوفييت بدورة جامعية في تطوير الصواريخ.
- صاروخ طوفان : في مايو 1975، توقفت المفاوضات بين إيران وشركة هيوز ميسايل سيستمز بشأن الإنتاج المشترك لصواريخ بي جي إم-71 تاو ومافريك بسبب خلافات حول هيكل التسعير، وأنهت الثورة التي تلت ذلك عام 1979 جميع الخطط لمثل هذا الإنتاج المشترك. نجحت إيران لاحقًا في الهندسة العكسية للصاروخ وهي الآن تنتج نسختها الخاصة، طوفان.
- لقد قامت الصين بهندسة العديد من نماذج المعدات الغربية والروسية، من الطائرات المقاتلة إلى الصواريخ وسيارات HMMWV ، مثل MiG-15،17،19،21 (التي أصبحت J-2،5،6،7) و Su-33 (التي أصبحت J-15). [41]
- خلال الحرب العالمية الثانية، قام خبراء التشفير البولنديون والبريطانيون بدراسة آلات تشفير الرسائل الألمانية " إنجما " التي تم الاستيلاء عليها بحثًا عن نقاط الضعف. ثم تم محاكاة تشغيلها على أجهزة كهروميكانيكية، " قنبلة "، والتي جربت جميع إعدادات التشويش الممكنة لآلات "إنجما" التي ساعدت في كسر الرسائل المشفرة التي أرسلها الألمان.
- خلال الحرب العالمية الثانية أيضًا، قام العلماء البريطانيون بتحليل وإحباط سلسلة من أنظمة الملاحة الراديوية المتطورة التي استخدمها سلاح الجو الألماني لتنفيذ مهام القصف الموجه ليلاً. كانت التدابير البريطانية المضادة للنظام فعالة للغاية لدرجة أنه في بعض الحالات، تم توجيه الطائرات الألمانية عن طريق الإشارات للهبوط في قواعد سلاح الجو الملكي البريطاني لأنها اعتقدت أنها عادت إلى الأراضي الألمانية.
شبكات الجينات
تم تطبيق مفاهيم الهندسة العكسية على علم الأحياء أيضًا، وتحديدًا على مهمة فهم بنية ووظيفة شبكات تنظيم الجينات . فهي تنظم كل جانب تقريبًا من جوانب السلوك البيولوجي وتسمح للخلايا بتنفيذ العمليات الفسيولوجية والاستجابات للاضطرابات. وبالتالي فإن فهم بنية وسلوك شبكات الجينات الديناميكي هو أحد التحديات الرئيسية لعلم الأحياء النظمي، مع تداعيات عملية فورية في العديد من التطبيقات التي تتجاوز البحث الأساسي. [42] هناك العديد من الطرق للهندسة العكسية لشبكات تنظيم الجينات باستخدام أساليب علم الأحياء الجزيئي وعلوم البيانات. وقد تم تقسيمها عمومًا إلى ست فئات: [43]

- تعتمد طرق التعبير المشترك على فكرة مفادها أنه إذا أظهر جينان نمط تعبير مماثل، فقد يكونان مرتبطين على الرغم من أنه لا يمكن استنتاج أي علاقة سببية ببساطة من التعبير المشترك.
- تحلل طرق نمط التسلسل محفزات الجينات للعثور على مجالات ربط عامل النسخ المحددة . إذا كان من المتوقع أن يرتبط عامل النسخ بمحفز لجين معين، فيمكن افتراض وجود اتصال تنظيمي.
- تبحث طرق ترسيب الكروماتين المناعي (ChIP) في ملف ارتباط الحمض النووي لعوامل النسخ المختارة على مستوى الجينوم لاستنتاج شبكات الجينات اللاحقة لها.
- تنقل طرق التقويم الجيني المعرفة الخاصة بشبكة الجينات من نوع إلى آخر.
- تطبق أساليب الأدب استخراج النصوص والبحث اليدوي لتحديد اتصالات الشبكة الجينية المفترضة أو المثبتة تجريبياً.
- تعمل طرق المجمعات النسخية على الاستفادة من المعلومات المتعلقة بالتفاعلات بين البروتينات وبين عوامل النسخ، وبالتالي توسيع مفهوم شبكات الجينات لتشمل المجمعات التنظيمية النسخية.
غالبًا ما يتم اختبار موثوقية شبكة الجينات من خلال تجارب الاضطراب الجيني تليها النمذجة الديناميكية، استنادًا إلى المبدأ القائل بأن إزالة عقدة واحدة من الشبكة لها تأثيرات يمكن التنبؤ بها على عمل العقد المتبقية من الشبكة. [44] تتراوح تطبيقات الهندسة العكسية لشبكات الجينات من فهم آليات فسيولوجيا النبات [45] إلى تسليط الضوء على أهداف جديدة للعلاج المضاد للسرطان. [46]
التداخل مع قانون براءات الاختراع
تطبق الهندسة العكسية في المقام الأول على اكتساب فهم لعملية أو قطعة أثرية لم يتم توضيح طريقة بنائها أو استخدامها أو العمليات الداخلية لها من قبل منشئها.
لا يلزم إجراء هندسة عكسية على العناصر الحاصلة على براءة اختراع في حد ذاتها حتى يمكن دراستها، وذلك لأن جوهر براءة الاختراع هو أن المخترعين يقدمون إفصاحًا عامًا مفصلاً بأنفسهم، وفي المقابل يتلقون الحماية القانونية للاختراع المعني. ومع ذلك، فإن العنصر الذي يتم إنتاجه بموجب براءة اختراع واحدة أو أكثر قد يتضمن أيضًا تقنية أخرى غير حاصلة على براءة اختراع ولم يتم الكشف عنها. والواقع أن أحد الدوافع الشائعة للهندسة العكسية هو تحديد ما إذا كان منتج منافس يحتوي على انتهاك لبراءة اختراع أو انتهاك لحقوق الطبع والنشر .
الشرعية
الولايات المتحدة
في الولايات المتحدة، حتى لو كانت القطعة الأثرية أو العملية محمية بأسرار تجارية ، فإن الهندسة العكسية للقطعة الأثرية أو العملية غالبًا ما تكون قانونية إذا تم الحصول عليها بشكل شرعي. [47]
غالبًا ما تندرج الهندسة العكسية لبرامج الكمبيوتر تحت قانون العقود باعتبارها خرقًا للعقد بالإضافة إلى أي قوانين أخرى ذات صلة. وذلك لأن معظم اتفاقيات ترخيص المستخدم النهائي تحظرها على وجه التحديد، وقد قضت المحاكم الأمريكية بأنه إذا كانت مثل هذه الشروط موجودة، فإنها تتجاوز قانون حقوق الطبع والنشر الذي يسمح بها صراحةً (انظر Bowers v. Baystate Technologies [48] [49] ). وفقًا للقسم 103 (f) من قانون حقوق الطبع والنشر للألفية الرقمية (17 USC § 1201 (f))، يجوز للشخص الذي يمتلك قانونًا برنامجًا إجراء هندسة عكسية والتحايل على حمايته إذا كان ذلك ضروريًا لتحقيق "التشغيل البيني"، وهو مصطلح يغطي على نطاق واسع الأجهزة والبرامج الأخرى التي يمكنها التفاعل معه والاستفادة منه واستخدام البيانات ونقلها منه بطرق مفيدة. يوجد استثناء محدود يسمح بمشاركة المعرفة المكتسبة بهذه الطريقة واستخدامها لأغراض التشغيل البيني. [أ]
الاتحاد الأوروبي
تحكم توجيهات الاتحاد الأوروبي 2009/24 بشأن الحماية القانونية لبرامج الكمبيوتر، والتي حلت محل توجيه سابق (1991)، [50] الهندسة العكسية في الاتحاد الأوروبي . [51] [ب]
انظر أيضا
- آلية أنتيكيثيرا
- الاستقراء العكسي
- المقارنة المعيارية
- محلل الحافلات
- شوندا
- استنساخ (حوسبة)
- تصميم غرفة نظيفة
- آلة قياس الإحداثيات
- تحويل الكود
- محطة الألعاب الافتراضية Connectix
- التزوير
- تحليل الشفرات
- فك التجميع
- تشوه
- قانون الألفية الرقمية لحقوق الطبع والنشر (DMCA)
- مفكك
- دونجل
- الهندسة الجنائية
- التصوير المقطعي الصناعي
- تفكيك تفاعلي
- نموذج اكتشاف المعرفة
- ماسح ضوئي ليزري
- قائمة مواضيع الإنتاج
- محركات ليسترويد
- محلل منطقي
- راتب
- إعادة الاستخدام
- الهندسة المعمارية العكسية
- هندسة ذهابا وإيابا
- الارتداد
- سيجا ضد أكولايد
- علم الآثار البرمجية
- اختراق البرمجيات
- محول رقمي للضوء المنظم
- هندسة القيمة
ملحوظات
- ^ ينص القسم على:
(و) الهندسة العكسية. -
(1) على الرغم من أحكام الفقرة الفرعية (أ) (1) (أ)، يجوز للشخص الذي حصل بشكل قانوني على الحق في استخدام نسخة من برنامج كمبيوتر التحايل على تدبير تكنولوجي يتحكم بشكل فعال في الوصول إلى جزء معين من هذا البرنامج لغرض وحيد هو تحديد وتحليل تلك العناصر من البرنامج التي هي ضرورية لتحقيق قابلية التشغيل البيني لبرنامج كمبيوتر تم إنشاؤه بشكل مستقل مع برامج أخرى، والتي لم تكن متاحة بسهولة من قبل للشخص الذي يشارك في التحايل، إلى الحد الذي لا تشكل فيه أي من هذه الأفعال من التعريف والتحليل انتهاكًا بموجب هذا العنوان.
(2) على الرغم من أحكام الفقرتين الفرعيتين (2) و(ب) من المادة (أ)، يجوز لأي شخص تطوير واستخدام وسائل تكنولوجية للتحايل على تدبير تكنولوجي، أو التحايل على الحماية التي يوفرها تدبير تكنولوجي، وذلك لتمكين التعريف والتحليل بموجب الفقرة (1)، أو لغرض تمكين قابلية التشغيل البيني لبرنامج كمبيوتر تم إنشاؤه بشكل مستقل مع برامج أخرى، إذا كانت هذه الوسائل ضرورية لتحقيق هذا التشغيل البيني، إلى الحد الذي لا يشكل فيه القيام بذلك انتهاكًا بموجب هذا العنوان.
(3) يجوز توفير المعلومات المكتسبة من خلال الأفعال المسموح بها بموجب الفقرة (1)، والوسائل المسموح بها بموجب الفقرة (2)، للآخرين إذا قدم الشخص المشار إليه في الفقرة (1) أو (2)، حسب الاقتضاء، مثل هذه المعلومات أو الوسائل فقط لغرض تمكين قابلية التشغيل البيني لبرنامج كمبيوتر تم إنشاؤه بشكل مستقل مع برامج أخرى، وإلى الحد الذي لا يشكل فيه القيام بذلك انتهاكًا بموجب هذا العنوان أو ينتهك القانون المعمول به بخلاف هذا القسم.
(4) لأغراض هذه الفقرة الفرعية، يعني مصطلح "التشغيل البيني" قدرة برامج الكمبيوتر على تبادل المعلومات، وقدرة هذه البرامج على استخدام المعلومات المتبادلة بشكل متبادل. - ^ تنص التوجيهات على:
إن إعادة إنتاج أو ترجمة أو تكييف أو تحويل شكل الكود الذي تم توفير نسخة من برنامج كمبيوتر به دون إذن يشكل انتهاكًا للحقوق الحصرية للمؤلف. ومع ذلك، قد توجد ظروف حيث يكون إعادة إنتاج الكود وترجمة شكله أمرًا لا غنى عنه للحصول على المعلومات اللازمة لتحقيق التوافق بين برنامج تم إنشاؤه بشكل مستقل وبرامج أخرى. لذلك، يجب أن نعتبر أنه في هذه الظروف المحدودة فقط، فإن أداء أعمال إعادة الإنتاج والترجمة من قبل أو نيابة عن شخص له الحق في استخدام نسخة من البرنامج أمر مشروع ومتوافق مع الممارسة العادلة ويجب بالتالي اعتباره لا يتطلب إذنًا من صاحب الحق. أحد أهداف هذا الاستثناء هو تمكين ربط جميع مكونات نظام الكمبيوتر، بما في ذلك مكونات الشركات المصنعة المختلفة، بحيث يمكنها العمل معًا. لا يجوز استخدام مثل هذا الاستثناء من الحقوق الحصرية للمؤلف بطريقة تضر بالمصالح المشروعة لصاحب الحق أو تتعارض مع الاستغلال العادي للبرنامج.
مراجع
- ^ ab "ما هي الهندسة العكسية؟ كيف تعمل". SearchSoftwareQuality . تم الاسترجاع في 2022-07-27 .
- ^ "الهندسة العكسية". ethics.csc.ncsu.edu . تم الاسترجاع في 2022-07-27 .
- ^ جارسيا، خورخي (ديسمبر 2015). "تفكيك الكتل: نموذج للهندسة العكسية والأساليب التجريبية القابلة للتطبيق" (PDF) . Core.ac.uk. تم الاسترجاع في 2023-06-04 .
- ^ ثاير، كين. "كيف تعمل الهندسة العكسية؟". globalspec . IEEE Global Spec . تم الاسترجاع في 26 فبراير 2018 .
- ^ فيلافيردي، أليخاندرو ف.؛ بانجا، جوليو ر. (6 فبراير 2014). "الهندسة العكسية والتحديد في علم الأحياء النظمي: الاستراتيجيات والآفاق والتحديات". مجلة واجهة الجمعية الملكية . 11 (91): 20130505. doi :10.1098/rsif.2013.0505. PMC 3869153. PMID 24307566 .
- ^ abc Chikofsky, EJ & Cross, JH II (1990). "الهندسة العكسية واستعادة التصميم: تصنيف". IEEE Software . 7 (1): 13–17. doi :10.1109/52.43044. S2CID 16266661.
- ^ ab دراسة استقصائية حول الهندسة العكسية وفهم البرامج. مايكل إل. نيلسون، 19 أبريل 1996، ODU CS 551 – دراسة استقصائية حول هندسة البرمجيات. arXiv :cs/0503068v1
- ^ Vinesh Raja; Kiran J. Fernandes (2007). Reverse Engineering: An Industrial Perspective . Springer Science & Business Media. ص. 3. ISBN 978-1-84628-856-2.
- ^ جوناثان باند؛ ماسانوبو كاتوه (2011). Interfaces on Trial 2.0 . MIT Press. ص. 136. ISBN 978-0-262-29446-1.
- ^ abc Chikofsky, EJ; Cross, JH (January 1990). "Reverse engineering and design recovery: A taxonomy" (PDF) . IEEE Software . 7 : 13–17. doi :10.1109/52.43044. S2CID 16266661. مؤرشف من الأصل (PDF) في 2018-04-17 . تم الاسترجاع في 2012-07-02 .
- ^ abcdefgh Eilam, Eldad (2005). Reversing: secrets of reverse engineering . John Wiley & Sons. ISBN 978-0-7645-7481-8.
- ^ فريق عمل هندسة الإنترنت RFC 2828 مسرد أمن الإنترنت
- ^ Karwowski, Waldemar; Trzcielinski, Stefan; Mrugalsk, Beata; DiNicolantonio, Massimo; Rossi, Emilio (2018). التطورات في التصنيع وإدارة الإنتاج ومراقبة العمليات . ص 287-288.
- ^ فارادي، ت؛ مارتن، ر؛ كوكس، ج (1997). "الهندسة العكسية للنماذج الهندسية - مقدمة". التصميم بمساعدة الكمبيوتر . 29 (4): 255-268. doi :10.1016/S0010-4485(96)00054-1.
- ^ "الهندسة العكسية".
- ^ باتيل، سوريش (2022-08-25). "الهندسة العكسية للوحة الدوائر المطبوعة". التصميم الإلكتروني . تم الاسترجاع في 2024-02-01 .
- ^ باتيل، سوريش (2022-08-25). "الهندسة العكسية للوحة الدوائر المطبوعة". التصميم الإلكتروني . تم الاسترجاع في 2024-02-01 .
- ^ Warden, R. (1992). إعادة استخدام البرمجيات والهندسة العكسية في الممارسة العملية . لندن، إنجلترا: Chapman & Hall. ص 283-305.
- ^ "مؤتمر العمل حول الهندسة العكسية (WCRE)". uni-trier.de . قائمة ببليوغرافيا علوم الكمبيوتر. مؤرشف من الأصل في 14 مارس 2017 . تم الاسترجاع في 22 فبراير 2018 .
- ^ شهباز، مزمل (2012). الهندسة العكسية واختبار مكونات برمجيات الصندوق الأسود: باستخدام تقنيات الاستدلال النحوي . دار النشر الأكاديمية لاب لامبرت. رقم ISBN 978-3-659-14073-0.
- ^ Chuvakin, Anton; Cyrus Peikari (January 2004). Security Warrior (1st ed.). O'Reilly. مؤرشف من الأصل في 2006-05-22 . تم الاسترجاع في 2006-05-25 .
- ^ Samuelson, Pamela & Scotchmer, Suzanne (2002). "The Law and Economics of Reverse Engineering". Yale Law Journal . 111 (7): 1575–1663. doi :10.2307/797533. JSTOR 797533. مؤرشف من الأصل في 2010-07-15 . تم الاسترجاع في 2011-10-31 .
- ^ "سامبا: مقدمة". 2001-11-27 . تم الاسترجاع في 2009-05-07 .
- ^ لي، نيوتن (2013). مكافحة الإرهاب والأمن السيبراني: الوعي الكامل بالمعلومات (الطبعة الثانية). سبرينغر ساينس+بيزنس ميديا. ص. 110. رقم ISBN 978-1-4614-7204-9.
- ^ W. Cui وJ. Kannan وHJ Wang. Discoverer: الهندسة العكسية للبروتوكول التلقائي من آثار الشبكة. في وقائع ندوة أمن USENIX السادسة عشرة حول ندوة أمن USENIX، ص 1-14.
- ^ W. Cui، M. Peinado، K. Chen، HJ Wang، و L. Irún-Briz. Tupni: الهندسة العكسية التلقائية لتنسيقات الإدخال. في وقائع المؤتمر الخامس عشر لـ ACM حول أمن الكمبيوتر والاتصالات، ص 391-402. ACM، أكتوبر 2008.
- ^ ab PM Comparetti, G. Wondracek, C. Kruegel, and E. Kirda. Prospex: Protocol specification extract. في وقائع ندوة معهد مهندسي الكهرباء والإلكترونيات الثلاثين حول الأمن والخصوصية لعام 2009، ص 110-125، واشنطن، 2009. جمعية الحاسبات التابعة لمعهد مهندسي الكهرباء والإلكترونيات.
- ^ Gold, E (1978). "تعقيد التعرف على الروبوتات من البيانات المعطاة". Information and Control . 37 (3): 302–320. doi : 10.1016/S0019-9958(78)90562-4 .
- ^ D. Angluin (1987). "تعلم المجموعات المنتظمة من الاستعلامات والأمثلة المضادة". المعلومات والحوسبة . 75 (2): 87-106. doi : 10.1016/0890-5401(87)90052-6 .
- ^ CY Cho, D. Babic, R. Shin, and D. Song. Inference and Analysis of Formal Models of Botnet Command and Control Protocols, 2010 ACM Conference on Computer and Communications Security.
- ^ متعدد اللغات: الاستخراج التلقائي لتنسيق رسائل البروتوكول باستخدام التحليل الثنائي الديناميكي. ج. كاباليرو، هـ. يين، ز. ليانغ، د. سونغ. وقائع المؤتمر الرابع عشر لجمعية الحوسبة الآلية حول أمن الكمبيوتر والاتصالات، ص 317-329.
- ^ ولفجانج رانكل، ولفجانج إيفينج، دليل البطاقة الذكية (2004)
- ^ T. Welz: البطاقات الذكية كوسائل للدفع [ رابط معطل ] (2008)، ندوة أمن أنظمة النقل الذكية بجامعة الرور في بوكوم
- ^ ديفيد سي. موسكر: حماية واستغلال الملكية الفكرية في الإلكترونيات أرشيف 2011-07-09 على موقع واي باك مشين ، مؤتمرات IBC، 10 يونيو 1998
- ^ Francillon, René J. (1988) [1979]. McDonnell Douglas Aircraft since 1920. المجلد 1 (الطبعة الثانية). أنابوليس، ماريلاند: Naval Institute Press. ص 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 . تم الاسترجاع في 2010-04-27 .
- ^ "القوات الجوية الصينية: المفاهيم والأدوار والقدرات المتطورة"، مركز دراسة الشؤون العسكرية الصينية (الولايات المتحدة)، مطبعة جامعة الدفاع الوطني، ص 277
- ^ Chandrashekar, S., R. Nagappa, L. Sundaresan, and N. Ramani. 2011. Technology & Innovation in China: A Case Study of Single Crystal Superalloy Development for Aircraft Turbine Blades, R4–11. ISSSP National Institute of Advanced Studies, Bangalore. http://isssp.in/wp-content/uploads/2013/01/Technology-and-Innovation-in-China-A-case-Study-of-Single-Crystal4.pdf; وديلون تشو، "طائرة مقاتلة صينية من طراز J-15: مسؤولون صينيون يدافعون عن المقاتلة الجديدة باعتبارها صينية أصلية، لكن الأسئلة لا تزال قائمة"، ميك، 16 ديسمبر/كانون الأول 2012، https://mic.com/articles/20270/china-j-15-fighter-jet-chinese-officials-defend-new-fighter- [ رابط معطل دائم ] as-chinese-original-but-questions-remain
- ^ جيورجي، فيديريكو م. (2020). "هندسة عكسية لشبكة الجينات: الجيل القادم". Biochimica et Biophysica Acta (BBA) - آليات تنظيم الجينات . 1863 (6): 194523. doi :10.1016/j.bbagrm.2020.194523. hdl :11585/753853. ISSN 1874-9399. PMID 32145356. S2CID 212629142.
- ^ ab Mercatelli, Daniele; Scalambra, Laura; Triboli, Luca; Ray, Forest; Giorgi, Federico M. (2020). "موارد استدلال شبكة تنظيم الجينات: نظرة عامة عملية". Biochimica et Biophysica Acta (BBA) - آليات تنظيم الجينات . 1863 (6): 194430. doi :10.1016/j.bbagrm.2019.194430. ISSN 1874-9399. PMID 31678629. S2CID 207895066.
- ^ Tegner, J.; Yeung, MKS; Hasty, J.; Collins, JJ (2003). "Reverse engineering gene networks: Integrating genetic perturbations with dynamical modeling". Proceedings of the National Academy of Sciences . 100 (10): 5944–5949. Bibcode :2003PNAS..100.5944T. doi : 10.1073/pnas.0933416100 . ISSN 0027-8424. PMC 156306. PMID 12730377 .
- ^ فريدل، سويتلانا؛ أوساديل، بيورن؛ فون ويرين، نيكولاس؛ سرينيفاسولو، نيس (2012). "الهندسة العكسية: عنصر أساسي في علم الأحياء النظمي لكشف الحوار المتبادل حول الإجهاد اللاحيوي العالمي". فرونتيرز في علوم النبات . 3 : 294. doi : 10.3389/fpls.2012.00294 . ISSN 1664-462X. PMC 3533172. PMID 23293646 .
- ^ Lefebvre, Celine; Rieckhof, Gabrielle; Califano, Andrea (2012). "Reverse-engineering human regulatory networks". Wiley Interdisciplinary Reviews: Systems Biology and Medicine . 4 (4): 311–325. doi :10.1002/wsbm.1159. ISSN 1939-5094. PMC 4128340. PMID 22246697 .
- ^ "أسرار التجارة 101"، مقال مميز، مارس 2011. ASME. تم استرجاعه في 2013-10-31.
- ^ مناقشة قضية Baystate v. Bowers. Utsystem.edu. تم الاسترجاع في 2011-05-29.
- ^ Gross, Grant. (2003-06-26) قضية العقد قد تضر بالهندسة العكسية | Developer World. InfoWorld. تم الاسترجاع في 2011-05-29.
- ^ توجيه المجلس 91/250/EEC بتاريخ 14 مايو 1991 بشأن الحماية القانونية لبرامج الكمبيوتر. Eur-lex.europa.eu. تم الاسترجاع في 2011-05-29.
- ^ التوجيه 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 .
- هاوسي أ. مولر وهولجر م. كينلي، "مقدمة صغيرة عن الهندسة العكسية للبرمجيات"، تقرير فني، جامعة فيكتوريا، 17 صفحة، مارس 2009. متاح على الإنترنت: http://holgerkienle.wikispaces.com/file/view/MK-UVic-09.pdf
- هاينز، هنري، "تحديد الانتهاك من خلال حيود الأشعة السينية"، عملية الهندسة الكيميائية ، يناير 1999 (مثال على الهندسة العكسية المستخدمة للكشف عن انتهاك الملكية الفكرية)
- هوانج، أندرو (2003). اختراق جهاز إكس بوكس: مقدمة إلى الهندسة العكسية . دار نو ستارش للنشر . رقم ISBN 978-1-59327-029-2.
- جيمس، ديك (19 يناير 2006). "الهندسة العكسية توفر المعرفة بالمنتج؛ تساعد في نشر التكنولوجيا". التصميم الإلكتروني . Penton Media, Inc. تم الاسترجاع في 2009-02-03 .
- ميسلر، روبرت (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 بوصة) أخطاء: [1][2] (ملاحظة. حول المنهجية العامة للهندسة العكسية، المطبقة على برمجيات السوق الشامل: برنامج لاستكشاف نظام التشغيل DOS، وتفكيك نظام التشغيل DOS.)
- شولمان، أندرو؛ وآخرون (1992). Windows غير الموثق: دليل المبرمج لوظائف API المحجوزة في Microsoft Windows . أديسون ويسلي . رقم ISBN 978-0-201-60834-2.(صفحات 59-188 حول المنهجية العامة للهندسة العكسية، المطبقة على البرامج المتاحة في السوق الشامل: فحص ملفات Windows القابلة للتنفيذ، وتفكيك Windows، والأدوات اللازمة لاستكشاف Windows)
- شولمان، أندرو، "الاختباء في العلن: استخدام الهندسة العكسية للكشف عن انتهاك براءات اختراع البرمجيات"، مجلة الملكية الفكرية اليوم ، نوفمبر 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
- Thumm, Mike (2007). "Talking Tactics" (PDF) . مؤتمر IEEE 2007 للدوائر المتكاملة المخصصة (CICC) . IEEE, Inc. تم الاسترجاع في 2009-02-03 .
