كيف يمكنني إلغاء ترجمة ملف .NET EXE إلى كود مصدر C# قابل للقراءة؟

StackOverflow https://stackoverflow.com/questions/179741

سؤال

لقد كتبت تطبيق C# لأحد العملاء منذ عامين، لكن لم يعد لدي كود المصدر.كل ما لدي هو ملف EXE الذي قمت بنشره على جهاز الكمبيوتر الخاص بالعميل.هل هناك طريقة يمكنني من خلالها إنشاء كود مصدر C# من ملف EXE؟

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

المحلول

العاكس و الوظيفة الإضافية <لأ href = لها "HTTP : //www.denisbauer.com/Home/ReflectorFileDisassembler "يختلط =" noreferrer "> FileDisassembler

والعاكس لن تسمح لرؤية شفرة المصدر. سوف FileDisassembler تسمح لك لتحويله إلى حل VS.

نصائح أخرى

عندما قالت Red Gate أنه لن يكون هناك نسخة مجانية من .Net Reflector، بدأت في استخدامه ILSpy و Telerik JustDecompile.لقد وجدت أن ILSpy يقوم بفك الترجمة بشكل أكثر دقة من JustDecompile (الذي لا يزال في مرحلة تجريبية).لقد غيرت Red Gate قرارها ولا تزال لديها نسخة مجانية من .Net Reflector، ولكني الآن أحب ILSpy.

من موقع ILSpy (http://www.ilspy.net/):

ILSpy هو متصفح تجميع .NET مفتوح المصدر ومفكك ترجمته.

مميزات التجسس

  • تصفح الجمعية
  • التفكيك
  • التفكيك إلى C#
  • يدعم لامدا و"عائد العائد"
  • يعرض وثائق XML
  • توفير الموارد
  • البحث عن الأنواع/الطرق/الخصائص (سلسلة فرعية)
  • التنقل على أساس الارتباط التشعبي من النوع/الطريقة/الخاصية
  • التنقل بين الأنواع الأساسية/المشتقة
  • تاريخ الملاحة
  • BAML إلى XAML decompiler
  • احفظ التجميع كمشروع C#
  • ابحث عن استخدام الحقل/الطريقة
  • قابلة للتوسعة عبر المكونات الإضافية (MEF)

تحديث:

في 15 أبريل 2012، تم إصدار ILSpy 2.0.ميزات جديدة مقارنة بالإصدار 1.0:

  • قوائم الجمعية
  • دعم لتفكيك أشجار التعبير
  • دعم المشغلين المرفوعين على القيم الفارغة
  • فك إلى Visual Basic
  • ابحث عن سلاسل متعددة مفصولة بمسافات (البحث عن "مدير التجميع" في ILSpy.exe سيؤدي إلى العثور على AssemblyListManager)
  • سيؤدي النقر فوق متغير محلي إلى إبراز كافة التواجدات الأخرى لهذا المتغير
  • يمكن استخدام Ctrl+F للبحث داخل طريقة عرض التعليمات البرمجية التي تم فك ترجمتها

تحديث:

  • يدعم ILSpy 2.1 إلغاء الترجمة غير المتزامن/الانتظار

والعاكس لم يعد مجانا بشكل عام، لكنها لا تقدم عليه مجانا لفتح مطوري المصادر: <لأ href = "http://reflectorblog.red-gate.com/2013/07/open-source/" يختلط = "noreferrer"> http://reflectorblog.red-gate.com/2013/07/open-source/

ولكن عدد قليل من الشركات مثل DevExtras وJetBrains خلقت البدائل الخالية من:

DevExtras CodeReflect

JetBrains DotPeek

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

وأضاف:. أحدث بلدي المفضل هو JetBrains " dotPeek

Telerik JustDecompile عبارة مجانا ويحتوي على ميزة لإنشاء مشاريع من التجميعات .NET.

أنا مندهش أنه لم يذكر أحد مايكروسوفت ildasm.قد لا يكون جميلًا مثل ILSpy أو Reflector، ولكنه يأتي مع Visual Studio، لذا يمتلكه العديد من المطورين بالفعل.

لتشغيله (بافتراض أن VS 2013، يجب أن يكون مشابهًا للإصدارات الأخرى):

  1. حدد ابدأ > كافة البرامج > Visual Studio 2013 > أدوات Visual Studio.
  2. انقر نقرًا مزدوجًا فوق موجه أوامر المطور لـ VS2013.
  3. قم بتشغيل "ildasm" من موجه الأوامر الناتج.
  4. في الأداة، حدد ملف > فتح وافتح ملفك القابل للتنفيذ أو ملف DLL.

الآن يمكنك التنقل في بنية DLL.انقر نقرًا مزدوجًا فوق أعضاء الفصل لرؤية IL.استخدم ملف > تفريغ لتصدير IL إلى ملف.

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