Обфускация 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-файлов срываются и используются в несанкционированных целях (с измененной графикой и т. Д.)

MarkR
источник
2

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

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

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

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

DAG
источник
1

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

alekop
источник
1

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

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

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

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

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

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

Лоран Кувиду
источник
0

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

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

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

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

rmribeiro
источник
0

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

vgonisanz
источник