سؤال

يمكنك معرفة الكثير عن الداخلية طلب من خلال التفكير ، تعرض من قبل .صافي BCL (مكتبة الفئة الأساسية) ويجعل تافهة لاسترداد الفعلية IL أي .صافي الأسلوب.

الهندسة العكسية على ويكيبيديا:

الهندسة العكسية هي عملية اكتشاف المبادئ التكنولوجية من الجهاز ، كائن أو نظام من خلال تحليل هيكلها وظيفة عملية.

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

هل كانت مفيدة؟

المحلول

والحدود بين البلدين لا تبدو واضحة. أخلاقيا وأود أن ألفت الخط في الدافع مبرمج.

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

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

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

نصائح أخرى

ويجب على المرء أن يشكك في تعريف <م> الهندسة العكسية عندما القدرة على فك بسهولة اللغة هي جزء من لغة التأمل علاء.

ومع أداة مثل . NET العاكس أشعر خطوط تبدأ حقا ل طمس!

وعن طريق مثال من SO نفسها، فإنها مؤخرا دي غموض شفرة المصدر لمحرر من أسلحة الدمار الشامل. أنا أزعم أن هذا يعرف الهندسة العكسية أكثر من ذلك من انعكاس لا.

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

إذا ثم استخدام هذه المعلومات لمعرفة كيف تم إنشاء الجمعية، على سبيل المثال باستخدام العاكس .NET لإنتاج شفرة المصدر للقراءة التي يمكن أن تولد نفس رمز IL، وهذا هو الهندسة العكسية.

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

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

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

والتأمل هو الأداة التي يمكن استخدامها لأشياء كثيرة، بما في ذلك الهندسة العكسية من التعليمات البرمجية. انعكاس يمكن استخدامها لأغراض أخرى كثيرة جدا، وتنفيذ اللغات الديناميكية هو أسهل بكثير بفضل انعكاس على سبيل المثال.

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

في الواقع، انها عكس ذلك مباشرة من الهندسة العكسية.

وعلى الوجه الصحيح، "الهندسة العكسية" هو للنظر في نتائج عملية، والعمل الوراء، لتحديد كيفية وصولها إلى هناك. عموما، يتم ذلك من دون أي معرفة رمز الأصلي وينتج عادة عملية مختلفة جدا.

وعلى الرغم من التهديدات المخيفة من قبل أصحاب حق المؤلف، وانها قانونية تماما.

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

وبيع كود شخص آخر (أو استخدام ذلك بنفسك) في الطريق الذي يتجنب صاحب حقوق الطبع والنشر من التربح من عمله، <م> هو غير قانوني، لكننا لا نتحدث عن ذلك هنا.

أعتقد أنك تتحدث عن شيئين مختلفين هنا:

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

من وجهة النظر القانونية ، فإنه يعتمد على الهدف الخاص بك ، إذا كنت تستخدم انعكاس لهذا الغرض من الهندسة العكسية.

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

ولا. مع التفكير، كنت عادة ما نتحدث فقط عن طريقة مختلفة لاستدعاء أساليب، أو ربما تبحث في سمات الأسلوب.

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

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

والتأمل يمكن استخدامها لاستدعاء أساليب أو اطلع على سمات كما قال دون، ولكن يمكن أيضا أن تستخدم لتحليل بنية التجمع وحتى نظرة خاطفة داخل إلى رمز MSIL الأساسي. حتى استخدام واحد من التفكير قد يكون بريئا، واحد سيكون الهندسة العكسية.

انعكاس هو علوم الكمبيوتر المصطلح الذي كان قبل عقود مقدمة من مايكروسوفت .Net framework (من الشمس JVM).كانت الفكرة لا تهدف إلى الهندسة العكسية التطبيق.في سياقات محددة ويمكن استخدامه لهذا الغرض هو فقط من قبيل الصدفة.كما كتبه الآخرون, والتفكير هو "أداة".

التفكير في العديد من اللغات مثل .NET و Java هي بقع الفقيرة جمل لا تسمح لك بالتفاعل بحرية مع الكائنات.

في الحقيقة وجوه المنحى لغة مثل Smalltak أو النفس ، بالكاد من أي وقت مضى بحاجة إلى التفكير و, إذا لزم الأمر, انها حتى الآن أكثر قوة من تلك التي عرضت من قبل .NET و Java.

وقد قلت ذلك, أنا لا أعتقد أن التفكير هو الهندسة العكسية إعادة النظر في مثل فهم رمز أن تفعل شيئا مع ذلك بدلا من انتهاك الحماية.

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

إنه مفيد جدا, ولكن أعتقد في واقع OO اللغات التي يمكن تجنبها عن طريق فرعية تصنف فئة مجردة يمكن الرد على أي رسالة فرعية يمكن تجاوز ذلك.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top