Просмотр полной версии : как вынести as из swf?
собственно вопрос, можно ли как-нибудь вынести скрипт за рамки флэш.. т.е. чтобы swf ролик брал скрипт из внешнего файла..
Заранее спасибо.
пишем скрипт, сохраняем его в формате as дальше в фильме пишем #include "название.as". Теперь осталось расположить фильм и скрипт в одной папке.
глупости какие-то ))) "название.as" - это про вынос кода из fla )))) а из swf код вынести... оригинально, конечно. а что там останется? картинки? )))
darksranger
15.08.2008, 00:06
всплывала уже мысль, такая же :) можно было бы обезопасить код, но тут загвоздка в том, что нужно выполнить код, получается из переменной, а вот как и возможно ли это сделать, вопрос :)
а так можно держать криптованный код, например в бинарнике, с помощью php ( который, вроде как не скачать, с сайта, поправте если ошибаюсь ) расшифровываем код и полученный результат, отдаем в flash на выполнение, если брать в расчет что php нельзя скачать с сайта, то безопастность на порядок возрастет IMHO
слушайте, а компилятор - это выдумки писателей-фантастов?.. теоретически можно сделать свой интерпретатор внешнего скрипта. но чего ради?..
Проще вынести графику за пределы swf.
crazyone
15.08.2008, 01:52
Нельзя.
darksranger
15.08.2008, 02:20
ну почему сразу категорично нельзя , если задатся целью то можно ! взять например и отредактировать скомпиленный swf, забить нулями место с скриптом, далее пишем свой компилер ( ну или выдераем алгоритм из flash ), пишем лодыря, который останавливает swf и например из script.txt, берет скрипт, интерпретирует его в байт код (с помощью нашего алгоритма( (может понадобится использвоать алгоритмы шифрования )) , который понимает flash player ( чесно не сматрел в каком виде лежит скрипотвая часть flashki, поэтому описываю худший из вариантов, план действий) , ну, а далее все просто, заместо нулей в памяти, пишет готовый код и отпускает swf :)
нет нечего не возможного !просто есть понятия простоты и разумности ... мой вариант, не разумен и не прост, но решает задачу ;)
Eric Gurt
15.08.2008, 02:49
непонятно чего ради. может есть другие способы решения твоей проблемы. А вообще интерпритатор можно сделать. Правда скорость выполнения кода упадет в разы. Прикольно получится: интерпритатор в интерпритаторе...
darksranger
15.08.2008, 02:55
я просто написал, как бы сделал я :) причем в моем варианте скорость выполнения кода не упадет ))))
а вобще собственно я просто ответил на заявление crazyone
darkstranger, ты говоришь какую-то чушь. как ты будешь выполнять компиляцию на стороне Васи Пупкина у которого кроме IE с flashplayer-ом на компе не стоит больше ничего?
можно написать интерпретатор. каждый, кто хоть раз писал динамический сайт, уже это делал (ролик интерпретирует данные из xml и в зависимости от них строит сайт). можно пойти дальше и написать интерпретатор алгоритмов. но прежний вопрос: чего ради?
crazyone
15.08.2008, 12:09
darkstranger, с каких пор этот форум посвящен научной фантастике?
Вы не заметили, что в вашем решении код-то остается в свф-ке?
Только свф-ка собирается при помощи серверного скрипта, а не при помощи IDE.
И да, есть еще варианты с интерпретаторами и другие решения, но это ведь все понты, которые никому не нужны.
darksranger
15.08.2008, 14:49
не... смысл был в том, чтобы код не оставался в swf, а появлялся только в памяти на момент выполнения
я этой "научной фантастике" (reversing decrypt ets ... ) занимался больше двух лет( и поверте делал на много сложнее вещи чем это ) .... не вам мне говорить что реально, а что нет, если есть принципальный инерес, то за фин. возн. я вам сделаю такой движок, который описал !! !
Double вам доказать ? к сожалению, во free у меня нет времени, этим заниматся, но вы можете воспользоватся вариантом описанным сверху
PS для всех "умных" еще раз дословно
берем готовую swf ( перед этим изучаем ее структуру )
swf запускается в любом случае с какогото EP ( entrypoint), не кто не мешает взять кусок памяти swf, в нем написать функцию которая будет
1 брать код из script.txt
2 преобразовывать его в понятный flash playery вид
3 запускать выполнение swf
в swf НЕ будет кода, он будет только в памяти, на момент выполнения
кто будет делать эти три пункта на компе Василия Пупкина?
darksranger
15.08.2008, 15:06
swf, при помощи flash playera
представте, ваш файл разбитый на две части
1 это лоадер который делает 2 пункта
2 это остальной код swf
все это находится в самом swf файле
1 пункт встраивается на EP ( тоесть руским языком, в начало файла, до выполнения основного кода )
Представь что в памяти весит в итоге готовая свф.ка со всем твоим кодом и картинками...
у Василия Пупкина есть flash-player. ты ему подсовываешь swf (не exe). Кто будет "брать кусок памяти и писать в нем функцию" и всё остальное? Это флеш-плеер чтоли делать будет? С какого перепугу? Тебя послушать, так можно и винт юзеру отформатировать с помощью флеш-плеера.
darksranger
15.08.2008, 15:31
блин... вы вобще имеете представление, о том как работает вся система flash player и swf файл ? видимо нет ..... почитайте и подумайте, прежде чем писать такую чушь
это будет делать САМ SWF, в своем адресном пространстве, до выполнения своего основного кода, вы что через строчку читаете ?
винт не получится отформатировать, так как возможности flash api, которыми можно воспользоватся, для получения нужного результата, очень ограниченны ... ( для замены нулей, в памяти swf файла средствами самого swf, flash api не требуется, правда могут понадобится, привелегии записи в адресное пространсво swf файла, такую возможность исхетрившись можно получить )
Тебепожалуй уже хватит курить...
и потом этот чудо-swf возьмёт из текстового файла скрипт и скомпилирует его в себя? ) примерчик набросаешь?
darksranger
15.08.2008, 19:59
токо, в себя имеется виду, в свое адресное пространство, в памяти
примерчик накидывать долго, я уже писал либо напомни мне после 21, либо за $, щас засада со временем, но я тебе ( как програмист, reverser и по части криптолог ) гарантирую, что это возможно, правда есть минусы
1 представим статичный код с пару функциями
swf вырастет не особо на много ( ну собственно, на размер кода, который позволит преобразовать скрипт, в понятный язык flash playery ) если учесть что в script.txt, будет лежать пару функций, причем не меняемых, тоесть изменить можно например значения или создать только такую же функцию !!!! иначе функция не будет обработанна, это в лучшем случае, в худшем посыпятся артефакты
2 нам нужно чтобы в script.txt лежал любой код
тут swf вырастет ровно на размер программы flash )))))) и скорость выполнения такого swf, будет в n количество раз дольше, соответственно и глюков будет ......
да и еще не мало важное замечение, память в которую мы будем складывать скомпиленый код, тоже имеет предел ....
тоесть, этот вариат годится только, на статичный маленький кусок кода :) остальные варианты обещают вести себя не известно как
либо 3 вариант !
вытаскиваем в script.txt, не скрипт, а байт код скрипта, уже скомпиленного, тогда размер не особо увеличится и скорость выполнения будет на уровне и соответственно, так же как и во всех предидущих вариантах, в swf на месте кода, будут нули :)
да как ты собрался компилятор в swf запихать? и чтобы этот компилятор во флеш плеере запустился. ну хорош фантазировать. ещё раз говорю: реально написать интерпретатор. долго, непросто, но реально. то о чём ты говоришь - это ерунда.
darksranger
15.08.2008, 20:19
да как ты собрался компилятор в swf запихать? и чтобы этот компилятор во флеш плеере запустился. ну хорош фантазировать. ещё раз говорю: реально написать интерпретатор. долго, непросто, но реально. то о чём ты говоришь - это ерунда.
да не ерунда !!!! это все делается не просто .... но делается ....
создаем секцию в swf нужного размера, трэйсим swf на предмет EP - точки входа в нее, далее делаем переадресацию на нашу секцию, в ней пишем компилер, после компиляции возвращаем управление swf, тоесть возрашаем ее на исходный EP
вы когда ни будь слышали о технологии reversing ? видимо нет .... могу вам сказать только одно, что там делаются вещи и похлеще того что я описываю ...
так что перестанте вы спорить, я вам говорю что это реально !!! я может не так как вы знаю AS, зато у меня оч большой опыт в assme, reversinge и криптографии и то о чем мы с вами сейчас разговариваем, для меня детская забава просто мутарная, на которую сейчас нет времени ....
я вам уже детально, не в одном сообщении, описал общии черты такого способа, однако видимо вы, либо через строчку читаете, либо просто не знакомы с выше описанным, либо слишком уверены в собственном совершенстве, что просто не видите очевидного ..... иначе бы не продолжали спорить
спорить-то особо не с чем. я могу левитировать. делается это просто: представляешь, что ты ничего не весишь и взлетаешь. дело это муторное, и времени на левитации у меня нет. но это вполне реально.
никакой практической пользы в твоих рассуждениях нет. хватит флеймить.
darksranger
15.08.2008, 20:43
спорить-то особо не с чем. я могу левитировать. делается это просто: представляешь, что ты ничего не весишь и взлетаешь. дело это муторное, и времени на левитации у меня нет. но это вполне реально.
никакой практической пользы в твоих рассуждениях нет. хватит флеймить.
мде ... удачи тебе в твоем самоуверии .... а по делу если человек создавший тему обратится ко мне, я ему не расуждениями помогу ....
PS советую побольше технологий изучать и не быть таким узколобым, увереном в собственном превосходстве ....
Тема закрыта ввиду того, что скатилось все на личности.
darksranger из ваших сбивчивых комментариев невозможно составить четкую схему реализации подобного, а некоторые утверждения вообще абсурдны, при этом вообще нет никакой конкретики. Что-то там куда-то надо записать, в память. Это при том, что AVM вообще подобных возможностей не предоставляет вовсе. Свой опыт и знания надо показывать конкретным примером, а не говорить о том, какой у вас этот самый большой опыт и насколько обширны ваши знания.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.