Обфускация HTML5 игры


8

HTML5-игры имеют видимый исходный код. Есть ли способ сделать их как SWF-файл?

Как скрыть алгоритм игры?

Что вы думаете о плагине Firefox JavaScript Deobfuscator и обфускации?


1
Если вы сообщите нам причину, по которой вы хотите запутать, мы можем дать вам гораздо лучший ответ, возможно (возможно), показать, что вам на самом деле не нужно скрывать свой код.
— Jcora

3
Также SWF-файл также не защищен .. вы можете легко декомпилировать и извлекать из него все ресурсы и код. Там есть обфускаторы, но они не останавливают то, что действительно решительно настроено.
— bummzack

Сколько времени нужно, чтобы полностью восстановить приложение swf после декомпиляции?
— Рустам

Кроме того, почему вы хотите?
— Брайс

Ответы:


10

Если вы хотите защитить свой источник, не пишите его в HTML / Javascript?

Часть действительно хороших вещей о сети, так как она понятна человеку. Это делает его отличным учебным ресурсом. Если вы говорите мне, что никогда не смотрели на источник сайта, чтобы узнать, как он что-то делает, то не стесняйтесь сказать мне, что я неправ.

Я все делюсь любовью с кодом, иначе я бы не стал отвечать на вопросы на сайте о предложении помощи, все бесплатно, не так ли?

Изменить: я сказал, что я думаю об этом, есть ли способ сделать его не читаемым? Нет, не в чистом JS / HTML. Причина этого проста: где-то вниз по линии это становится читабельным. Если вы запутываете его, то вас получает деобфускатор. Если вы используете шифр или каким-то образом перевели его, в какой-то момент вам придется перевести его обратно в javascript (и код для его перевода тоже должен быть в вашем источнике!).

Лучшее, что вы можете сделать, это защитить от кражи пропускной способности и запутать, если вы действительно чувствуете необходимость, но это не остановит людей, если они действительно настроены.


6
Flash и Java могут быть декомпилированы, двоичные файлы могут быть разобраны, Javascript может быть отменен. Ваш источник не защищен только потому, что вы не написали его в javascript.
— Esailija

2
@Esailija среднее усилие, которое требуется, не то же самое, за исключением того, что вы опытный реверс-инженер / эксперт по безопасности / хакер / как всегда.
— daemonfire300

3
Просто цитата из любого места: «То, что мужчина делает, может отменить любой другой человек». и я добавляю к этому: «При правильном намерении и воле ничто действительно не защищено».
— Рикардо Соуза

ну, я бы не назвал это действительно хорошей вещью; больше ситуации "благословение и проклятие"
— CobaltHex

Я бы назвал это «базовой механикой»: ее действительно легко украсть в Интернете. Вот почему у нас есть скорость и сложность инноваций, которые мы делаем. Ньютон, Пикассо, Элиот и я уверен, что многие из них изобрели максимы, касающиеся прямой кражи, даже если это благородно оправдано плечами гигантов. Шекспир отлично справился с воровством.
— Мэтт Кемп

5

Вы можете поместить много этого на сервер через Node.js и просто вернуть обратно результаты функций. но кроме этого, как говорит Мэтт Кемп. Код, который запускается, читается человеком, его невозможно скрыть.


2

Даже если вы не запутываете свой код, HTML / JS уже находится на том же уровне сложности, что и обратный инжиниринг, как SWF.

SWF-файлы содержат исходный код Actionscript (IIRC), комментарии и т. Д., Если они не запутаны. Имена объектов и т. Д. Также содержатся в SWF.

Существуют SWF-декомпиляторы / перекомпиляторы, и только то, что вы не можете увидеть их в текстовом редакторе, не означает, что SWF никоим образом не защищен от реверс-инжиниринга.

На самом деле уровень запутывания действительно ничем не отличается от SWF. Вы можете запутать свой JS-код с помощью некоторого обфускатора, но это только затрудняет интерпретацию отчетов об ошибках.

Вы, вероятно, хотите сосредоточить свои усилия на том, чтобы сделать что-то, что стоит украсть, а не на том, чтобы люди это крали. Множество SWF-файлов срываются и используются в несанкционированных целях (с измененной графикой и т. Д.)


2

Используйте бесплатный Yahoo YUI компрессор.

Я использую его, потому что он сильно сжимает мой код (включая удаление комментариев и ненужных пробелов). Это позволяет мне комментировать и структурировать мой код именно так, как я хочу, не беспокоясь о том, как легко я делаю его для воров.

Кроме того, если вы хотите прочитать Javascript для сложного сайта после того, как все имена переменных и функций были по существу уничтожены - что ж, удачи в этом. Гораздо сложнее понять, что делает код, когда у вас нет подсказок.

(Хотя с YUI-компрессором вам может потребоваться расширить его функциональность, чтобы также избавиться от имен функций. Я изменил способ, которым я называю функции, специально для того, чтобы автоматически и выборочно удалять большинство имен функций. Для этого может потребоваться некоторый пользовательский код на вашем конце .)


1

Нет, и нет никаких причин для этого! Если вы хотите продать свою работу, вы можете сделать это без запутывания. Люди платят за контент, а не за код. Продавайте свои произведения искусства, рассказы, музыку и т. Д. И свободно распространяйте код (в любом случае, он уже есть).


1

HTML5-игры имеют видимый исходный код. Есть ли способ сделать их как SWF-файлы?

Да, используйте Flash и переведите свой код в ActionScript.

Как можно скрыть игровые алгоритмы?

В абсолютном выражении вы не можете этого сделать.

Что вы думаете о плагине Firefox JavaScript Deobfuscator и обфускации?

Запутывание - не что иное, как очень тонкий барьер для кого-то, кто будет серьезно относиться к краже вашего кода. Тем не менее, он прост в настройке, он может дать отпор самым глупым сценаристам, и это единственное, что вы можете сделать для защиты клиентского кода. Дополнительным преимуществом является то, что он уменьшает размер скрипта (ускоряет загрузку) и может даже оптимизировать код (ускоряет выполнение). Проверьте эту запись на переполнение стека для деталей об обфускации. Резюме: у вас есть много вариантов. Я лично попробовал UglifyJS и получил очень хорошие результаты.


0

Как мы все знаем, HTML5 опирается на JavaScript как язык программирования. Теоретически все инструменты, которые защищают JavaScript, должны работать на HTML5.

Единственный известный мне инструмент, который в настоящее время поддерживает HTML5 в контексте разработки игр, - это JScrambler . Я не уверен, что другие будут работать.

Для морской свиньи обсуждение, запутывание не серебряная пуля. У нас есть программное обеспечение, которое скомпилировано в зашифрованном виде, защищено несколькими решениями по защите от копирования, и все же мы можем получить его без оплаты. Тем не менее, я считаю, что запутанность превосходит оставление вашего кода открытым для любого, чтобы читать, когда вы не намерены.

Я действительно люблю open source и поддерживаю движение, но иногда закрытие источника имеет большой смысл.


0

Вы можете использовать собственный код. Программирование на C ++ и компиляция для HTML5. Cocos2d-X - это библиотека, которая работает на iOS, Android и HTML5. Ваш код будет скрыт.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.