Сейчас на форуме: zds (+7 невидимых) |
eXeL@B —› Протекторы —› DoSWF - professional flash encrypter |
Посл.ответ | Сообщение |
|
Создано: 26 апреля 2010 15:31 · Личное сообщение · #1 www.doswf.net/ DoSWF is a professional flash encrypter. The Features as following: Encrypt swf files for as2 and as3.particularly, DoSWF can encrypt images, buttons and other library files. Prevent all popular swf-decompiler crack. Obfuscate actionscript3.0 code. Do project compositively. Encrypt swc files. Lock domains. Add wartermark on swf. for as2,as3 Remove featrue for module developing. Cross-Platform OS soft,Adobe AIR virsion for Windows.Mac,Linux. Multi-language, Support English,Chinese,Japanese. Китайские камрады утверждают, что их утилита защищает flash-файлы и проекты лучше всех. www.actionscript.org/forums/showthread.php3?p=942890 На сайте можно потестить он-лайн. |
|
Создано: 13 июля 2010 15:17 · Личное сообщение · #2 |
|
Создано: 14 июля 2010 04:02 · Поправил: 4kusNick · Личное сообщение · #3 Не такая уж и гадость. Обфускация у него никакая, а декомпили он нагибает просто юзая классический подход к защите - все данные (графика и код) лежат в укомплектованном виде (в виде строки в данном случае) и есть небольшой код загрузчика, который преобразовывает строку в ByteArray, и затем ее подгружает для исполнения (это и будет целевая swf). Так что вытащить все можно, просто сдампив загруженную swfку или написав свой маленький лоадер на AIR том же, который их этой строки будет делать swfку. Код загрузчика нормально декомпилится Eltima'вским Flash Decompiler'ом. И вообще, прот - говно, т.к. ломает большинство проектов, что на as2, что на as3. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 10 августа 2010 09:33 · Поправил: inf1kek · Личное сообщение · #4 |
|
Создано: 11 августа 2010 13:37 · Поправил: 4kusNick · Личное сообщение · #5 Лицензия самого прота врядли поможет, она не деобфусцирует код лоадера/декриптера. Вытащить зашифрованную оригинальную флэшку можно из тэга DefineBinaryData (swftools, Action Script Viewer). А разобрать лоадер, чтобы написать свой, можно с помощью байткод-декомпилеров, с помощью того же yogda, но это будет не быстро - главное - узнать алгоритм шифрования и проверить не закастомлен ли он, может тут кто и найдется, у кого будет время на все это. offtop Забавный топик www.sothink.com/phpBB2/viewtopic.php?f=10&t=284358 =) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 августа 2010 03:44 · Личное сообщение · #6 Как выяснилось, для шифрования там юзается простой xor, но до конца алго не дает восстановить обфускация, т.к. там не тупой ксор по всей длине, метод расшифровки такой: Code:
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 августа 2010 03:45 · Личное сообщение · #7 В байткоде выглядит так: Code:
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 августа 2010 04:24 · Поправил: 4kusNick · Личное сообщение · #8 Из того, что понял: 1. Сначала читаем первый байт. 2. Объявляем переменную = первому байту минус 3, 3. Затем еще одну = первому байту - она у нас будет ключем для xor. 4. Затем читаем дважды длину в две разные переменные. 5. Потом, в новый ByteArray. который у нас будет в итоге на выходе, перекидываем из дешифруемого все байты, кроме нескольких первых, то, есть со смещения = длина искомого минус длина, полученная в 4 шаге, это получается все, что идет после некоего заголовка, в моем случае это 21 байт, аккурат вот это: Code:
1F FE - это та самая длина (8190), адлина всего дампа, который анпакается - 8211. А вот дальше - все зависит от переменных, которые проинициализировались во 2 и 4 шагах - они у меня все одинаково называются и хз какая где учавствует =( В итоге алго таков: Code:
Там, где this.nVar - это либо this.nVar1, либо this.nVar2, либо this.nVar3 ... Если кто разглядит различия на своих примерах - говорите - можно будет "анвраппер" написать. Для порядка, прикрепил архив со своей swf, накрытой почти со всеми настройками, дампом и кодом загрузчика (оргинальный и после изучения). c210_11.08.2010_CRACKLAB.rU.tgz - test.7z ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 августа 2010 13:22 · Поправил: 4kusNick · Личное сообщение · #9 |
|
Создано: 12 августа 2010 14:31 · Поправил: 4kusNick · Личное сообщение · #10 Жаль, что расшифрованная флэшка содердит в себе много бяки (привязки к перемнным, ватермарк в нереганной версии и т.д.), и чтобы она заработала без всяких загрузчиков, ее тоже надо допиливать. Зато можно в декомпиляторе уже спокойно ее посмотреть, и код и ресурсы (ну, код можно спокойно смотреть, только если он не обфусцирован был при накрывании флэшки). ADDED Приаттачил декриптор. При запуске натравляете его на дамп тэга DefineBinaryData, затем сохраняете полученный файл в виде swf, после этого можете его ковырять в декомпиляторе. Может не сработать, я на всех опциях не тестил, если что - пишите. Далее следует изучить что DoSWF добавлят в покрываемую SWFку и научиться это дело килять, но для этого нужен регнутый DoSWF (чтобы ватермарк не мешался и прочая лабуда) и куча времени =) 3df5_12.08.2010_CRACKLAB.rU.tgz - decrypt.swf ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 августа 2010 15:27 · Личное сообщение · #11 |
|
Создано: 12 августа 2010 17:48 · Личное сообщение · #12 В общем, восстановил оригинальную swfку в своем случае: 1. Удалил обфусцированный класс с кодом, который прицепляет лого и вешает на него клик (я мог бы этого и не делать - но лишний мусор неприятен). 2. В конструкторе убрал код создания этого класса с параметрами, один из которых - длиннющая строка, похоже на само изображение в каком-то b64. Код был такого вида: Code:
3. Реплэйснул у рута _doswf_stage на stage и _doswf_loaderInfo на loaderInfo (иначе пришлось бы загружать флэшку через лоадер в котором надо было написать что-то вроде: Code:
4. Кильнул из главного класса метод, в котором вешается таймер для открытия странички DoSWF. 5. Установил характеристики сцены (fps, размеры, цвет фона) такие же, как в запротекченной swf. Получился работоспособный файл, почти такого же размера, как и оригинал. Проверил декриптор на одной as2 swfке - после декрипта не пришлось ничего править - вышла рабочая swfка. Также обнаружил странную багу при декрипте большой as3 флэшки - неверно детектится длина одна - надо проверять\править, т.к. возможно это проявляется на всех больших дампах. И еще - при накрывании с привязкой - не замел, где она чекается, может просто проглядел, а может в нерегнутой версии это не работает. Вообще, больше у меня не найдется времени на это, я готов передать сорцы тому, кто захочет дофиксить баги и\или написать более полноценный анвраппер - чтобы он сам вытаскивал дамп из тэга DefineBinaryData, сам этот дамп декриптил и чистил результат от DoSWF'овского шлака. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 августа 2010 18:41 · Поправил: inf1kek · Личное сообщение · #13 |
|
Создано: 12 августа 2010 20:42 · Личное сообщение · #14 |
eXeL@B —› Протекторы —› DoSWF - professional flash encrypter |