Могу ли я изменить строковый литерал 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 работал отлично. Изменен строковый литерал, не нарушая ничего другого (в отличие от других инструментов / декомпиляторов, упомянутых в других публикациях).
Вот бесплатное приложение, которое будет делать то, что вы ищете, и оно должно работать лучше.