هل هناك أي أمل أ decompiler التي من شأنها أن تحول إلى برنامج قابل للتنفيذ م / س + + رمز؟

هذه أسئلة الجواب هو مقتطف من القصاصات بوب بيرة ستاوت.

لا نستغرق في الآمال. فكروا... لdecompiler على العمل بشكل سليم ، وإما 1) أن كل مجمع لتوليد شفرة متماثلة بدرجة كبيرة ، حتى مع تحول كامل على التحسين ، أو 2) يتعين عليها أن تعترف كل فرد من الناتج مجمع قانون المولد.

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

فماذا محددة decompilers المجمعين محددة -- أقول decompiler تهدف فقط الى العمل على رمز التي تولدها ، ويقول ، قبل الميلاد + + 4.5؟ وهذا يحصل لنا الحق في العودة إلى التحسين. مدونة مكتوبة لالوضوح والفهم وكثيرا ما يكون غير فعال. مدونة مكتوبة لتحقيق أقصى قدر من الأداء (سرعة أو حجم) وكثيرا ما خفي (في أحسن الأحوال!) اضف الى ذلك حقيقة أن جميع الحديث المجمعين لها العديد من التحسين لمفاتيح التحكم التي التقنيات الأمثل لتمكين والتي تجنبه. خلاصة القول هي ان لمعقولة الكبيرة والمعقدة وحدة المصدر ، يمكنك الحصول على مجمع لانتاج عدد من وحدات مختلفة وجوه بمجرد تغيير مفاتيح التحسين ، وذلك decompiler الخاص بك أيضا أن deoptimizer التي يمكن الاعتراف الذي automagically تحسين استراتيجيات تمكن في تجميع الوقت.

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

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

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

أود أن أقول إن هذا لا ينبغي أيضا أن نستغرق. التكنولوجيا لتحسين decompilers حيث يمكن أن تصبح أكثر قابلية للتحقيق ، وoptimizers غات (س + + ، على سبيل المثال ، سيكون اكثر صرامة بدرجة كبيرة من اللغة إلى فك جيم) كما يتآمر لجعلها أقل احتمالا.

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

تحديث : Decompiler التكنولوجيا لا تزال صعبة للغاية ، ولكن قد تم إحراز تقدم كبير ، حيث أن هذه هي مكتوبة.

قراءة ما هو decompiler؟ لتحديث المعلومات عن المشاريع decompiler.



أعلى 5 الحرة أدوات الربط الشبكي

احفظ هل هناك أي أمل أ decompiler التي من شأنها أن تحول إلى برنامج قابل للتنفيذ م / س + + رمز؟

آخر رابط الوظائف


إنجليزي إنجليزي الألمانية الألمانية الأسبانية الأسبانية الفرنسية الفرنسية الايطالية الايطالية البرتغالية البرتغالية الروسية الروسية الهولندية الهولندية
اليونانية اليونانية الهندية الهندية اليابانية اليابانية الكورية الكورية الصينية الصينية الصينية (المبسطة) الصينية (المبسطة) العربية العربية

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