كيف يمكنني إلغاء ترجمة ملف .NET EXE إلى كود مصدر C# قابل للقراءة؟
-
05-07-2019 - |
سؤال
لقد كتبت تطبيق 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 خلقت البدائل الخالية من:
Telerik JustDecompile عبارة مجانا ويحتوي على ميزة لإنشاء مشاريع من التجميعات .NET.
أنا مندهش أنه لم يذكر أحد مايكروسوفت ildasm.قد لا يكون جميلًا مثل ILSpy أو Reflector، ولكنه يأتي مع Visual Studio، لذا يمتلكه العديد من المطورين بالفعل.
لتشغيله (بافتراض أن VS 2013، يجب أن يكون مشابهًا للإصدارات الأخرى):
- حدد ابدأ > كافة البرامج > Visual Studio 2013 > أدوات Visual Studio.
- انقر نقرًا مزدوجًا فوق موجه أوامر المطور لـ VS2013.
- قم بتشغيل "ildasm" من موجه الأوامر الناتج.
- في الأداة، حدد ملف > فتح وافتح ملفك القابل للتنفيذ أو ملف DLL.
الآن يمكنك التنقل في بنية DLL.انقر نقرًا مزدوجًا فوق أعضاء الفصل لرؤية IL.استخدم ملف > تفريغ لتصدير IL إلى ملف.
عاكس .