PDA

Просмотр полной версии : Как получить исходный swf?


mcm
27.09.2013, 08:18
Хочу написать скрипт, который бы принимал на вход 1000+ swf файлов, анализировал AS код и выдавал список из getUrl'ов (у них в качестве ссылки может выступать как прямой урл, так и переменная, скажем, _root.link1 или clickTag). 90% всех swf на AS2 под FlashPlayer 8 или 9

Вроде бы, средствами AS задача не решается.

Предложил коллега использовать декомпилятор, но задача в этом случае тяжело автоматизируется и придёться каждую swf открыть, декомпилить, искать getUrl и куда-то записывать данные. При объёме в 1000+ файлов решение будет слишком дорогим по времени.

Есть подозрение, что задача полностью решается на php. Вот отличный пример реализации: http://web.adriver.ru/cgi-bin/bv.cgi Только исходники, жалко, нельзя посмотреть.

Подскажите в каком направление стоит копать? Или может кто подскажет красивое решение?

caseyryan
27.09.2013, 08:25
здесь запрещено обсуждение таких вопросов

п.с. нормальный исходный код (таким, какой он был при написании) все равно получить не получится

mcm
27.09.2013, 08:31
caseyryan, если честно, не совсем понял, что именно нарушается? Я не говорю о декомпиляции флэшек. Речь идёт только о том, чтобы получить список getUrl(), которые прописаны в 1000+ swf. Есть ли здесь что-то противоправное?

>>п.с. нормальный исходный код (таким, какой он был при написании) все равно получить не получится
http://web.adriver.ru/cgi-bin/bv.cgi - вот здесь выдаётся реальный код, который содержится в swf. Можете попробовать.

caseyryan
27.09.2013, 08:57
http://web.adriver.ru/cgi-bin/bv.cgi - вот здесь выдаётся реальный код, который содержится в swf. Можете попробовать.
Многие названия переменных еще на этапе компилирования меняются. Так же изменяются циклы for на while и другое. Поэтому я со стопроцентной уверенностью могу сказать что нет, такого кода, каким он был при создании, ни один декомпилятор не выдаст. Исключение могут составлять только самые примитивные коды.

caseyryan, если честно, не совсем понял, что именно нарушается? Я не говорю о декомпиляции флэшек. Речь идёт только о том, чтобы получить список getUrl(), которые прописаны в 1000+ swf. Есть ли здесь что-то противоправное?

получить такую информацию без декомпиляции невозможно

mcm
27.09.2013, 09:12
Что ж, вынужден согласиться с caseyryan - он прав. Похоже, что без декомпиляции получить ссылки в getUrl не получится. Извините, если нарушил правила форума. Отмечу лишь то, что декомпиляция не всегда зло. В моём случае это решение весьма ресурсоёмкой задачи, которая без декомпиляции решалась бы неделями.