Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Закрытие части исходного кода от декомпиляции (http://www.flasher.ru/forum/showthread.php?t=191705)

Alex626 06.01.2013 20:23

Закрытие части исходного кода от декомпиляции
 
Добрый день!

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

Можно ли сделать отдельную библиотеку, которая подключалась бы к _root моего .fla файла? Альтернативно, может быть можно поместить код в пустой swf файл, защитить его обфускатором и подгружать в искомый файл?

NikolyA 06.01.2013 20:32

так коды и классы запихни в swc

Alex626 06.01.2013 21:33

Так, это уже интересно. А можно поподробнее про это?

NikolyA 06.01.2013 21:45

http://as3coder.blogspot.com/2009/12...shdevelop.html

принцип с IDE я думаю тоже будет понятен)

Alex626 06.01.2013 22:15

А для ActionScript 2 так сработает?

NikolyA 07.01.2013 00:40

ну если у тебя отдельные классы для проекта, то сработает

Alex626 07.01.2013 00:45

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

caseyryan 07.01.2013 12:45

Цитата:

так коды и классы запихни в swc
И что это даст? SWC библиотека так же легко декомпилируется.
Вопрос звучит как:
Цитата:

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

NikolyA 07.01.2013 13:45

Цитата:

И что это даст? SWC библиотека так же легко декомпилируется.
ну и декомпилируй ее на здоровье если тебе так надо, дело автора защитить свою работу

caseyryan 07.01.2013 15:25

Цитата:

ну и декомпилируй ее на здоровье если тебе так надо, дело автора защитить свою работу
Защитить от декомпиляции, вообще-то. А это не защита.

СлаваRa 07.01.2013 15:34

кому сегодня может понадобиться AS1\AS2 код, "тем более скрипта в первом кадре"?

Alex626 07.01.2013 18:18

В качестве сложного ассета для игрового движка - понадобится. Этот файл является частью сложной разработки, а я не хочу публиковать разработку полностью. Мне хотелось бы сделать её доступной для желающих, но при этом оставить для изменений только базовые части. Пожалуйста, давайте без тролололо-мода, ок?

Меня интересует ответ на вопрос. Так как же это всё сделать? Может быть поместить скрипт в отдельный мувиклип, который потом экспортировать в .swf файл и защитить обфускатором? А потом ведь этот .swf файл можно загружать в отдельный мувиклип-контейнер с помощью loadMovie, и точно так же обращаться ко всем функциям.

Кстати, не знаю, как насчёт "рано или поздно", но после программы SWF Protector на определённый настройках, исходный код AS2 превращается в нечитабельный набор байт-кода. Я сомневаюсь, что декомпиляция вообще будет возможна.

NikolyA 07.01.2013 19:24

Цитата:

Сообщение от Alex626 (Сообщение 1114072)
Кстати, не знаю, как насчёт "рано или поздно", но после программы SWF Protector на определённый настройках, исходный код AS2 превращается в нечитабельный набор байт-кода. Я сомневаюсь, что декомпиляция вообще будет возможна.

увы, но даже после SWF Protector код восстановить не составит большого труда

expl 07.01.2013 19:36

Цитата:

Этот файл является частью сложной разработки, а я не хочу публиковать разработку полностью
Откуда такая уверенность, что Вы сможете её продать, эту разработку?
Всмысле каковы шансы, что на вашей "разработке" начнут делать деньги? Дык наоборот хорошо, если начнут - если Вы это засечёте - сможете стрести с них _реальные_ деньги. А если Вася Пупкин будет использовать для своей странички - дык с него и взять нечего - зато реклама.

А сколько открытого и никому ненужного бесплатного кода лежит на github и googlecode, а Вы будете тратить время на защиту своей супер-разработки.

По существу: делайте отдельную swf-ку, обрабатывайте обфускатором и подгружайте.

P.S. Да, код часто защищают и часто это надо (та же альтернатива 3d была закрытой), но насколько оно именно Вам нужно?

Alex626 07.01.2013 20:11

Цитата:

Сообщение от expl (Сообщение 1114081)
Откуда такая уверенность, что Вы сможете её продать, эту разработку?
Всмысле каковы шансы, что на вашей "разработке" начнут делать деньги? Дык наоборот хорошо, если начнут - если Вы это засечёте - сможете стрести с них _реальные_ деньги. А если Вася Пупкин будет использовать для своей странички - дык с него и взять нечего - зато реклама.


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

Может быть это и вариант - открыть свою разработку в паблик, со всеми исходниками, и при этом открыть лицензирование для коммерческого использования. И возможно, я и правда смогу отсудить _реальные_ деньги с тех, кто использует мою разработку в коммерческих целях и без моего согласия. Но я боюсь одного: того, что каждый просто посмотрит на исходники, поймёт как оно делается, и станет лепить свои версии того же самого, при этом выдавая это за свою разработку. Моя же работа на пару лет сразу перестанет быть уникальной, технология и реализация перестанет быть секретом. А про автора сразу все забудут. Я уже с этим столкнулся один раз, всё так и было. Весьма неприятно.

expl 07.01.2013 20:59

Цитата:

Сообщение от Alex626 (Сообщение 1114083)
Но я боюсь одного: того, что каждый просто посмотрит на исходники, поймёт как оно делается, и станет лепить свои версии того же самого, при этом выдавая это за свою разработку. Моя же работа на пару лет сразу перестанет быть уникальной, технология и реализация перестанет быть секретом. А про автора сразу все забудут. Я уже с этим столкнулся один раз, всё так и было. Весьма неприятно.

Ну раз сталкивались, значит понимаете что делаете лучше меня.

Мы за всю историю купили только одну либу (для unity3d). Просто потому что стоит не дорого, а если публиковать проект скрыть использование оной сложно.
Один раз использовали купленную заказчиком as3-либу - но это был кошмар - надо было угадать как она реализована, чтобы обойти баги и придумать обходные пути - код то закрыть - благо проект мелкий был.

По остальному в as3-разработке:
- платная либа? - пусть идёт лесом - всё равно лезть внутрь с напильником может понадобится, а бесплатные открытые аналоги есть, или вообще сами напишем то, что лучше подходит нам (чем лазить по справке и форумам с вопросами "можно ли впринципе и каким образом сделать XXX")
- ещё был нами написанный фреймворк. Когда уходили из конторы просили права на него - не дали
В итоге пришлось переписывать с нуля. Т.к. все косяки фреймворка уже проявились и было ясно куда идти - новый получился копактнее, удобнее и надёжнее (в итоге нам отказом может даже сэкономили время)

Выводы:
- опасения о краже идей не безосновательны
- никто не хочет работать с закрытым кодом - слишком рисковано, т.к. некоторые опенсорс либы редко как есть используются - под конец их перетачивать приходится.

Ещё меня смущает, то что Ваше решение на as2. Он как-бы не используется давно.

Вобщем думайте сами.

P.S. Ради любопытства, если не секрет, что конкретно делает ваше "решение"?
-------------------------------------------
Тут с разработкой: "сами написали либу - сами пользуемся для кучи проектов" - всё понятно
заказывают проект - нам деньги идут, общая либа снижает расходы
продали один проект - нате вам и либу к нему - разберётесь - молодцы, у нас от этого не убудет (отдавали так проекты вместе с кодом)

А с деланьем денег на самой либе сложнее: алтернатива ещё умудрилась взлететь, а infinity - даже от земли не оторвался. Но сколько альтернатива в рекламу вложила? Сколько на конференциях выступала?

caseyryan 07.01.2013 21:19

Цитата:

Дело в том, что так, как я программирую движок, могут очень немногие.
Alex626, почему Вы не пишете в классах? Писать код в кадрах - плохой тон. Для дизайнера, которому нужно "оживить" кнопку или заставить надпись мигать это нормально, но писать таким образом движок - не есть хорошая идея.
Цитата:

P.S. Ради любопытства, если не секрет, что конкретно делает ваше "решение"?
Присоединяюсь. Тоже интересно.

Alex626 07.01.2013 21:28

Вы меня неправильно поняли. Я не делаю движок на Actionscript. Мой проект это RPG-система для CryENGINE 3, на основе Scaleform. Вот здесь можно почитать про инвентарь: http://crymod.net/index.php?page=Thread&threadID=234. В общем, я думаю насчёт выпуска такой его версии, код которой украсть нельзя, а дизайн поменять можно на своё усмотрение. Т.е., чтобы разработчики могли использовать эту бесплатную версию для своих игр на начальном этапе. Ну, а сам код я буду использовать в своём собственном проекте.

expl 07.01.2013 21:30

А, ну вне флеша, в мире офлайн 3d-игр (и Unity3d) платных либ больше чем бесплатных - может и прокатит :)
Там и поддержка as3 в scaleform недавно появилась - небось осталась куча проектов на as2.

Т.е. надо разобраться, может ли ScaleForm подгружать swf-ки или придется распаковывать и обфусцировать swc.

caseyryan 07.01.2013 23:13

Alex626, тогда да, надо просто упаковать в swc, чтобы нельзя было открыть без декомпиляции. От декомпила это не защитит, но тут уже можно добавить лицензию, которая запретит декомпилировать. Если сопрут серьезные ребята, то можно и в суд подать.
А спрятать код полностью действительно нельзя, ни в библиотеку, ни обфускатором. Таков уж флеш.

expl 07.01.2013 23:30

Не, в обфусцированный код я бы не полез разбираться и переписывать, не знаю сколько человек готово это сделать. Декомпил ещё можно поковырять, и то если там не 100500 строк кода.

Alex626 07.01.2013 23:33

А как работать с SWC файлами? Предположим, я знаю, что можно из меню библиотеки экспортировать любой клип как SWC. А что нужно сделать, чтобы теперь подключить эту библиотеку к моему скрипту?

Можете ещё объяснить, как же восстанавливают код из защищённого файла? Пробовал открывать свои защищённые файлы в Sothink SWF Decompiler последней версии, на выходе код совершенно не читаемый. Местами от кода вообще остаётся 2-3 строчки. Мне кажется, дешевле себе будет переписать заново. Неужели можно чем-то ещё обойти защиту?

TWETTI 07.01.2013 23:45

Цитата:

Сообщение от Alex626 (Сообщение 1114127)
А как работать с SWC файлами? Предположим, я знаю, что можно из меню библиотеки экспортировать любой клип как SWC. А что нужно сделать, чтобы теперь подключить эту библиотеку к моему скрипту?

SWC файлы подключаются к проекту. В разных IDE это делается по разному.

expl 07.01.2013 23:48

Цитата:

Можете ещё объяснить, как же восстанавливают код из защищённого файла
Мне тоже это интересно. Вся информация об именах переменных и методов пропадает - её точно не восстановишь.
Чистую логику только использовать - ну там где он названия переменных на ")", "+" и т.д. поменял заменить на "a0001", "a0002" и всё - от этого не сильно легче.
Только вручную анализировать логику с применением мозга.

Alex626 08.01.2013 00:08

Цитата:

Сообщение от TWETTI (Сообщение 1114130)
SWC файлы подключаются к проекту. В разных IDE это делается по разному.

Для Flash Professional.

TWETTI 08.01.2013 00:12

Панель Properties, раздел Publish, поле Script, нажимаете на гаечный ключ "настройки". Во вкладке Library Path добавляете ваш SWC файл.

Alex626 08.01.2013 00:16

Спасибо!

Подскажите пожалуйста, как лучше свой скрипт из "первого кадра" экспортировать пограмотнее? Может быть засунуть в класс Main?

TWETTI 08.01.2013 00:17

Да, засуньте в класс Main и в панели Properties в поле Document Class укажите ваш Main класс.

expl 08.01.2013 03:17

Поле Document Class вроде только для as3 работает (для as2 либо в кадре на класс ссылались, либо связывали класс с символом из библиотеки, причём ньюансы были)
Короче дела минувших лет, уже не вспомнить - гуглите по as2/компоненты/swc/ассоциация класса с символом
Цитата:

Подскажите пожалуйста, как лучше свой скрипт из "первого кадра" экспортировать пограмотнее? Может быть засунуть в класс Main?
А у вас получилось с кодом в первом кадре экспортнуть в swc? Не мучайтесь тогда.
Раньше же справлялись с кодом в кадрах - просто теперь будет 2 fla - одна под swc, другая - приложение.


Часовой пояс GMT +4, время: 08:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.