ASM có api cây mà về cơ bản có thể cung cấp cho bạn cấu trúc đầy đủ của bytecode. Có vẻ như nó khá dễ sử dụng hoặc thậm chí api khách truy cập để in ra trong XML hoặc một số định dạng khác. Bạn không chắc chắn việc sử dụng đó là gì.
Dịch ngược trở lại Java là công việc của trình giải mã và những công việc như Jad làm ok. Nhưng điều đó khó bởi vì a) có thông tin bị mất trong nguồn tới bản dịch bytecode và b) có sự mơ hồ trong nhiều nguồn đó có thể mang lại cùng một mã byte.
Nếu bạn thực sự muốn chuyển từ bytecode sang ngôn ngữ cấp cao khác trực tiếp, điều đó sẽ khó khăn để thực hiện cả hai và toàn diện, vì tất cả các lý do tương tự là giải mã khó, ngoại trừ thậm chí tệ hơn vào một ngôn ngữ khác.
Nếu bạn muốn chuyển từ nguồn Java sang nguồn ngôn ngữ khác, điều này đã được thực hiện trước đây, như trong Java-to-Python converter này. Điều đó có phần dễ dàng hơn khi bạn có thể chuyển đổi Java sang một AST với một số thứ như Antlr hoặc các công cụ biên dịch Java tích hợp, Project Jackpot, v.v.
Nguồn
2009-03-12 14:10:11