2009-02-23 5 views
26

Tôi đang tìm một trình tách rời hoặc tốt hơn, một trình giải mã cho .net. Tình hình là mã nguồn cho một hội đồng được viết bởi một trong những người tiền nhiệm của tôi bị mất và tôi muốn có một cái nhìn để xem những gì nó đang làm.Trình tách/giải mã .net

Tôi biết rằng ildasm đi kèm với việc cài đặt Visual Studio vì vậy tôi có thể nhận được tại MSIL, nhưng tôi đã hy vọng có một chương trình đủ thông minh để làm việc trở lại mã C# (hoặc xấp xỉ tốt nhất).

Có công cụ nào cho việc này không?

(Nếu không, tôi cho rằng nó sẽ là một cái cớ tốt cho tôi ngồi xuống và bắt đầu học MSIL)

Trả lời

40

Bạn đã xem Reflector chưa?

http://www.red-gate.com/products/reflector/

+0

cổng đỏ = tuyệt vời – annakata

+0

Mặc dù tôi muốn đồng ý với annakata, rõ ràng là anh ấy sai. Reflector = đôi tuyệt vời! :) – Russ

+6

Cổng đỏ ban đầu không viết Reflector. Công cụ duy nhất khác mà tôi đã sử dụng từ chúng (SQL Intellisense cho SQL Server 2005) là chậm. :) – mmcdole

7

Reflector là con đường để đi, nhưng nếu bạn không thể sử dụng đối với một số lý do, tàu Microsoft một disassembler gọi ILDASM với khuôn khổ.

Nguồn tốt cho kiến ​​thức MSIL là cuốn sách Expert .NET 2.0 IL Assembler bởi Serge Lidin.

55

Bây giờ Red Gate đã bắt đầu tính phí cho các công cụ .NET Reflector bạn có thể muốn kiểm tra các lựa chọn thay thế miễn phí thay vì ...

Telerik JustDecompile

JetBrains dotPeek

(Open Source) ILSpy

+1

Chỉ cần thử bản beta ILSpy, và nó tốt như Reflector cho tôi. Trừ đi rắc rối cấp phép. –

+0

dotPeek là một bản sao eval - trông gần như tốt như Reflector nhưng dường như chạy chậm hơn một chút.ILSpy thực hiện thủ thuật cho tôi, mặc dù giao diện của nó không phải là khá trơn tru - thành viên phân loại và điều trị generics cả hai để lại một chút để được mong muốn, nhưng đủ tốt, đặc biệt là ở mức giá! – yoyo

+2

Tính đến 2012 dotPeek hiện đã hoàn toàn miễn phí và không còn là bản dùng thử eval nữa. –

1

Ok ,

Tôi đã thử trên một dự án. ILSpy

Telerik JustDecompile

NET Reflector Demo

Tất cả có thể tạo Visual C# dự án. Mã được tạo không biên dịch cho JustDecompile và Reflector. Trong một trường hợp, ILSpy đã tạo ra một mã được biên dịch (chỉ cần tham khảo) Sai lầm IlSpy không giống như được tìm thấy ở những người khác. Tất cả mã được tạo có thể được sửa nếu một người biết C# đủ tốt.

Một hướng thú vị có thể được sử dụng để dịch ngược mã bằng cách sử dụng cả JustDecompile và Ilspy và hợp nhất các mã chính xác vì các trình dịch ngược (và thứ ba) dường như tạo ra các lỗi khác nhau.