Для программистов

Feb 02, 2010 03:38

Поскольку кодописателей тут собралось уже немало, хотелось бы немного поговорить об организации непосредственно кодописательства.

Вообще-то более всего я люблю проекты с открытым исходным кодом. и считаю что за ними будущее. К сожалению здесь мы этого себе позволить не сможем. И вот почему. Наша продукция это оружие. А оружие всегда штука достаточно засекреченная. Представьте себе что будет, если один из нас окажется мягко говоря "не тем за кого себя выдает" ! Исходники окажутся у наших скажем так, "оппонентов". А они смогут достаточно легко наполнить их своим содержанием. Спрашивается, оно нам надо, кому-то дарить за бесплатно движки причем в предвыборный год ? Поэтому НИКАКОГО 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. Кряки я обычно никому не раздаю, сам этим пользуюсь. Но для общего дела поделюсь со всеми кому нужно.

Previous post Next post
Up