Поскольку кодописателей тут собралось уже немало, хотелось бы немного поговорить об организации непосредственно кодописательства.
Вообще-то более всего я люблю проекты с открытым исходным кодом. и считаю что за ними будущее. К сожалению здесь мы этого себе позволить не сможем. И вот почему. Наша продукция это оружие. А оружие всегда штука достаточно засекреченная. Представьте себе что будет, если один из нас окажется мягко говоря "не тем за кого себя выдает" ! Исходники окажутся у наших скажем так, "оппонентов". А они смогут достаточно легко наполнить их своим содержанием. Спрашивается, оно нам надо, кому-то дарить за бесплатно движки причем в предвыборный год ? Поэтому НИКАКОГО Open Source. Для проектов где задействован один программист, это легко реализуется. Если будут работать несколько программистов, работа разбивается на модули. Для каждого модуля определяется интерфейс и далее весь обмен происходит ТОЛЬКО ОТКОМПИЛИРОВАННЫМИ swf и swc файлами.
Sfw (swc) файлы достаточно легко декомпилировать. Поэтому ОБЯЗАТЕЛЬНО (!!!) используем обсфукатор. Очень хороший обсфукатор - secureSWF фирмы Kindisoft. Стоит он $400 и работает отлично. Но поскольку врядли $400 окажутся для кого-нибудь лишними, делаем так:
1) Качаем самую последнюю версию.
http://www.kindisoft.com/secureSWF/downloads/secureSWF_v3pro_win.zip если у Вас уже стоит JRE и
http://www.kindisoft.com/secureSWF/downloads/secureSWF_v3pro_win_jre.zip если JRE у Вас нет. Распаковываем secureSWF в каталог, куда Вы хотите его поставить.
2) Качаем eclipse (www.eclipse.org). Подойдет любая компоновка, кроме С/C++. Если Вы работаете под FDT, eclipse не понадобится, т.к. всё необходимое в FDT уже есть.
3) Под eclipse (или под FDT) создаем java-проект. В настройках проекта подключаем secureSWF.jar как внешнюю библиотеку.
4) В проекте создаем класс Main, в котором пишем следующие строчки:
import secureSWF.A.A.*;
import java.io.IOException;
import java.io.NotActiveException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
public class Main
{
public static void main(String[] args) throws UnsupportedEncodingException
{
String[] ss=null;
try
{
ss=secureSWF.A.A.B();
System.out.println("MashineID="+ss[0]);
}
catch(NoSuchAlgorithmException e)
{
}
String s=secureSWF.A.A.D(ss[0]);
System.out.println("Register key="+s);
}
}
Запускаем на исполнение. В консоли появятся две строки:
MashineID=.....
Register key=......
5) Запускаем secureSWF.exe. Сначала Вам покажут лицензионное соглашение, а потом предложат зарегистрироваться. Регистрация производится на сервере, поэтому у Вас должен быть подключен интернет.
6) В верхнюю строчку регистрационной формы вводим полученный MashineID, в нижнюю Register key. Жмем ок.
Дальше предстоит научиться с этим работать. Гуглим "флеш декомпилятор". Получаем кучу ссылок и скачиваем любой из них. У меня Flash Decompiler Trillix фирмы Eltima software. Ломать мы его не будем. Не из уважения к правам собственности, а лишь потому, что это нам не нужно.
Создайте учебный flash-проект. Какой захотите. Откомпилите его в swf. Убедитесь что работает он правильно. Затем декомпилируйте его декомпилятором. Всё получится и Вы увидите свой исходный код, возможно немного подпорченный в телах функций, где есть локальные переменные. Затем натравите на него secureSWF, играя настройками (настроек там очень много). В результате получите новый swf-файл. Попытайтесь его декомпилировать. Если это удастся, значит были плохие настройки обсфукатора. При хороших настройках декомпилятор должен выдать мусор - ассемблерный код виртуальной машины. Мне удавалось добиться того, что декомпилятор просто вылетает по фатальной ошибке.
P.S. Кроме secureSWF мной взломаны Powerflasher FDT и Adobe Flash Builder 4 beta 2. Кряки я обычно никому не раздаю, сам этим пользуюсь. Но для общего дела поделюсь со всеми кому нужно.