Bagaimana cara menguraikan suatu .NET EXE menjadi dapat dibaca C# source code?

Saya menulis sebuah C# aplikasi untuk klien beberapa tahun yang lalu, tapi aku tidak lagi memiliki kode sumber. Semua yang saya miliki adalah EXE yang saya dikerahkan pada klien's PC. Apakah ada cara saya bisa menghasilkan C# kode sumber dari EXE?

Mengomentari pertanyaan (2)
Larutan

Reflektor dan add-in FileDisassembler.

Reflektor akan memungkinkan untuk melihat kode sumber. FileDisassembler akan memungkinkan anda untuk mengubahnya menjadi LEBIH baik dari solusi.

Komentar (8)

Ketika Gerbang Merah mengatakan tidak akan ada lagi versi gratis .Net Reflector, saya mulai menggunakan ILSpy dan Telerik's JustDecompile. Saya telah menemukan ILSpy untuk menguraikan lebih akurat dari JustDecompile (yang masih dalam versi Beta). Red Gate telah mengubah keputusan mereka dan masih memiliki versi gratis .Net Reflector, tapi sekarang aku seperti ILSpy.

Dari ILSpy web (http://www.ilspy.net/):

ILSpy adalah open-source .NET perakitan browser dan decompiler.

ILSpy Fitur

  • Majelis browsing
  • IL Pembongkaran
  • Dekompilasi untuk C#
  • Mendukung lambdas dan 'yield return'
  • Menunjukkan dokumentasi XML
  • Penghematan sumber daya
  • Mencari jenis/metode/sifat (substring)
  • Hyperlink-berdasarkan jenis/metode/properti navigasi
  • Tempat/Berasal tipe navigasi
  • Navigasi sejarah
  • BAML untuk XAML decompiler
  • Simpan Perakitan seperti C# Proyek
  • Menemukan penggunaan bidang/metode
  • Extensible melalui plugin (MEF)

Update:

April 15, 2012, ILSpy 2.0 dirilis. Fitur-fitur baru dibandingkan dengan versi 1.0:

  • Majelis Daftar
  • Dukungan untuk decompiling Ekspresi pohon
  • Dukungan untuk diangkat operatores pada nullables
  • Menguraikan dengan Visual Basic
  • Cari untuk beberapa string yang dipisahkan oleh ruang (mencari "Perakitan manager" di ILSpy.exe akan menemukan AssemblyListManager)
  • Mengklik pada variabel lokal akan menyoroti semua kejadian dari variabel
  • Ctrl+F dapat digunakan untuk pencarian dalam decompiled tampilan kode

Update:

  • ILSpy 2.1 mendukung async/menanti dekompilasi
Komentar (5)

Reflektor tidak lagi bebas pada umumnya, tetapi mereka menawarkan secara gratis untuk open source pengembang: http://reflectorblog.red-gate.com/2013/07/open-source/

Tapi beberapa perusahaan seperti DevExtras dan JetBrains telah menciptakan alternatif gratis:

DevExtras CodeReflect

JetBrains DotPeek

Komentar (6)

Reflektor dan File Disassembler add-in dari Denis Bauer. Itu benar-benar menghasilkan proyek-proyek sumber dari majelis, di mana Reflektor sendiri hanya menampilkan dibongkar sumber.

DITAMBAHKAN: Saya paling favorit adalah JetBrains' dotPeek.

Komentar (3)

Telerik JustDecompile adalah gratis dan memiliki fitur untuk membuat proyek-proyek dari .NET rakitan.

Komentar (2)

I'm terkejut tidak ada yang telah disebutkan Microsoft's [ildasm][1]. Ini mungkin tidak secantik ILSpy atau Reflektor, tetapi ia datang dengan Visual Studio sehingga banyak pengembang sudah memiliki itu.

Untuk menjalankan itu (dengan asumsi VS 2013, harus serupa untuk versi lain):

  1. Pilih Start > All Program > Visual Studio 2013 > Visual Studio Tools.
  2. Double-klik pada Pengembang Command Prompt untuk VS2013.
  3. Run "ildasm" dari hasil command prompt.
  4. Dalam tool, pilih File > Buka dan buka aplikasi yang dijalankan atau DLL.

Sekarang anda dapat menavigasi DLL struktur. Double-klik pada anggota kelas untuk melihat IL. Menggunakan File > Dump untuk ekspor IL ke file.

[1]: https://msdn.microsoft.com/en-us/library/f7dy01k1(v=vs. 110).aspx

Komentar (5)

Anda ingin reflektor.

Komentar (0)