PDA

Просмотр полной версии : нужно как бы удалённо изменить ActionScript


sanyasanya
12.08.2010, 19:43
привет всем!
подскажите.. мне нужно поменять одну строчку кода в swf файле.
есть такая программа? чтоб зайти через программу внутрь swf, изменить код и выйти. чтоб никаких перекомпеляций во ФЛА и разных страшных слов:)

i.o.
12.08.2010, 20:02
как бы нельзя. Если только через хаки, дизассемблеры и тому подобное...

zurkis
12.08.2010, 20:39
Если только через хаки, дизассемблеры и тому подобное... - про это даже и речи быть не может

ищи исходник и меняй

i.o.
12.08.2010, 21:12
про это даже и речи быть не может
Если это его собственная SWF, то почему бы и нет? Если чужая, то да - взлом и т.п.

sanyasanya
12.08.2010, 21:18
флешка моя. долго использовалась, а теперь нужно совсем чуть-чуть поменять, а фла уже давно удалён.. фла искать негде, потому что его нет :)
а что такое хаки и диссасемблер?

zurkis
12.08.2010, 21:29
ты можешь в таком случае воспользоваться гугл поиском чтоб узнать как получить исходный файл, имея в наличии только SWF

sanyasanya
12.08.2010, 21:31
если бы мне нужно было получить исходный файл - я бы так и написал..
а я хочу поменять кое-что прямо в свф

zurkis
12.08.2010, 21:33
без исходного файла никак, нужен только исходник

Alex Lexcuk
12.08.2010, 22:45
Строчку заменить можно, спецификация флешфайлов открытая.
Немного кривой пост получился, зато быстро
http://murmadillo.blogspot.com/2010/04/swf.html#more

В общем суть, надо декомпрессировать ролик, он сам декомпрессируется по загрузке его лоадером, затем, ну тут от уровня развития флешера, можно найти само упоминание переменной строки и прочитать ее длину, прочитать строку и при желании заменить строку, затем заменить длину строки и длину кадра и длину ролика, тк. длина строки поменялась, а можно тупо найти строку по ее содержимому, и подменить содержимое, больше ничего не меняя в ролике, так работать будет 100%


PS: Я имею ввиду заменить именно переменную с типом String, а не строчку программного кода, если что.

Mur4ik
13.08.2010, 11:54
Смотря что конкретно Вам нужно заменить, есть несколько библиотек которые по своему могут справится с задачей, есть софт позволяющий что то менять на уровне байткода, можно и "ручками". Но такого инструмента чтоб прям выдал строчку кода для редактирования и потом эту строчку правильно втулил обратно скорее всего нет.

aksios
13.08.2010, 12:46
КАК ОТРЕДАКТИРОВАТЬ .SWF-ФАЙЛ, НЕ ИМЕЯ ИСХОДНОГО ФАЙЛА .FLA (http://flash-ripper.com/content/how-to-edit-flash-swf-without-source-fla-file)

etc
13.08.2010, 15:21
Строчку заменить можно, спецификация флешфайлов открытая.
Немного кривой пост получился, зато быстро
http://murmadillo.blogspot.com/2010/04/swf.html#more

Вот это шедеврально:

public function readUI32(b:ByteArray):int{
var _0:int = b.readUnsignedByte();
var _1:int = b.readUnsignedByte();
var _2:int = b.readUnsignedByte();
var _3:int = b.readUnsignedByte();
var i:int;
i = ((_3 & 0xFF) << 32) | ((_2 & 0xFF) << 16) | ((_1 & 0xFF) << 8) | (_0 & 0xFF);
return i;
}

Учимся прибавлять по восемь, 0 + 8 = 8, 8 + 8 = 16, 16 + 8 = (внимание) 32!
Нет бы просто return b.readUnsignedInt(); с нужным endian и не заморачиваться.

Дальше читать не стал, похоже на удаление гландов через пятую точку.

sanyasanya
13.08.2010, 20:01
Смотря что конкретно Вам нужно заменить, есть несколько библиотек которые по своему могут справится с задачей, есть софт позволяющий что то менять на уровне байткода, можно и "ручками". Но такого инструмента чтоб прям выдал строчку кода для редактирования и потом эту строчку правильно втулил обратно скорее всего нет.

24963
вот файл. там в правом верхнем углу есть несколько кнопок. при наведении пишется "next page", "next photo" и т.д.
а мне нужно чтоб эти всплывающие подсказки были на русском. всего-то :)

zurkis
13.08.2010, 20:35
ну на AS3 ты пожалуй сам пытайся восстановить, проще такое написать ручками и самому, чем ломать и что-то исправлять, был бы AS2 с ним проще, ты воспользуйся этой ссылкой: http://flash-ripper.com/content/how-to-edit-flash-swf-without-source-fla-file


а вообще не хорошо ломать чужое

2006-2008 Copyright by Carlos Ulloa | John Grden | Ralph Hauwert | Tim Knip | Andy Zupko

sanyasanya
14.08.2010, 00:18
я за это деньги платил, значит моё :)

zurkis
14.08.2010, 00:34
ну раз платил деньги, значит у тебя должен быть и исходник, а обманывать тут людей ненадо да и вариантов тебе уже целую кучу сказали, выбирать тебе

aksios
14.08.2010, 00:46
Неее... Есть самый лучший вариант: дать бабла.

zurkis
14.08.2010, 14:02
sanyasanya просто если с AS2 приложениями раньше всякими дизассемблерами можно было что либо поменять и внедрить, то с AS3 приложениями дела обстоят немного иначе, поэтому проще либо попытаться получить исходник, раз уж платил за него, либо самому написать, либо дать кому-то еще раз денег, чтоб тебе написали такое-же