SWF Protecting

Napsal O webu (») 3. 1. 2005 v kategorii Flash, přečteno: 3210×

Jak se bránit? Odpověď na tuto otázku je jednoduchá...

1. Jak se bránit...
Jak se bránit? Odpověď na tuto otázku je jednoduchá - Nijak... SWF je Otevřený formát (Open format) a je nemožné jej ochránit tak aby nebyla žádná možnost informace v něm obsažené zjistit. Pokusíme se však potenciálnímu útoč- níkovi práci ztížit jak jen je to možné...


2. Protect from Import...
Již od první verze Flash nabízí možnost "password-protected from import". Jedná se o funkci která zabrání Importu swf do Flashe... Flash odmítne importovat swf soubor obsahující řetězec s heslem. Je však nesmírně jednoduché Protekci odstranit a funkce tak není ničim jiným než falešnou představou o bezpečí swf souboru a tak o tomto způsobu protekce můžeme klidně zapomenout...


3. ActionScript Viewer a void (a)<=b>"c" || 0(!1 && !0)...
Decompilery dokážou extractovat z SWF symboly, grafiku a zvuky a extrahují taky ActionScript... Při pokusu o převod p-code (způsob jakým je script zapsaný v SWF souboru) do běžného ActioScriptu je tak můžem jednoduše zmást neexistujícím kódem... Například nejznámější kód po kterým zaručeně spadne ASV 2.0 (ASV - nejznámější SWF Decompiler všech dob) je " ; ". Stále se však vyvíjí nové verze a v ASV 3.0 již žádný problém nevznikal...


4. Co Player vidí a já ne...
Další možností ochrany je takzvaná obfuskace... Jde o záměnu příkazů ActioScript nesrozumitelnými kódy. Většinou zaměňuje jen názvy funkcí a proměnných ale i to dělá kód naprosto nesrozumitelným. Toto je příklad výsledného kódu...

function -3(-4){trace(-4);} function -1(0,-2){ if(0<-2){-3(1);} }

Pokuste se to pochopit! V internetu je k nalezení několik kvalitních obfuscátorů které dokážou jen s malým zvětšením veli- kosti souboru (v průměru jeden Kb na každý 2 Mb) velmi zabezpečit váš kód... Další možností jak zněpříjemnit život decom- pilerům je psaní kódů nesrozumitelnými znaky. Kupříkladu pokuď napíšem názvy funkcí a proměnných čínskými znaky, de- compiler vám zobrazí něco podobného tomuto:

function ?(){?,?){?.?=?;}

Tento kód již dokáže přečíst ASV 4.0 ale i tak dokáže způsobit nemalé problémy případnému zájemci o váš kód...


5. Ochrana online aplikací...
Předtavte si že jste vytvořili nějakou online hru a za pár týdnů ji uvidíte na většině jiných stránek v internetu... Jak tomu zabrábit? Možností je hodně...


a. Kontrola domény...
Stačí napsat script který nám bude kontrolovat adresu ze které se spouští naše aplikace. Pokuď je adresa správná - například http://www.myServer.net/myGame.swf bude pokračovat přehrávání V opačném případě se stránka vypne nebo zobrazí výstražnou zprávu. Když se přehrává offline, mněla by adresa vypadat asi takto: file://C| someSub/game.swf. Tím zaručíte že váš movie nebude možné přehrávat na cizím serveru ani offline stažená z vašeho webu... Tato ochrana je však naprosto bezmocná proti decompilerům.

> Script

// vezmem vše co se nachází mezi "://" a další "/" c1 = _url.indexOf("://")+3; c2 = _url.indexOf("/", c1); domain = _url.substring(c1,c2);

// odstraní všechny symboly před první "." c3 = domain.lastIndexOf(".")-1; c4 = domain.lastIndexOf(".",c3)+1; domain = domain.substring(c4,domain.length);

// přecházíme na pořadovanou stránku if (domain != "myserver.com") { gotoAndPlay("stolen"); } else { gotoAndPlay("start"); }


b. Dynamické načítání obsahu...
Další skvělou metodou jak odradit většinu ripperů a crackerů je dynamické načítání obsahu a to jak scriptů a textů (XML, AS, ASP, PHP, TXT) tak i grafického (SWF, JPG, PNG...). Více o dznamickém načítání obsahu se dá vyčíst z příručky ke Flashi a příslušné literatuře...


c. All Rights Reserved...
Radou na závěr je pak psaní copyrightů všude možne a to jak v ActionScriptu tak i třeba v názvech layerů... Pokuď pak najdete váš obsah na cozí doméně - máte přímý důkaz o vašem vlastnictví programu. Nesmíte však nikdy mazat svoje source - je to nejdůležitější důkaz...


6. Macromedia SWC...
Od verze MX 2004 Macromedia zavedla nový formát .swc který umožňuje větší protekci obsahu Flash aplikací... Jak tento formát využít a ochránit tak vaše data se doyvíte v oficiální příručce k Macromedia Flash MX2004 a na stránkách macromedia...

> Links

http://www.macromedia.com/cfusion/search/index.cfm?loc=en_us&term=SWC


7. Přípony...
Jednou ye skvělých možností je taky změna přípony swf souboru z swf na třeba saf - tím odradíte většinu lamerů a swf downloaderz nedokážou sfw stáhnout... V kombinaco s HTML protekcí (HTML Guard, Secure HTML) je to velmi dobrá ochrana, nesmíte však zapomenout změnit v html souboru cestu k novému movie (z myMovie.swf třeba na myMovie.saf)...


8. Už se stalo...
Pokuď vám například váši hru již někdo ukradl první krok který byjste měli podniknout je napsat mu e-mailem - stále je tu ještě hodně lidí kteří v žádném případě nechtějí nikomu ublížit a po napomenutí vaši hru ze stránky odstraní... Pokuď vám autor stránek neodpoví nebo není na stránce žádný kontakt zkuste napsat jeho internet providerovi... Pokuď nemá ripper vlastní doménu (www.provider.ripper.com nebo www.provider.com/ripper/) stačí zadat první část adresy (www.wz.cz, www.provider.com) a najít tam adresu - pokuď má ripper vlastní doménu můžete jít na stránku www.nic.cz nebo www.networksoltions.com kde můžete využít služby WhoIs která vám poskytne bližší informace o autorovi a jeho adresu... I když ripper nebude chtít váš movie odstranit, jeho provider (nikdo nechce mít problémy se zákonem) to rád udělá za něj...


Philip "pips" Seyfi, seifip@centrum.cz
FavoritSoft, http://www.fs-studio.com/
Autor: Philip
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

DarkLight z IP *** | 3.1.2005 13:25
Clanek je perfect, zajimavej, clovek se neco dovi a vi jak na to, jen mi rve oci, kdyz autor pise namisto slova ochrana slovo protekce. Prevzal to z anglickeho slova "protection" ale protekce a pravy vyznam slova "protection" ochrana jsou dve UPLE jine veci, takze pro priste si dej bacha "pips"i ;) Jinak clanek je super! smajl
Donar z IP *** | 3.1.2005 16:40
darklight: souhlas
tubes z IP *** | 3.1.2005 19:24
jj. skvela informačna hodmota veĺa nových veci smajl
až na tie chyby smajl
Veď si rodný CZECH
smajl smajl
Flashpro z IP 88.100.116.*** | 30.8.2006 10:47
Ahoj
Dá se tomu přece zabránit tím, že vytvořím stránku na net a potom jenom vytvořím druhej swf do kterýho se načte stránka!!
No a když si to někdo stáhne, tak si stáhne jenom ten swf do kterýho se to načítá!!
Takže by tam byl příkaz onLoadError to by znamenalo že když tam nebude stránka.swf tak se to posune na 2snímek kde by bylo napsaný že to zkopíroval!!
A kdyby chtěl zjistit z toho swf ten název (stránka.swf) tak to nezjistí, protože ten Action Script zakoduju nějakým Encryptem ne ?
smajl smajl
p z IP 147.230.72.*** | 30.8.2006 11:05
ten flash se pripoji k nejakymu serveru, neco mu posle, neco posle server nazpatek a to neco se da vzdycky odchytit vcetne toho, jake to neco ma adresu. nejsi trochu paranoidni?
Flashpro z IP 88.100.116.*** | 30.8.2006 12:15
nejsem.
Ale přece aj tak to nikdo nezjistí ne ?
Freeze z IP 85.71.175.*** | 30.8.2006 12:28
Hm... a i kdyz to nejak zakodujes tak to musis zakodovat ne hashem ale obycejnou sifrou. A kdyz ji ma rozlistit porhlizec tak ji logicky neni tezke rozlustit pri odchytavani packetusmajl
Flashpro z IP 88.100.116.*** | 31.8.2006 10:21
ale Encrypt mě překoduje AS na nesmysl, takže nikdo nic nezjistí ne snad smajl


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel osm a dvě