Admin Panel

Yahoo ID status checker:

danicicovlad.hi5.com

luni, 4 ianuarie 2010

Hack SWF files (flash files) - fixing Bubble Shooter.swf


Astăzi vom învăța lucruri interesante!

Pe scurt: Îți arăt cum să decompilezi și să modifici un fișier flash (.swf) folosind Sothink SWF Decompiler și Adobe Flash CS3.

Problema mea: Platforma Blogger blochează apelarea link-urilor externe dintr-un obiect flash (.swf) în acceași pagină din motive de securitate.

Unde am întâlnit asta? La jocul Bubble Shooter. Mai exact, la salvarea highscore-ului. Ce încearcă jocul defapt, la apăsarea butonului Publish BEST, este să apeleze un link (e vorba de site-ul celor care au creat jocul) pentru a trimite scorul, împreună cu numele introdus. Acestea sunt trimise criptat sub forma unui parametru:

getURL("http://absolutist.com/cgi-bin/gameres.pl?e=" + _root.Crypto(stSend), "_top");

Ce nu-i place la blogger din această linie însă, este parametrul "_top" cu care este apelată funcția getURL().
Să observăm un pic sintaxa acestei funcții:

getURL(url:String, [window:String, [method:String]]) : Void

Aflăm că parametrul "_top" este fereastra în care se apelează funcția. Are o semnificație specială.
Mergem la școală aka consultăm site-ul celor de la w3schools.com și aflăm rolul acelor denumiri:


_blank
Open the linked document in a new window
_self
Open the linked document in the same frame as it was clicked (this is default)
_parent
Open the linked document in the parent frameset
_top
Open the linked document in the full body of the window
framename
Open the linked document in a named frame


Începe the fun part. Cum modificăm acel parametru din obiectul nostru flash (.swf) ? Îți zic eu! Uite așa...

1. downloadăm și instalăm programul Adobe Flash  CS3
(Notă: Poate fi și altă variantă dar eu pe asta o aveam deja instalată. Ideea contează. La un simplu search pe google dai de [.torrent link])



2. downloadăm programul SWF Decompiler de la Sothink Software
(Notă: Ca să nu mai cauți... am găsit eu  varianta crackuită. Deși e atât de simplu de găsit...)



3. deschidem fișierul flash (bubble shooter.swf) cu acest program și dăm click pe butonul din dreapta sus Export FLA/FLEX
Notă: Pentru a salva fișierul .swf folosit de mine dă click dreapta pe următorul link și click pe Save target as sau Save link as - în funcție de browser: bs.swf.



4. eu am folosit parametrii aceștia în fereastra cu configurările de export:



5. după ce apăsăm Ok, dacă e instalat programul Adobe Flash, ni se va deschide fișierul decompilat în acest program, gata de editare.



6.  trebuie să ajungem la butonul Publish best. Știm că îl întâlnim în fereastra cu highscore-ul. Aceasta se deschide când dăm click pe Top 10 sau când e game over. Ok. Să găsim acea fereastră.

7. Click dreapta pe butonul Top 10 și click pe Actions. Observăm că i se atașează obiectul din librarie cu id-ul "_top" și i se dă un nume instanței acelui obiect, "wtop"

attachMovie("_top", "wtop", 15000);

public attachMovie(id:String, name:String, depth:Number, [initObject:Object]) : MovieClip



8. deschidem din librarie obiectul cu id-ul "_top". Dăm click pe Window > Library (Ctrl+L) pentru a deschide librăria în care avem toate obiectele din filmuleț. Click pe Linkage pentru a ordona fișierele. Nu de alta dar e mai ușor de găsit obiectul de care avem nevoie. În coloana Linkage căutam Export: _top.





9. dăm click dreapta pe acel obiect și selectăm Edit



10. ni se deschide acel obiect in fereastra principală.
(Notă: Nu mai avem nevoie de librarie așa că o putem închide ca să avem mai mult spațiu pe ecran)



11. dăm click dreapta pe butonul Publish BEST și click apoi pe Actions



12. ajungem într-un final la ce doream, și anume, la linia de cod:

getURL("http://absolutist.com/cgi-bin/gameres.pl?e=" + _root.Crypto(stSend), "_top");



13. modificăm parametrul "_top" din acea funcție în "_blank" și suntem gata. Ne amintim de mai devreme de la w3schools.com că _blank deschide acel link într-o nouă fereastră.

getURL("http://absolutist.com/cgi-bin/gameres.pl?e=" + _root.Crypto(stSend), "_blank");

14. Publicăm noul fișier. Click pe File > Publish (Shift+F12).

Tataaam. Finish :)

Tot ce ne rămâne e să uploadăm noul fișier în locul celui vechi și să testăm. Dă o tură la bubble shooter și încearcă să-ți salvezi scorul :)

Te-ntrebi cumva dacă poți hackui highscore-ul ? Funcția _root.Crypto(...) îți stă la dispoziție...

Deci.. de ce nu ? >:)

UPDATE (10.01.2010, 03:00):  Look at the highscore table now! Cine e pe primul loc? :-" ... Danicico.ro! :D
Reblog this post [with Zemanta]

Un comentariu:

  1. Foarte fain tutorial ! Felicitari ! Eu tot incerc sa gasesc o modalitate de a publica Best Scores la mine pe site in osC ... e mai complicat un pic deoarece trebuie sa folosesc o baza de date si nu-mi convine sa incarc site-ul aiurea. Poate gasesc o metoda mai buna si mai sigura de a salva intr-un fisier extern ...
    Pentru moment sting becul pe Danicico (old school cico i guess) si trag pe dreapta :)

    RăspundețiȘtergere

tutunul dăunează grav sănătății
(tutunul dăunează grav sănătății)