Могу ли я изменить строковый литерал ActionScript в SWF без исходного FLA-файла?

Клиент попросил меня переместить один из их старых веб-сайтов, который в основном основан на flash, на новый сервер.

Первоначальный разработчик сайта много лет назад совершил ошибку, используя "http://127.0.0.1/...." в одной важной ссылке в некотором ActionScript. Оригинальная разработка компании давно прошла.

Я могу декомпилировать SWF с помощью Sothink SWF Decompiler и найти и исправить нарушающий ActionScript. Однако я не могу перекомпилировать обратно в SWF, который работает полностью корректно (появляются многочисленные дополнительные ошибки, так как это сложный проект Flash). Я пробовал разные версии Flash (возвращаясь к v.6), 4-й байт SWF указывает, что он изначально был v.7 (MX2004), и я пытался сопоставить шестнадцатеричные байты в перекомпилированном выводе с исходным (для учета). для сжатия тегов и т. д.) Пока что ничего не совпало.

Мне потребовалось бы много времени, чтобы исправить все дополнительные ошибки в моем перекомпилированном Flash, когда все, что я действительно хочу сделать, - это изменить один строковый литерал в исходном SWF, чтобы сайт работал точно так, как это было изначально задумано. Я готов сделать так, чтобы длина строки моего нового литерала точно совпадала со старым неправильным (добавив директорию / символическую ссылку на новом сервере, ссылающуюся на правильный файл).

Есть какой-либо способ сделать это?

2 ответа

Решение

URL Action Editor работал отлично. Изменен строковый литерал, не нарушая ничего другого (в отличие от других инструментов / декомпиляторов, упомянутых в других публикациях).

Вот бесплатное приложение, которое будет делать то, что вы ищете, и оно должно работать лучше.

http://www.free-decompiler.com/flash/

Другие вопросы по тегам