SWF ayıklanan adobe flash CS4 derleyici hataları verir

1 Cevap php

Hey, I have been given an SWF to edit a link in the AS code. The fact is the SWF uses some XML that is generated (actually retrieved) by PHP code from a database.

menuXML.load("/sub/page/dynamic.php?genre=" + genre); 

böylece nokta biz aynı SWF 'mainfraim' kullanmak ve dynamic.php sağlanan bağlantıya dayanan farklı animasyonlar / kaynakları ile doldurabilirsiniz nedir? genre = # # #

Now, I've used Flash Decompiler Gold to extract all files in the SWF and can open it again in Adobe Flash to edit it. When done I enter CTRL+ENTER and there are immediately 4 compiler errors!! Errors: 1x < Unexpected 'if' encountered > 2x < Statement block must be terminated by '}' > 1x < Ecpected a field name after '.' operator. >

Orijinal SWF mükemmel çalışıyor, nasıl bu hataları, mevcut olabilir?!

Bunu çözmek için yönetmek yoksa, ben = SWF tarz? Kullanarak (onlara göstermek için (sanırım bir veritabanından) uygun kaynakları seçebilirsiniz kullanmaya çalıştığında bir. Php dosyası oluşturmak için öğrenmek gerekir # # #)

Teşekkürler!

1 Cevap

Ben senin sorunu anlamak emin değilim, ama yük yönteme geçirilen url değiştirmek gerekir gibi görünüyor. Swf Actionscript 2.0 gibi o da görünüyor.

Iş tür decompilers, ama bir decompiler ile üretebilir fla dosyası nadiren sırt aynı swf oluşturmak yararlı olacaktır. Bazen kodu yasadışı olduğunu ve hemen hemen her grafik vidalanır.

Ben bir keresinde hiçbir kaynakları vardı için bir swf, (onlar kayıp olduğunu ve hiçbir yedek oradaydı ...) (birkaç adresler ve diğer basit şeyler değişiyor gibi) bazı basit kod değişiklik yapmak zorunda kaldı.

Bunun için flasm kullanılan ve (aynı zamanda o kadar zor ben sözde ilk olarak değil) iyi çalıştı.

Flasm bir decompiler, ama bir disassembler değildir. Bu, swf alır actionscript bayt kodu ayrıştırır ve montaj gibi bir kod içeren bir metin dosyası oluşturur. Bunu kod düzenlemek ve swf yeniden monte edebilirsiniz. Bu grafik ve animasyonlar dokunmaz, o yüzden ne gerek vardı, ve belki sizin için işe yarayabilir.

Ben küçük bir test yaptık ve iyi çalıştı.

Ben bir fla bu kod ile başladı:

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(ok:Boolean):Void {
    if(ok) {
        _debug_txt.text = "ok";
        _debug_txt.text = xml;
    } else {
        _debug_txt.text = "error";
    }
};

xml.load("/sub/page/dynamic.php");

Sonra, ben swf içerir ve çalıştırmak dizine bir cmd istemi (Windows üzerinde değilim), cd açıldı:

flasm -d test_flasm.swf > test_flasm.flm

Bu bir metin dosyası test_flasm.flm içine swf demonte edilebilir. Benim yürütülebilir yolunu Flasm ekledik, ama sadece bunun yerine flasm.exe tam yolunu kullanabilirsiniz.

. Flm dosyasının ilgili bölümü şöyle:

setMember
push '/sub/page/dynamic.php', 1, 'xml'
getVariable
push 'load'
callMethod

Sevgiler değişebilir, ancak url için bakarsanız, bunu bulacaksınız. Sonra, o url değiştirildi:

setMember
push 'test.xml', 1, 'xml'
getVariable
push 'load'
callMethod

Sonra, ben kullanarak swf yeniden birleştirilen:

flasm -a test_flasm.flm

Ve şimdi yerine "/ sub / sayfa / dynamic.php" arasında test_flasm.swf yükler "test.xml".

Umarım bu yardımcı olur.