تخطَّ إلى المحتوى

ILSpy - مفكك أكواد .NET

ILSpy - مفكك أكواد .NET

ILSpy هي أداة مفتوحة المصدر متصفح تجميع .NET والمفكك. عكس عملية الترجمة، وتحويل لغة Microsoft المتوسطة (MSIL/CIL) إلى C# واضح وعالي المستوى (وغيره من اللغات). إنها أداة مجانية قياسية لفحص وتحليل والهندسة العكسية للملفات الثنائية .NET — من الفرز السريع للبرامج الضارة إلى تصحيح مكتبات الطرف الثالث بدون مصدر. يعمل كتطبيق واجهة رسومية لـ Windows وتطبيق Avalonia متعدد المنصات وملحق VS Code و ilspycmd CLI.

التثبيت

المتغيرالطريقة
Windows GUIتحميل المثبت/الضغط من GitHub Releases
Cross-platform GUIبناء AvaloniaILSpy (Linux/macOS)
CLI (ilspycmd)dotnet tool install --global ilspycmd
VS Codeتثبيت ملحق “ILSpy .NET Decompiler”
التحقق CLIilspycmd --version

أساسيات واجهة رسومية

الإجراءالطريقة
فتح التجميعFile → Open، أو اسحب .dll/.exe في
تحميل التبعياتيحل ILSpy المجموعات المرجعية تلقائياً
التنقلتوسيع الشجرة: assembly → namespace → type → member
فك تجميع عضوانقر فوقه؛ C# يظهر في الجزء الرئيسي
تحليل الاستخداماتClick right → Analyze (من يدعو/يستخدم هذا؟)
بحثCtrl+F / صندوق بحث للأنواع والأعضاء
تغيير إصدار اللغةاسحب الشريط (C# 1.0 … أحدث)
حفظ المشروع المفككFile → Save Code (تصدير .csproj الكامل)

تحليل (المراجع المتقاطعة)

Right-click → Analyze عرض
Instantiated By
Used By
Assigned By / Read By (fields)
Overridden By / Overrides
Exposed By

هذا هو سير العمل RE الأساسي: اختر طريقة مريبة واتبع من يدعوها وما الذي تلمسه.

ilspycmd (سطر الأوامر)

الأمرالوصف
ilspycmd Assembly.dllفك تجميع المجموعة بأكملها إلى stdout
ilspycmd -o out/ Assembly.dllفك إلى دليل
ilspycmd -p -o proj/ Assembly.dllتصدير مشروع قابل للترجمة .csproj
ilspycmd -t Namespace.Type Assembly.dllفك تجميع نوع واحد
ilspycmd -il Assembly.dllعرض IL الخام بدلاً من C#
ilspycmd -lv CSharp10_0 Assembly.dllاضبط إصدار لغة C#
ilspycmd --nested-directories -p -o out/ A.dllمرآة المساحات كمجلدات
ilspycmd -r LIBDIR Assembly.dllأضف مسار بحث مرجع التجميع

فحص البيانات الوصفية والموارد

الهدفالطريقة
الموارد المضمنةنقطة الشجرة → Resources؛ استخراج عبر Save
جداول البيانات الوصفيةView → “Metadata” (جداول خام، tokens)
النصوص/ILبدل اسحب الزر إلى IL
PInvoke/nativeمرئي في توقيعات الطريقة

سير العمل المشتركة

# فرز عينة .NET مريبة: تفريغ مصدر كامل للبحث عن grep
ilspycmd -o sample_src/ suspicious.dll
grep -rin "DownloadString\|FromBase64String\|Process.Start" sample_src/

# استعادة مشروع قابل للبناء من DLL فقدت مصدره
ilspycmd -p -o recovered/ MyLib.dll

# انظر إلى IL الخام عندما يكون فك C# معفاً
ilspycmd -il obfuscated.dll | less

بالنسبة للمجموعات المعفاة بشدة، قم بإقران ILSpy مع deobfuscator (مثل de4dot) أولاً، ثم فكك الملف الثنائي النظيف.

ILSpy مقابل أدوات .NET الأخرى

الأداةالنوعملاحظات
ILSpyDecompiler + browserمجاني، مفتوح المصدر، CLI + GUI
dnSpy / dnSpyExDecompiler + debuggerتحرير وتصحيح المجموعات
dotPeekDecompilerمجاني (JetBrains)، Windows
ILDASMDisassemblerIL فقط، يأتي مع .NET SDK

الموارد