2011-01-16 41 views
19

Có phần mềm nào để thực hiện việc này không? Tôi không tìm thấy bất kỳ thông tin hữu ích trên internet vì vậy tôi yêu cầu ở đây.Làm thế nào để bạn trích xuất mã nguồn của lớp học từ một tệp dll?

+0

Mã nguồn ban đầu đã được biên dịch? Đơn giản là không thể. Một cái gì đó chức năng tương đương? Vâng. – delnan

+0

@delnan - Bạn có ý nghĩa gì về chức năng tương đương? Xin lỗi mới cho tất cả điều này. Tôi không hiểu. Tôi muốn trích xuất các lớp '(viết bằng C# .net) mã từ một tập tin dll. các tập tin dll có giống như quá nhiều lớp học. Bất kỳ cách nào để lấy mã đó ra khỏi dll đó? – ILoveMusic

+0

@ILoveMusic Bạn có thể trích xuất một cái gì đó giống như mã gốc, nhưng không phải chính xác. Sử dụng bộ phản xạ .NET. –

Trả lời

19

Bạn không thể lấy mã chính xác, nhưng bạn có thể nhận phiên bản được giải mã của nó.

Công cụ phổ biến nhất (và tốt nhất) là Reflector, nhưng cũng có các trình giải mã .Net khác (chẳng hạn như Dis#). Bạn cũng có thể dịch ngược IL bằng cách sử dụng ILDASM, đi kèm với .Net Framework SDK Tools.

+6

Những ngày này bạn có lẽ nên sử dụng ILSpy hoặc dotPeek. Cả hai đều miễn phí ** và làm một công việc tuyệt vời. Tôi tìm thấy dotPeek tốt hơn vì điều hướng, và cũng phải mất một thời gian dài cho ILSpy để bắt đầu. Ngoài ra, tôi một lần đã biên dịch lại một assembly mà tôi đã làm xáo trộn (đối với các công cụ kiểm tra) và bộ phản xạ .NET của Redgate bị treo ngay lập tức từ obfuscation đơn giản nhất. ILSpy và dotPeek không có vấn đề gì và đã tải nó ngay lập tức. Họ cũng làm nổi bật lựa chọn để bạn bằng cách nào đó có thể quản lý sự xáo trộn. – MasterMastic

12

Chỉ các ngôn ngữ được quản lý như c#Java mới có thể được biên dịch hoàn toàn.Bạn có thể xem mã nguồn hoàn chỉnh. Đối với Win32 dll bạn không thể nhận mã sorce.

Đối với CSharp dll Sử dụng DotPeek becoz nó miễn phí và các công trình tương tự như ReDgate .Net Compiler

Hãy vui vẻ.

0

Nếu bạn muốn biết chỉ có một số vấn đề cơ bản trong việc lắp ráp dll ví dụ Các lớp học, phương pháp, vv, để tải chúng dyanamically

bạn có thể sử dụng công cụ IL Disassembler do Microsoft cung cấp.

Thường có tại: "C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin"

Các vấn đề liên quan