Hai câu hỏi liên quan đến obfuscation:F # MSIL obfuscation
1) Có bất kỳ công cụ có thể tháo rời F # trở lại hình thức mã nguồn của nó, hoặc một cái gì đó gần gũi với nó, từ hình thức mục tiêu MSIL? Đây không phải là một nỗ lực bảo mật thông qua tối tăm nhưng tôi muốn bảo vệ một số mã nguồn từ "trộm cắp".
2) Tôi nhìn ngắn gọn một số đầu ra trình biên dịch F # và nói chung nó xuất hiện khá vô nghĩa so với những gì bạn nhận được nếu bạn tháo rời mã biên dịch C#, có lẽ vì C# gần hơn với biểu diễn trung gian MSIL. Mã chỉ đọc một phần duy nhất mà tôi đã thấy từ trình biên dịch C# là các trình vòng lặp (và có lẽ là không đồng bộ như của C# 5.0).
Cho đến nay ấn tượng của tôi là mã F # được biên dịch là hợp lý "bị xáo trộn" nhưng điều đó có đúng không? (Tôi nhận ra đây là một câu hỏi hơi chủ quan.)
Làm thế nào tốt là đối thủ của bạn? Bất kỳ nhà phân tích phần mềm độc hại có thẩm quyền nào cũng có thể đảo ngược mã của bạn từ một kết xuất bộ nhớ, không bao giờ bận tâm đến IL. Bạn là ai "bảo vệ" nguồn của bạn? –
Đối thủ cạnh tranh tiềm năng. Tôi thấy nó không chắc nhưng an toàn hơn là xin lỗi. Tôi chỉ không muốn mã dễ bị xáo trộn với các công cụ phù hợp. Nó phải đủ khó để tự viết mã dễ dàng hơn. Tôi không nghĩ rằng các nhà phân tích phần mềm độc hại nằm trong phạm vi mục tiêu. Giống như một người có hiểu biết trung cấp về F #. :-) –
Tôi sẽ không nói nó bị làm xáo trộn. Nó chỉ được dịch. Tất cả các đường F # được hoàn tác. Ngoài ra nếu bạn dịch ngược nó, nó khá rõ ràng rằng nó đến từ F #, và bất kỳ F #/C# cá nhân có kinh nghiệm bán lại có thể tổng hợp lại F # từ phiên bản được biên dịch lại. Có những mẫu xảy ra, và tất cả những gì bạn phải làm là tạo ra một vài kịch bản thử nghiệm để xem bộ giải mã làm gì và bạn có thể thấy mọi thứ được làm việc như thế nào. – devshorts