![]() |
Закрытие части исходного кода от декомпиляции
Добрый день!
Я хочу выпустить свой проект, но сделать его не полностью Open-source. То есть мне нужно основную часть своего скрипта каким-либо образом защитить от декомпиляции, но при этом оставить возможность менять графический дизайн, расположение клипов и несколько массивов данных для пользователя. Можно ли сделать отдельную библиотеку, которая подключалась бы к _root моего .fla файла? Альтернативно, может быть можно поместить код в пустой swf файл, защитить его обфускатором и подгружать в искомый файл? |
так коды и классы запихни в swc
|
Так, это уже интересно. А можно поподробнее про это?
|
|
А для ActionScript 2 так сработает?
|
ну если у тебя отдельные классы для проекта, то сработает
|
Классов нет. Есть скрипт на сцене в первом кадре. Там несколько десятков функций. Большую часть из них мне нужно вынести в отдельную библиотеку и оставить только самое основное для общего доступа.
|
Цитата:
Вопрос звучит как: Цитата:
Другой вопрос, а кому это вообще нужно? Ради нескольких десятков функций (причем, что-то мне подсказывает, наверняка не самых сложных), вряд ли кто-то будет заморачиваться. |
Цитата:
|
Цитата:
|
кому сегодня может понадобиться AS1\AS2 код, "тем более скрипта в первом кадре"?
|
В качестве сложного ассета для игрового движка - понадобится. Этот файл является частью сложной разработки, а я не хочу публиковать разработку полностью. Мне хотелось бы сделать её доступной для желающих, но при этом оставить для изменений только базовые части. Пожалуйста, давайте без тролололо-мода, ок?
Меня интересует ответ на вопрос. Так как же это всё сделать? Может быть поместить скрипт в отдельный мувиклип, который потом экспортировать в .swf файл и защитить обфускатором? А потом ведь этот .swf файл можно загружать в отдельный мувиклип-контейнер с помощью loadMovie, и точно так же обращаться ко всем функциям. Кстати, не знаю, как насчёт "рано или поздно", но после программы SWF Protector на определённый настройках, исходный код AS2 превращается в нечитабельный набор байт-кода. Я сомневаюсь, что декомпиляция вообще будет возможна. |
Цитата:
|
Цитата:
Всмысле каковы шансы, что на вашей "разработке" начнут делать деньги? Дык наоборот хорошо, если начнут - если Вы это засечёте - сможете стрести с них _реальные_ деньги. А если Вася Пупкин будет использовать для своей странички - дык с него и взять нечего - зато реклама. А сколько открытого и никому ненужного бесплатного кода лежит на github и googlecode, а Вы будете тратить время на защиту своей супер-разработки. По существу: делайте отдельную swf-ку, обрабатывайте обфускатором и подгружайте. P.S. Да, код часто защищают и часто это надо (та же альтернатива 3d была закрытой), но насколько оно именно Вам нужно? |
Цитата:
Это, конечно, хорошая мысль. Дело в том, что так, как я программирую движок, могут очень немногие. Сейчас, с возможностью получить коммерческую лицензию, многие задаются целью сделать "начальное наполнение" в игре и найти инвестора, который, взглянув на это наполнение, выдал бы крупную сумму денег фирме-разработчику. Естественно, что сделать это наполнение может далеко не каждый, и поэтому люди всячески ухищряются, чтобы заполучить исходники. Такие проекты редки, они стоят больших денег. Может быть это и вариант - открыть свою разработку в паблик, со всеми исходниками, и при этом открыть лицензирование для коммерческого использования. И возможно, я и правда смогу отсудить _реальные_ деньги с тех, кто использует мою разработку в коммерческих целях и без моего согласия. Но я боюсь одного: того, что каждый просто посмотрит на исходники, поймёт как оно делается, и станет лепить свои версии того же самого, при этом выдавая это за свою разработку. Моя же работа на пару лет сразу перестанет быть уникальной, технология и реализация перестанет быть секретом. А про автора сразу все забудут. Я уже с этим столкнулся один раз, всё так и было. Весьма неприятно. |
Цитата:
Мы за всю историю купили только одну либу (для unity3d). Просто потому что стоит не дорого, а если публиковать проект скрыть использование оной сложно. Один раз использовали купленную заказчиком as3-либу - но это был кошмар - надо было угадать как она реализована, чтобы обойти баги и придумать обходные пути - код то закрыть - благо проект мелкий был. По остальному в as3-разработке: - платная либа? - пусть идёт лесом - всё равно лезть внутрь с напильником может понадобится, а бесплатные открытые аналоги есть, или вообще сами напишем то, что лучше подходит нам (чем лазить по справке и форумам с вопросами "можно ли впринципе и каким образом сделать XXX") - ещё был нами написанный фреймворк. Когда уходили из конторы просили права на него - не дали В итоге пришлось переписывать с нуля. Т.к. все косяки фреймворка уже проявились и было ясно куда идти - новый получился копактнее, удобнее и надёжнее (в итоге нам отказом может даже сэкономили время) Выводы: - опасения о краже идей не безосновательны - никто не хочет работать с закрытым кодом - слишком рисковано, т.к. некоторые опенсорс либы редко как есть используются - под конец их перетачивать приходится. Ещё меня смущает, то что Ваше решение на as2. Он как-бы не используется давно. Вобщем думайте сами. P.S. Ради любопытства, если не секрет, что конкретно делает ваше "решение"? ------------------------------------------- Тут с разработкой: "сами написали либу - сами пользуемся для кучи проектов" - всё понятно заказывают проект - нам деньги идут, общая либа снижает расходы продали один проект - нате вам и либу к нему - разберётесь - молодцы, у нас от этого не убудет (отдавали так проекты вместе с кодом) А с деланьем денег на самой либе сложнее: алтернатива ещё умудрилась взлететь, а infinity - даже от земли не оторвался. Но сколько альтернатива в рекламу вложила? Сколько на конференциях выступала? |
Цитата:
Цитата:
|
Вы меня неправильно поняли. Я не делаю движок на Actionscript. Мой проект это RPG-система для CryENGINE 3, на основе Scaleform. Вот здесь можно почитать про инвентарь: http://crymod.net/index.php?page=Thread&threadID=234. В общем, я думаю насчёт выпуска такой его версии, код которой украсть нельзя, а дизайн поменять можно на своё усмотрение. Т.е., чтобы разработчики могли использовать эту бесплатную версию для своих игр на начальном этапе. Ну, а сам код я буду использовать в своём собственном проекте.
|
А, ну вне флеша, в мире офлайн 3d-игр (и Unity3d) платных либ больше чем бесплатных - может и прокатит :)
Там и поддержка as3 в scaleform недавно появилась - небось осталась куча проектов на as2. Т.е. надо разобраться, может ли ScaleForm подгружать swf-ки или придется распаковывать и обфусцировать swc. |
Alex626, тогда да, надо просто упаковать в swc, чтобы нельзя было открыть без декомпиляции. От декомпила это не защитит, но тут уже можно добавить лицензию, которая запретит декомпилировать. Если сопрут серьезные ребята, то можно и в суд подать.
А спрятать код полностью действительно нельзя, ни в библиотеку, ни обфускатором. Таков уж флеш. |
Не, в обфусцированный код я бы не полез разбираться и переписывать, не знаю сколько человек готово это сделать. Декомпил ещё можно поковырять, и то если там не 100500 строк кода.
|
А как работать с SWC файлами? Предположим, я знаю, что можно из меню библиотеки экспортировать любой клип как SWC. А что нужно сделать, чтобы теперь подключить эту библиотеку к моему скрипту?
Можете ещё объяснить, как же восстанавливают код из защищённого файла? Пробовал открывать свои защищённые файлы в Sothink SWF Decompiler последней версии, на выходе код совершенно не читаемый. Местами от кода вообще остаётся 2-3 строчки. Мне кажется, дешевле себе будет переписать заново. Неужели можно чем-то ещё обойти защиту? |
Цитата:
|
Цитата:
Чистую логику только использовать - ну там где он названия переменных на ")", "+" и т.д. поменял заменить на "a0001", "a0002" и всё - от этого не сильно легче. Только вручную анализировать логику с применением мозга. |
Цитата:
|
Панель Properties, раздел Publish, поле Script, нажимаете на гаечный ключ "настройки". Во вкладке Library Path добавляете ваш SWC файл.
|
Спасибо!
Подскажите пожалуйста, как лучше свой скрипт из "первого кадра" экспортировать пограмотнее? Может быть засунуть в класс Main? |
Да, засуньте в класс Main и в панели Properties в поле Document Class укажите ваш Main класс.
|
Поле Document Class вроде только для as3 работает (для as2 либо в кадре на класс ссылались, либо связывали класс с символом из библиотеки, причём ньюансы были)
Короче дела минувших лет, уже не вспомнить - гуглите по as2/компоненты/swc/ассоциация класса с символом Цитата:
Раньше же справлялись с кодом в кадрах - просто теперь будет 2 fla - одна под swc, другая - приложение. |
| Часовой пояс GMT +4, время: 08:33. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.