rustamh
22.06.2009 - 13:36
На вашем сайте я прочитал совет одного из ведущих постеров - что чтобы изучить флеш в действии, лучше скачать флеш, который нравится, и потом декомпилировать его в проект fla и изучать как он устроен. (при условии что он не защищен и т.п.)
я сегодня скачал Flash Decompiler Trillix 4.0 и декомпилировал 2 флешки.
но они не пашут

нажимаю ctrl + Enter - Flash MX 8 думает думает и говорит, что скрипт делается сильно долго и предлагает закрыть его

знающие люди, помогите пожалуйста.
вот флешки которые ошибки дают.
chingachgoog
22.06.2009 - 18:14
Для начала лучше декомпилировать те флешки, которые ничего не подкачивают в себя (это один swf файл) и не взаимодействуют с сервером. И разумеется те, что не защищиены от декомпиляции.
Проверить это легко - надо вытащить swf-файл куда-нибудь на десктоп и запустить его. Если работает - то пробуем декомпилировать.
rustamh
24.06.2009 - 04:16
Спасибо, заработало!
те флешки правда на десктопе работали.
Я посмотрел один скрипт и мое 5-е чувство (или 6-е) подсказало, что он делает запрос на какой-то сервер. Просто удалил его - и за работало отлично. А эти флешки я кстати закачать хотел. выбрал файлы в прошлый раз а кнопку "загрузить" нажать видимо забыл
(а нет - просто я флешки не могу загружать- должен их архивировать изначально)
Оказывается декомпиляция - надежный способ изучения флеш. И chingachgoog был прав, когда советовал активно использовать его (вместо того, чтобы задавать вопросы вроде - "а как сделать меню как на таком-то сайте? а как сделать то-то, то-то?")
После декомпиляции реально смотришь полюбившиеся флешки - как устроены изнутри, со всеми скриптами, кадрами, анимациями и т.д. и потихоньку въезжаешь в тему! Ну иногда могут возникать кое-какие проблемки конечно - тогда надо подключать голову и исправлять их.
rustamh
24.06.2009 - 10:15
А вот одна флешка например на компьютере локально запускается (в черно-белом режиме правда). А вот после декомпиляции там получаются пустые скрипты - фигурные скобки и точки с запятой только.
Кто нибудь знает, с чем это может быть связано, и как это можно исправить? - Просто я хотел перевести эти важные флешки на русский язык. Помогите пожалуйста разобраться.
Проблемные файлы - в прикреплении.
(один - соответствие между солнечным и лунным календарем , а второй - фазы луны) в обоих вместо скриптов пустые скобки.
chingachgoog
24.06.2009 - 12:59
Скорее всего это как раз защищенные флешки. Похоже на защиту байт-кодом.
MustLive
24.06.2009 - 23:56
Цитата
(а нет - просто я флешки не могу загружать- должен их архивировать изначально)
rustamhЗакачивание swf-файлов на сервер запрещено (в целях безопасности). Так что нужно архивировать их для закачки (все типы файлов желательно архивировать).
Зато можно включать флешки прямо в пост на форуме (используя bb-код [flash]). Сами флешки м.б. расположены на любом веб сайте, например, можешь расположить свои флешки на своём сайте или на хостинге флеш файлов.
rustamh
25.06.2009 - 04:37
спасибо, все понятно.
Вы молодцы ребята, очень помогаете. буду всем рекомендовать ваш форум.
Скажите а декомпиляция как то изменяет код? По коду можно понять что он декомпелирован?
Цитата
Скажите а декомпиляция как то изменяет код?
В большинстве случаев код конечно отличен от оригинала.
Цитата
По коду можно понять что он декомпелирован?
Скорей всего возможно.
Это как то влияет на работу кода?
Цитата
Это как то влияет на работу кода?
Я не часто декомпилирую чужие программы, так что сказать точно не могу
В большинстве случаев всплывают ошибки если попробовать скомпилировать декомпилированный код. Зависит от сложности кода и вообще структуры программы в целом, к тому же есть всякие программы, которые запутывают исходный код, чтобы в дальнейшем, после декомпиляции было тяжело понять что-либо в этом коде.
если я скину кусочек кода вы можете сказать по нему компилированный он или нет?
Не думаю, но кидайте, попробую.
package classes.com.main
{
import caurina.transitions.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class htmlText extends flash.display.Sprite
{
public function htmlText(arg1:Number, arg2:Number, arg3:String, arg4:flash.text.StyleSheet, arg5:uint, arg6:Number, arg7:uint, arg8:Number, arg9:Number, arg10:Number, arg11:String)
{
var loc1:*=null;
var loc2:*=NaN;
scrollYmin = 0;
super();
addEventListener(flash.events.Event.ADDED_TO_STAGE, addedToStage);
arg3 = arg3.split("<b>").join("<span class=\'euroBold\'>");
arg3 = arg3.split("</b>").join("</span>");
arg3 = arg3.split("<i>").join("<span class=\'euroItalic\'>");
arg3 = arg3.split("</i>").join("</span>");
(loc1 = new flash.text.TextField()).embedFonts = true;
loc1.styleSheet = arg4;
loc1.autoSize = flash.text.TextFieldAutoSize.LEFT;
loc1.antiAliasType = flash.text.AntiAliasType.ADVANCED;
loc1.selectable = false;
loc1.multiline = true;
loc1.wordWrap = true;
loc1.width = arg1;
loc1.htmlText = "<span class=\'Euro\'>" + arg3 + "</span>";
scrollBG = new flash.display.Sprite();
scrollBG.graphics.beginFill(arg7);
scrollBG.graphics.drawRoundRect(0, 0, arg6, arg2, arg8);
scrollBG.graphics.endFill();
scrollBG.x = arg1 + 5;
if ((loc2 = arg2 / (loc1.height / arg2)) < 20)
{
loc2 = 20;
}
Я бы сказал, что это декомпилированный код и к тому же не весь.
об этом говорит вот это? loc1
я кусочек кода кинул...
Например аргументы функции: arg1, arg2, ..., argN. Не думаю, что программист стал бы так вот называть их.
Цитата
об этом говорит вот это? loc1
И это тоже. Такие имена скорей всего были сгенерированы декомпилятором. loc1, loc2, ...
Цитата
var loc1:*=null;
var loc2:*=NaN;
Это тоже выглядит подозрительно. Глядя на код видно, что loc1 является экземпляром TextField, а тип при объявлении не указан.
Цитата
(loc1 = new flash.text.TextField()).embedFonts = true;
Использование полного имени класса при создании нового экземпляра в данном случае не оправдано.
Цитата
import flash.display.*;
import flash.events.*;
import flash.text.*;
Все классы данных пакетов были импортированы. Так тоже делают редко, если только большинство классов из пакета не используется в коде.
К остальному я не присматривался.
ясно. Короче шаблон декомпилированный править безсмысленно?
Сначала можно попробовать скомпилировать. Если всё заработает, стоит попытаться покопаться в коде для изменения его под себя.
в смысле скомпелировать? Я просто туп в этом...
В смысле заставить код работать
ну он работает, но вот у меня возникла такая проблема. Наполняю xml текстом и грубо говоря 1000 символов отображаются и скролируются на странице отлично, но если добавляю еще текста то верх и низ обрезаются
Это уже не по теме вопрос.
не в тему конечно, но такой артефакт из-за перекоряченного кода я так думаю. И чтобы его сделать нормальным нужно вот эти непонятки: var loc1:*=null; var loc2:*=NaN; переписать на осмысленный код?
MustLive
12.04.2012 - 23:42
Цитата
И чтобы его сделать нормальным нужно вот эти непонятки: var loc1:*=null; var loc2:*=NaN; переписать на осмысленный код?
RoFFИменно так. Перепиши код на осмысленный. Как убери непонятки, создающие артефакты, так и перепиши те, которые не мешают нормальной работы флешки.
MustLive
15.07.2012 - 00:31
Цитата
не в тему конечно, но такой артефакт из-за перекоряченного кода я так думаю.
RoFF, эта проблема могла появится или из-за декомпиляции, или же она могла быть и в оригинальной флешке, т.е. изначально сделана её автором. О первом случае я уже писал выше, а во втором случае нужно переделывать флешку.
Проблему с обрезанием текста мы уже обсудили в
другой теме. В частности я рекомендовал убрать маску.
MustLive
29.06.2013 - 00:59
Цитата
Для начала лучше декомпилировать те флешки, которые ничего не подкачивают в себя
Без сомнения декомпиляция может использоваться для изучения. И рекомендация использовать простые флешки (ничего не подгружающие) весьма полезна, чтобы декомпилированная флешка по возможности сразу же заработала - т.е. чтобы двигаться от простого к сложному.
Так что, rustamh, изучай флеш. Декомпиляцей, чтением книг или мануалов - разными методами, которые тебе подходят.
swfnerd
14.07.2013 - 03:58
Декомпиляция с последующей перекомпиляцией не всегда нужны, иногда можно обойтись и более простыми и быстрыми (а главное - намного более дешевыми за счет экономии времени и низкой вероятности что-то сломать) приёмами, в зависимости от сложности изменений, которые нужно сделать в swf.
MustLive
21.07.2013 - 23:47
swfnerdЗдесь как раз тот случай, когда rustamh нужна именно декомпиляция. Чтобы увидеть исходник (на AS) и понять как устроена понравившаяся флешка. Если нет её исходника или лень его искать, а сразу взять декомпилировать и посмотреть, как делается нужный эффект. А не ходить по форумам и напрягать людей вопросами как сделать такой-то эффект во флеше (хотя в большинстве случаев там всё просто, но начинающим флешерам это кажется сверхсложным). Вот ему и посоветовали использовать декомпиляцию.
А для взлома флешки - этот подход не всегда нужен. Я, например, в 99% случаев взламываю флешки без декомпиляции и последующей компиляции. Так что у профессионалов есть более прогрессивные методы для взлома флешек

.
swfnerd
22.07.2013 - 00:13
Вы невнимательно мой пост прочитали - я как раз о том, что перекомпилировать вовсе не обязательно, можно править байткод только нужных участков флешки. Многие не в курсе, что так можно делать и порятят графику, звуки и прочее при полной перекомпиляции.
Я прибегаю к полному восстановлению исходника обычно в случае, если надо заменить массу графики или значительно изменить стуктуру флешки (в общем, когда проще работать с восстановленным исходником, чем править сам swf). В остальных случаях обхожусь правкой байткода и тэгов (я ведь, все-таки профессионал в этом деле

).
MustLive
5.09.2013 - 23:40
swfnerd, в том то и дело, что я прочитал твой пост внимательно. Сам в подавляющем большинстве случаев не пользуюсь декомпиляцией и модифицирую флешки на уровне байткода или ассемблера. Текущая тема, которую поднял rustamh, была о другом. Речь шла об изучении ActionScript через декомпиляцию флешек. И в этом плане я поддерживаю идею изучения AS через просмотр исходников и в случае их отсутствия, можно добыть исходники через декомпиляцию swf.
декомпилировал swf. хочу использовать только код. сколько пока не знаю. жанр и логика игры -'изношеные'. можно так поступить без последующих разбирательств, если в планах продажа игры как своей?
chingachgoog
24.03.2015 - 16:43
Воровать нехорошо. Вот собственно и ответ.
Дальше идет вопрос, насколько я понял - а что мне за это будет?
Вангую - ничего не будет - 50%
Автора забанят на площадке продаж - 5%
Владелец кода подаст в суд - 0.1%
Цитата(chingachgoog @ 24.03.2015 - 17:43)

Воровать нехорошо. Вот собственно и ответ.
Дальше идет вопрос, насколько я понял - а что мне за это будет?
Вангую - ничего не будет - 50%
Автора забанят на площадке продаж - 5%
Владелец кода подаст в суд - 0.1%
куплю билет поеду на море -50%, создам новый аккаунт на площадке -5, сяду в турму(и не поеду на море) - 0.1% а что же ещё на 44,9%...
дальше идёт вопрос нужно ли модифицировать код
(upd/как и насколько, впрочем уже риторический, но если хотите - спасибо.. маяковским не отвечать).
сяду в турмю
потому что нельзя!
но если очень хочется то можна
Быть шофером хорошо,
а летчиком -
лучше,
я б издателю продал, пусь его забанят!
Цитата(mumum @ 24.03.2015 - 20:55)

Быть шофером хорошо,
а летчиком -
лучше,
я б издателю продал, пусь его забанят!

флудите?