Trò chơi HTML5 có mã nguồn có thể xem được. Có cách nào để làm cho chúng như tập tin swf?
Làm thế nào để ẩn thuật toán trò chơi?
Bạn nghĩ gì về Plugin Deobfuscator của Firefox JavaScript và obfuscation?
Trò chơi HTML5 có mã nguồn có thể xem được. Có cách nào để làm cho chúng như tập tin swf?
Làm thế nào để ẩn thuật toán trò chơi?
Bạn nghĩ gì về Plugin Deobfuscator của Firefox JavaScript và obfuscation?
Câu trả lời:
Nếu bạn muốn bảo vệ nguồn của mình, đừng viết nó bằng HTML / Javascript?
Một phần của những điều thực sự hay về web vì tất cả đều có thể đọc được. Điều này làm cho nó một tài nguyên học tập tuyệt vời. Nếu bạn nói với tôi rằng bạn chưa bao giờ nhìn vào nguồn của một trang web để tìm hiểu cách thức hoạt động của một cái gì đó, thì hãy nói với tôi rằng tôi đã sai.
Tôi hoàn toàn chia sẻ tình yêu với mã, nếu không tôi sẽ không trả lời các câu hỏi trên một trang web về việc cung cấp trợ giúp, tất cả đều miễn phí, phải không?
Chỉnh sửa: Tôi đã nói những gì tôi nghĩ về nó, có cách nào để làm cho nó không thể đọc được? Không, không phải trong JS / HTML thuần túy. Lý do cho điều này là đơn giản: Ở đâu đó, nó trở nên dễ đọc. Nếu bạn làm xáo trộn nó thì một deobfuscator sẽ giúp bạn. Nếu bạn sử dụng một mật mã hoặc dịch nó bằng cách nào đó, đôi lúc bạn phải dịch lại thành javascript (và mã để dịch lại cũng cần phải có trong nguồn của bạn!).
Điều tốt nhất bạn có thể làm là bảo vệ chống trộm băng thông và làm xáo trộn nếu bạn thực sự cảm thấy cần thiết, nhưng sẽ không ngăn được mọi người nếu họ thực sự quyết tâm.
Bạn có thể đặt rất nhiều nó trên máy chủ thông qua Node.js và chỉ cần trả về kết quả của các hàm. nhưng khác hơn là nó giống như Matt Kemp nói. Mã chạy được con người có thể đọc được, không thể che giấu nó.
Ngay cả khi bạn không làm xáo trộn mã của mình, HTML / JS vẫn có cùng mức độ khó để thiết kế ngược lại với SWF.
Các tệp SWF chứa mã Actioncript gốc, (IIRC), với các bình luận, v.v., trừ khi chúng bị xáo trộn. Tên của các đối tượng, vv, cũng được chứa trong SWF.
Trình dịch ngược / biên dịch lại SWF tồn tại và chỉ vì bạn không thể thấy nó bằng trình soạn thảo văn bản, không có nghĩa là SWF an toàn trong mọi cách khỏi kỹ thuật đảo ngược.
Trong thực tế, mức độ obfuscation thực sự không khác gì một SWF. Bạn có thể làm xáo trộn mã JS của mình bằng cách sử dụng một số obfuscator, nhưng điều đó chỉ làm cho các báo cáo lỗi khó diễn giải hơn.
Bạn có thể muốn tập trung nỗ lực của mình vào việc tạo ra thứ gì đó đáng để ăn cắp, thay vì ngăn chặn mọi người ăn cắp nó. Rất nhiều SWF bị gạt ra và được sử dụng cho các mục đích trái phép (với đồ họa thay đổi, v.v.)
Sử dụng máy nén Yahoo YUI miễn phí.
Tôi sử dụng nó bởi vì nó nén mã của tôi mạnh mẽ (bao gồm xóa các bình luận và khoảng trắng không cần thiết). Điều này cho phép tôi nhận xét và cấu trúc mã của mình chính xác theo cách tôi muốn mà không phải lo lắng về việc tôi tạo mã cho kẻ trộm dễ dàng như thế nào.
Ngoài ra, nếu bạn muốn đọc Javascript cho một trang web phức tạp sau khi tất cả các tên hàm và hàm về cơ bản đã bị hủy - tốt, chúc may mắn với điều đó. Khó hơn nhiều để tìm ra mã nào đang làm khi bạn không có gợi ý.
(Mặc dù với máy nén YUI, bạn có thể cần tăng cường chức năng của nó để loại bỏ tên hàm. Tôi đã thay đổi cách tôi đặt tên cho các chức năng cụ thể cho mục đích tự động và loại bỏ có chọn lọc hầu hết các tên hàm. Điều này có thể yêu cầu một số mã tùy chỉnh ở cuối .)
Trò chơi HTML5 có mã nguồn có thể xem được. Có cách nào để làm cho chúng giống như các tập tin swf?
Vâng, sử dụng Flash và dịch mã của bạn sang ActionScript.
Làm thế nào một người sẽ đi về việc ẩn các thuật toán trò chơi?
Nói một cách tuyệt đối, bạn không thể làm điều đó.
Bạn nghĩ gì về Plugin Deobfuscator của Firefox JavaScript và obfuscation?
Obfuscation không là gì ngoài một rào cản rất mỏng đối với ai đó nghiêm túc về việc đánh cắp mã của bạn. Tuy nhiên, việc cài đặt rất đơn giản, nó có thể loại bỏ những đứa trẻ kịch bản ngu ngốc nhất và đó là điều duy nhất bạn có thể làm để bảo vệ mã phía máy khách. Nó có lợi ích bổ sung là giảm kích thước tập lệnh (tải xuống nhanh hơn) và thậm chí có thể tối ưu hóa mã (thực thi nhanh hơn). Kiểm tra mục này trên Stack Overflow để biết chi tiết về obfuscation. Tóm tắt: bạn có nhiều lựa chọn. Cá nhân tôi đã thử UglifyJS và có kết quả rất khả quan.
Như chúng ta đều biết HTML5 dựa vào JavaScript như một ngôn ngữ lập trình. Về lý thuyết, tất cả các công cụ bảo vệ JavaScript sẽ hoạt động trên HTML5.
Công cụ duy nhất tôi biết hiện đang hỗ trợ HTML5 trong bối cảnh phát triển Trò chơi là JScrambler . Tôi không chắc người khác sẽ làm việc.
Đối với cá heo của cuộc thảo luận, obfuscation không phải là một viên đạn bạc. Chúng tôi có phần mềm được biên dịch mã hóa, được bảo vệ bằng một số giải pháp chống sao chép và vẫn có thể lấy chúng mà không phải trả tiền. Điều đó nói rằng tôi tin rằng nhịp đập obfuscation để mã của bạn mở cho bất kỳ ai đọc khi bạn có ý định không phải là điều đó.
Tôi thực sự yêu thích nguồn mở và ủng hộ phong trào nhưng đôi khi việc đóng nguồn lại có ý nghĩa rất lớn.