Tôi biết rõ về các công cụ Java để thao tác, tạo, giải mã mã byte JVM (ASM, cglib, jad, v.v.). Những công cụ tương tự tồn tại cho mã bytecode CLR? Mọi người có thực hiện thao tác bytecode cho CLR không?Công cụ mã bytecode CLR/.NET nào tồn tại?
Trả lời
Bytecode là định dạng nhị phân. Các assembly .NET hoạt động khá khác nhau về cách chúng lưu trữ các lệnh thực thi.
Thay vì biên dịch xuống cấu trúc giống như bytecode, ngôn ngữ .NET được biên dịch thành một ngôn ngữ trung gian (trên thực tế, nó được gọi là chỉ - IL).
Đây là ngôn ngữ có thể đọc được của con người trông giống như một phiên bản trình theo hướng đối tượng.
Vì vậy, về mặt kiểm tra hoặc thao tác IL cho các hội đồng riêng lẻ, các công cụ như Reflector và ILDASM cho phép bạn xem thuận tiện IL cho bất kỳ hội đồng nào.
Thao tác có một chút khác biệt, tôi khuyên bạn nên xem xét một số công cụ AOP trong không gian .NET. Tôi cũng khuyên bạn nên xem Phoenix, đó là một dự án biên dịch mà MS có trong các tác phẩm. Nó có một số tính năng thao tác biên dịch thực sự tuyệt vời.
Nếu bạn muốn biết thêm về các công cụ .NET AOP, tôi khuyên bạn nên mở một câu hỏi khác (đó là toàn bộ các sâu khác).
Ngoài ra còn có một số cuốn sách sẽ dạy cho bạn những điểm nhấn của IL. Nó không phải là một ngôn ngữ rất phức tạp để học.
Phản xạ luôn tốt, nhưng Mono.Cecil là công cụ tốt nhất mà bạn có thể yêu cầu tổng thể. Thật vô giá khi thao túng CIL theo bất kỳ cách nào.
Mono.Cecil là một công cụ tuyệt vời như ASM. Đó là một tiểu dự án của Mono, và hoàn toàn là nguồn mở. Nó thậm chí còn cung cấp better feature hơn System.Reflection.
NDepend cho phép bạn thực hiện. NET phân tích phân tích tĩnh (số liệu mã, phân tích phụ thuộc, v.v.). NDepend là rất hữu ích để có được một cái nhìn tổng quan về cấu trúc của các hội đồng .NET của bạn bằng cách sử dụng ma trận phụ thuộc, đồ thị phụ thuộc và số liệu sơ đồ trang web visualizations.
Nó cũng được tích hợp với Trình phản xạ: ví dụ bạn có thể phát hiện các loại và phương thức quan trọng trong cụm của bạn bằng cách sử dụng tương ứng một Loại/Phương pháp Rank metric (chỉ số mã tương tự với Google Page Rank) và chuyển trực tiếp từ NDepend sang Reflector lấy mã được tháo rời trong C#, VB.NET, v.v.
- 1. Công cụ XSLT 2.0 nào tồn tại?
- 2. Có tồn tại: Công cụ tìm mã lặp lại không?
- 3. Công cụ nào tồn tại để so sánh mã C++ với các nguyên tắc mã hóa?
- 4. Có công cụ Javascript nào phát ra bytecode LLVM không?
- 5. Công cụ nào tồn tại để biên dịch mã C++ 2011 cho mục tiêu Windows?
- 6. Công cụ xử lý trước C# có tồn tại không?
- 7. Những công cụ tự động tồn tại cho Clojure
- 8. Các giải pháp thay thế cho công cụ bytecode Java
- 9. Công cụ định dạng SQL miễn phí tồn tại?
- 10. Công cụ lọ không tồn tại Eclipse JAVA
- 11. Công cụ đánh giá mã công khai?
- 12. Làm cách nào để bạn tồn tại trong môi trường mã hóa của công ty?
- 13. Công cụ đo mã tốt?
- 14. Công cụ tạo mã C#
- 15. Có công cụ thao tác mã byte cấp cao của Scala như Javassist không?
- 16. Công cụ/ứng dụng/bất kỳ điều gì bạn muốn tồn tại?
- 17. Học thuyết 2, Cần thực thi mã tiền còn tồn tại/sau tồn tại
- 18. Xóa hướng dẫn khỏi mã Java bytecode
- 19. Làm thế nào để chạy mã bytecode scala trên jvm?
- 20. Trình chuyển đổi/công cụ Java sang C++ có tồn tại không?
- 21. Khởi chạy trình quản lý SDK Android - Thư mục công cụ không tồn tại? Mac
- 22. Công cụ âm thanh mã nguồn mở
- 23. Bảo tồn Chú giải công cụ khi xuất GraphPlot
- 24. Lập trình bằng mã Java bytecode
- 25. Công cụ nào tồn tại để chuyển đổi ứng dụng Delphi 7 sang C# và khung .Net?
- 26. Công cụ Bảo hiểm Mã cho PHP
- 27. Có cách nào để tạo mã bytecode bằng Python không?
- 28. Công cụ phân tích mã cho Android
- 29. Công cụ để thực thi đoạn mã
- 30. Có bất kỳ công cụ DRYer mã nào không?
"Hội đồng NET hoạt động khá khác nhau về cách chúng lưu trữ các hướng dẫn thực hiện" không họ không ... mọi thứ cuối cùng được biên dịch thành "định dạng nhị phân" . Định dạng nhị phân này có tương ứng 1 đến 1 với IL. –