2010-05-31 5 views
1

Я ищу способ, желательно утилиту командной строки, для откачивания файла .abc для скомпилированного swf. Я просмотрел asc.jar, но пока кажется, что он может принимать только классы, а не скомпилированные swf. Кто-нибудь знает, как это сделать?Есть ли способ конвертировать swf в .abc-файл?

Конечной целью этого процесса является использование проекта ZTetan RedTamarin для запуска описания descriptionType на некоторых определенных классах внутри загруженного swf, но есть проблемы с SecurityDomain, которые препятствуют использованию Loader.loadBytes. Если есть еще один хороший способ описать классы в загруженном swf через командную строку, мне также будет интересно это решение.

Приветствия,

J

ответ

2

Я не уверен, что вы пытаетесь достичь, но nemo440 может быть полезным.

+0

Спасибо , grapefrukt, но это не совсем. Похоже, что nemo, а также swfdump и flasm, просто выталкивает человекочитаемое представление байт-кода, а не фактический .abc-файл. В перечисленных входных форматах nemo он перечисляет .swf (сжатый и несжатый) AND .abc, но предоставляет одинаковый текстовый дамп для обоих. Я ищу конвертировать из .swf в .abc, не нужно читать его: P –

+0

@Jeremy: SWF - это просто формат контейнера. Насколько я знаю, ABC встроен в систему без изменений. Просто возьмите спецификации SWF и узнайте, как внедрена ABC. В качестве альтернативы вы можете использовать 'swfdump' или' swfutils' из flex sdk в '/ lib /' с помощью '-abc source.swf> out.abc'. – back2dos

+0

@ back2dos: не похоже, что это тоже правильно. Файл sabc, сгенерированный swfdump, будет таким же, как и ранее упомянутый, предназначенный для чтения человеком. Я говорю о законном файле .abc, как описано в этих двух сообщениях: http: // coderhump.com/archives/104 http://coderhump.com/archives/105 Файл .abc, который он использует, может быть сгенерирован из класса с помощью asc, а затем загружен во время выполнения Tamarin. Возьмите .abc-файл, созданный таким образом, и сравните его с текстовым дампом из swfdump, nero или flasm, и вы увидите разницу. –

0

Просто обновите этот вопрос. Мне нужно было извлечь ABC-файлы из SWF-файла и попробовать разные варианты. Единственный, с которым я мог работать в своей среде (MacOSX 10.7), должен был использовать инструмент командной строки Furnace.

1

Используйте аппарат (потребность Scala) из кода Google, чтобы объединить все doAbcDefine в одном:

кд аппарат & & ./reducer -m верно -i file.swc -o merged.swc

Затем экстракт (разархивировать) library.swf из merged.swc

(гул, речь шла о swf2abc. Я думаю, что можно 'уменьшить' свой file.swf непосредственно)

, то вы можете извлечь (уникальный) а с abcdump от Google Code maashaack:

abcdump -a library.swf

, то вы получите (уникальный) library.abc

+0

FYI всем, кого интересует, у меня проблема с аппаратным обеспечением в OS X, но он отлично работает в ubuntu. –

Смежные вопросы