Saturday, December 1, 2012

Как я правил SWF файл.

После переезда сервера надо было поменять некоторые ссылки. В том числе и во одном флеш ролике. Это несложно, но надо иметь софт. А такой софт обычно стоит денег. Что же делать? 
Я использовал утлиту flasm. Она бесплатная и  есть в репозитороии Debiana. Даже в Lenny. Ставим
apt-get install flasm
Затем этой утлитой распаковываем swf
flasm -x test.swf
Получаем бинарник. Ссылка хранится теперь в файле plain текстом. Тут можно уже поменять  простым редактором.
Собираем назад
flasm -z test.swf



Flasm 1.62 build Apr 26 2008

(c) 2001 Opaque Industries, (c) 2002-2007 Igor Kogan, (c) 2005 Wang Zhen
All rights reserved. See LICENSE.TXT for terms of use.

Usage: flasm [command] filename

Commands:
   -d     Disassemble SWF file to the console
   -a     Assemble Flasm project (FLM)
   -u     Update SWF file, replace Flasm macros
   -b     Assemble actions to __bytecode__ instruction or byte sequence
   -z     Compress SWF with zLib
   -x     Decompress SWF



Ну или напишем скрипт, например на питоне (спасибо коллеге за идею):


#!/usr/bin/python

import os

OLD = 'https://192.168.1.27/test.cgi'
NEW = 'https://192.168.1.17/test.cgi'

assert len(OLD) == len(NEW)

with open('test.swf','rb') as f:
    d = f.read()

q=d.replace(OLD, NEW)

with open('test.modified.swf','wb') as f:
    f.write(q)



No comments:

Post a Comment