Trò chơi HTML5


8

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?


1
Nếu bạn cho chúng tôi biết lý do mà bạn muốn làm xáo trộn, chúng tôi có thể cung cấp cho bạn câu trả lời tốt hơn nhiều, có thể (có thể), cho bạn thấy rằng bạn thực sự không cần phải giấu mã của mình.
jcora

3
Ngoài ra, tệp SWF cũng không được bảo vệ .. bạn có thể dễ dàng dịch ngược và trích xuất tất cả các tài sản và mã từ nó. Có những kẻ giấu mặt ngoài kia, nhưng họ không ngăn cản điều gì đó thực sự quyết tâm.
bummzack

Bạn cần bao nhiêu thời gian để khôi phục hoàn toàn ứng dụng swf sau khi dịch ngược?
Rustam

Ngoài ra, tại sao bạn muốn?
brice

Câu trả lời:


10

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.


6
Flash và java có thể được dịch ngược, các tệp nhị phân có thể được phân tách, javascript có thể được khử. Nguồn của bạn không được bảo vệ chỉ vì bạn không viết nó bằng javascript.
Esailija

2
@Esailija nỗ lực trung bình cần có là không giống nhau, ngoại trừ bạn là một kỹ sư đảo ngược được đào tạo / chuyên gia bảo mật / hacker / waht cho đến nay.
daemonfire300

3
Chỉ cần một câu trích dẫn từ bất cứ nơi nào: "Những gì một người đàn ông làm bất kỳ người đàn ông khác có thể hoàn tác." và tôi thêm vào đó: "Với ý định và ý chí đúng đắn, không có gì thực sự được bảo vệ."
Ricardo Souza

tôi sẽ không gọi nó là một điều thực sự tốt đẹp; nhiều hơn về một tình huống "phước lành và một lời nguyền"
CobaltHex

Tôi sẽ gọi nó là 'cơ chế cơ bản': nó thực sự dễ dàng để đánh cắp trên web. Đây là lý do tại sao chúng tôi có tốc độ và sự phức tạp của đổi mới chúng tôi làm. Newton, Picasso, Eliot và tôi chắc chắn có nhiều câu châm ngôn được đặt ra xung quanh hành vi trộm cắp trực tiếp, ngay cả khi được biện minh một cách cao quý bằng vai của những người khổng lồ. Shakespeare rất xuất sắc trong vụ trộm.
Matt Kemp

5

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ó.


2

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.)


2

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 .)


1

Không, và thực sự không có lý do để! Nếu bạn muốn bán tác phẩm của mình, bạn có thể làm điều đó mà không bị xáo trộn. Mọi người trả tiền cho nội dung, không phải mã. Bán tác phẩm nghệ thuật, câu chuyện, âm nhạc, v.v. của bạn và tặng mã miễn phí (dù sao thì nó cũng vậy).


1

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.


0

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.


0

Bạn có thể sử dụng mã gốc. Lập trình trên C ++ và biên dịch cho HTML5. Cocos2d-X là một thư viện hoạt động trên iOS, Android và HTML5. Mã của bạn sẽ bị ẩn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.