フラッシュアプ​​リケヌションを「保護」する方法



こんにちは。 フラッシュアプ​​リケヌションの開発で䜿甚されるコヌド調査、詐欺、盗難から保護するためのいく぀かの方法ず、それらのいく぀かを回避する方法に぀いおお話したす。

珟圚、このトピックに関する倚くの優れたプレれンテヌションず䜜品がありたす蚘事の最埌のリンクを参照が、いく぀かのニュアンスをより詳现に説明し、トピックに関する倚くの情報を1か所にたずめたいず思いたす。 少なくずも私はそれをしようずしたす。



個人的な利益、著䜜暩䟵害、ラむセンス契玄、およびあらゆる囜の法埋を取埗するために、この蚘事に蚘茉されおいるすべおのものを決しお䜿甚しないでください。 広告はありたせん。すべおは個人的な奜みず経隓に基づいお曞かれおいたす。 この蚘事のコヌド䟋は簡単な䟋です。これを芚えおおいおください。




-はじめに



フラッシュの䞖界スピヌチ、もちろんクラむアントに぀いおでは、䟵入者に察する保護は保蚌されおいたせん。䞍幞なものだけを陀倖し、最埌たで行くこずに決めた人の䜜業を耇雑にするこずができたす。 悪者の費甚ず時間を可胜な限り高くし、費甚をできるだけ䜎くするように努力するこずは䟡倀がありたす。 理想的には、攻撃者が障害物を回避するよりも、れロから賌入たたは曞き蟌みを簡単、高速、安䟡にできるようにしおください。



保護システムずバむパス/保護解陀システムの間の闘争は進行䞭です。 これは、ActionScript3以降AS3コヌドがコンパむルされるSWF圢匏ずバむトコヌド ここ 、 ここ 、 ここでもの仕様にアクセスできる人が誰でもアクセスできるずいう事実によるものです。 これにより、SWFファむルをコンポヌネントグラフィック、サりンド、バむトコヌドなどに解析するための独自のラむブラリずアプリケヌションを自由に蚘述でき、バむトコヌドを䜿甚しお䜕でもできたす。次に䟋を瀺したす。

保護の分野では、さたざたな目暙ず手段がありたす。 プロゞェクトに適したものだけを遞択し、䞍芁な䜜業は行わないでください。





-コンテンツ



いく぀かの方法実装だけでなく、意図した目的も異なるのいく぀かを回避する䟋ず、コヌドを調べるずきに䜿甚できるいく぀かのツヌルを怜蚎したす。

  1. URLロック1぀たたは耇数のドメむンにバむンド、ロヌカル起動に察する保護
  2. 倉数、リ゜ヌス、およびクラス
  3. 透かし
  4. SWFパッキング
  5. 動的なコヌド生成ずSWF線集
  6. コヌドの難読化ずデヌタの隠蔜
  7. メモリからのSWFファむルの保存に察する保護
  8. Flash Explorerツヌルキット


-1. URLロック、ロヌカル起動に察する保護



目暙は、SWFファむルを特定の条件䞋、たずえば1぀以䞊のドメむンでのみ機胜させるこず、たたはロヌカルでの起動を犁止するこずです。

必芁な堎所にSWFが起動されおいないこずを確認した埌、必芁に応じおその動䜜をプログラムできたす。 䞍芁なドメむン\ URLをサヌバヌに送信しおlocalhostでない堎合、それらを䜕らかのログに入力できたす。

元のドメむンSWFファむルが機胜するを暗号化された圢匏で保持するか、クラむアントにたったく保持しないサヌバヌからも暗号化された圢匏で受け入れるこずをお勧めしたす。

ドメむンにバむンドしおロヌカルスタヌトアップを決定するいく぀かの方法を芋おみたしょう。



珟圚のURL \ドメむンを取埗しおドメむンにバむンドする



これは、ドメむンにバむンドする最も䞀般的な方法です。 珟圚のURLたたはドメむンを取埗するには、通垞次を䜿甚したす。



a loaderInfo 

SWFファむル自䜓を移動せずに非ネむティブドメむンのHTMLペヌゞにSWFを埋め蟌んだ堎合、パスは倉曎されたせん。



b LocalConnection  LocalConnection.domainを䜿甚しお、SWFファむルが珟圚実行されおいるドメむンの名前を取埗できたす。

倖郚SWFがSWFのドメむン以倖のドメむンにあり、次のように珟圚のセキュリティドメむンにそのSWFをアップロヌドした堎合

 var context:LoaderContext = new LoaderContext(true); context.securityDomain = SecurityDomain.currentDomain; loader.load(new URLRequest(url), context);
      
      



たたはLoader.loadBytes



を䜿甚するLocalConnection.domain



ロヌドされたSWFのLocalConnection.domain



SWFのドメむンが含たれたす。

SWFファむル自䜓を移動せずに非ネむティブドメむンのHTMLペヌゞにSWFを埋め蟌んだ堎合、パスは倉曎されたせん。



c ExternalInterface JavaScript以降JSを䜿甚できたす。 たずえば、SWFが埋め蟌たれおいる珟圚のペヌゞぞのパスは、 window.location.href



を䜿甚しお取埗できたす。 JSを呌び出すには、 ExternalInterface.call



䜿甚したす。 なぜなら 最初のパラメヌタヌがメ゜ッドの名前を取り、 window.location.href



がプロパティである堎合は、toStringを䜿甚する必芁がありたす。

 var myHTMLUrl:String = ExternalInterface.call("window.location.href.toString");
      
      



ちなみに、ドメむンはExternalInterface.call



からも取埗できたす。

 var domain:String = ExternalInterface.call ("eval", "document.domain");
      
      





ExternalInterfaceを䜿甚しお、SWFが配眮されおいるペヌゞでJS関数を呌び出すこずもできたす-既存のものずevalを䜿甚しお自分で䜜成したものの䞡方

 var customJavaScriptCode:String = "function customJS(){alert('Yes, this is a custom JS');}"; ExternalInterface.call("eval", customJavaScriptCode); ExternalInterface.call("customJS");
      
      



たた、この方法にはJSが必芁であるこずを忘れないでください。これは垞に可胜ではありたせん。

SWFファむル自䜓を移動せずに、非ネむティブドメむンのHTMLペヌゞぞの埋め蟌みをバむパスしようずするず、 ExternalInterface.call



の実行によりSecurityErrorが生成されたす。




d FlashVars HTMLペヌゞにSWFを配眮するずき、たたは別のSWFから読み蟌むずきに、FlashVarsを介しおドメむンや他のデヌタぞのパスを転送する堎合がありたすこれは、ドメむン



FlashVarsはパラメヌタヌずしお枡すこずができたす。


 <object ...> <param name="FlashVars" value="var1=value1&var2=value2" /> </object>
      
      



たたはファむル名で
 <object ...> <param name="movie" value="somecoolmovie.swf? var1=value1&var2=value2" /> </object>
      
      



次のようにFlashVarsにアクセスできたす。

root.loaderInfo.parameters.var1





_root.var1







珟圚のURLたたはドメむンを取埗せずにドメむンにバむンドする



この方法は、クロスドメむンセキュリティポリシヌに基づいおいたす。 起動時にバむンドされたSWFは、crossdomain.xmlファむルが存圚する特定のホストから「特別な」ダミヌファむルをダりンロヌドしようずしたす。その際、SWFの1぀にある信頌できるドメむンからのみリ゜ヌスをダりンロヌドできたす。 したがっお、「盗たれた」SWFファむルがcrossdomain.xmlで指定されおいないドメむンの「特別な」ファむルにアクセスするず、サンドボックスセキュリティ違反が発生し、「特別な」ファむルはロヌドされたせん。 さらに、䟋倖がスロヌされ、LoaderInfoクラス Loader.contentLoaderInfo



のむンスタンスに察しおSecurityErrorEvent.SECURITY_ERROR



むベントが発生Loader.contentLoaderInfo



たす。 これにより、SWFが本来あるべき堎所にないこずがわかりたす。

「特別な」ファむルは、眮換を防ぐために盎接アクセスする必芁がありたす。



ロヌカルトリガヌ定矩



SWFのロヌカル起動は、SWFたたはHTMLぞのリンクを取埗し、サブストリング「file//」の存圚を確認するこずで刀断できたす。

SWFがHTMLの倖郚で実行される堎合、 ExternalInterface.call



メ゜ッドはnullを返したす。

Capabilities.playerType



を䜿甚しお、SWFが実行されるFPのタむプを確認するこずもできたす。

別の方法は、 Security.sandboxType



ずSecurity.REMOTE



比范するこずです。



これらのすべおの方法には長所ず短所がありたす。サヌバヌを必芁ずしないものもありたすが、バむンディングを行うドメむンを倉曎する際にSWFファむルを再コンパむルする必芁があるものもありたす。

蚘事のコヌドアヌカむブぞのリンクは蚘事の最埌にありたすの「1-URL Lock」フォルダヌに、説明されおいるいく぀かのメ゜ッドの実装の䟋ず、メ゜ッドの1぀に察するパッチのいく぀かの䟋がありたす。

泚意 ほずんどのURLロックトリックは、DenwerやXAMPPなどのロヌカルサヌバヌで䜜業するこずで回避できたす。





-2.倉数、リ゜ヌス、およびクラス



通垞、倉数ずリ゜ヌスはゲヌムを䜜成するずきに凊理されたす。 もちろん、重芁なロゞック、デヌタ、倉数をクラむアントの倖郚に眮く方が良いのですが、残念ながら、これは垞に可胜ずは限りたせん。そのため、詐欺の抜け穎の数を枛らす方法を考える必芁がありたす。

倉数の線集ほど頻繁にリ゜ヌスずクラスの眮換を䜿甚したせんが、それでも䜿甚したす。そのため、それらをどのように䜿甚し、どのように防止できるかを説明したすこれから自分を保護するこずは䞍可胜です。



可倉保護



倉数は非衚瀺にし、倉曎から保護する必芁がありたす。 非衚瀺にする最も簡単な方法は、基本クラスの呚りに独自のラッパヌを䜜成するこずです。

たずえば、CryptInt、CryptStringなど。 クラス自䜓には、倀を受け取っお返す、暗号化たたは埩号化するメ゜ッドを蚘述できたす。これにより、メモリ内の倉数が非衚瀺になりたす。 「2-MemoryDomain \ MemoryExample」フォルダヌ内の蚘事のコヌドにあるCryptIntおよびCryptStringクラスの実装を芋おください。

たた、倉数の倀を非衚瀺にするために、倉数をコンポヌネントに分解し、混合、シフトなどするこずができたす。 隠された倀をある倉数から別の倉数に移動し、GCガベヌゞコレクタヌに䜿甚された倉数を解攟するようなパむプラむンを䜜成するこずもできたす。 ByteArrayは、おそらく「Alchemy」 Azothの fastmem、 Apparatの Memoryを䜿甚しお、そのようなリサむクル可胜な倉数の「䞀時ストレヌゞ」ずしお䜿甚できたす。

そしお、倉数が芋぀かっおも倉曎できないように、たずえば、倉数の倀を参照ず比范するこずができたす。 さらに、倉数の倉曎時たたは倉数ぞのアクセス時、および指定された間隔の䞡方で比范を行うこずができたす。



リ゜ヌス亀換



SWF党䜓を眮き換えるか、ブラりザキャッシュに倖郚ファむルをロヌドできたす。 停のSWFファむルたたはスプヌフィングされたリ゜ヌスでは、グラフィックスサむズ、透明床、シフト、フレヌムレヌトなどおよびコヌドこれは䜕でもしたくないに倉曎を加えるこずができたす。

悪者のタスクを耇雑にするなりすたしから身を守るこずは䞍可胜ですために、ダりンロヌドしたデヌタず自分の信authentic性を怜蚌する必芁がありたす-たずえば、MD5を保存しお起動時に比范し、MD5を暗号化された圢でどこかに保存する必芁がありたす。

SWFがサヌバヌず通信する堎合-非衚瀺のチェックを実行する-たずえば、ダりンロヌドしたリ゜ヌスをMD5サヌバヌに送信したす。



可胜であれば、スプヌフィングを防ぐために、倖郚SWFおよびその他のリ゜ヌスをメむンSWFの本䜓に暗号化された圢匏で保存し、自分から削陀した埌にLoader.loadBytes



でロヌドできたす。 Loader.loadBytes



は、ダりンロヌドしたデヌタをブラりザヌのキャッシュに保存したせんが、同時にメむンSWFはキャッシュされたす。 このような堎合のLoader.loadBytes



䜿甚に関する詳现は、蚘事の次のセクションのいずれかに蚘茉されおいたす。

暗号化された圢匏のリ゜ヌスやその他のSWFファむルをサヌバヌに芁求し、それらを埩号化しおLoader.loadBytes



介しおダりンロヌドするこずもできたす。



クラスのオヌバヌラむド



これから自分を守るこずも䞍可胜だずすぐに蚀いたす。

ApplicationDomain



ロヌダヌにタヌゲットSWFをロヌドするこずにより、クラスを眮き換えるこずができたす。 これを行うには、眮き換えられるクラスず同じ名前のクラスを含むブヌトロヌダヌを䜜成し、SWFをドメむンにロヌドしたす。

 var appDomain:ApplicationDomain = ApplicationDomain.currentDomain; var swfLoader:Loader = new Loader(); swfLoader.load(new URLRequest('original.swf'), new LoaderContext(false, appDomain));
      
      



したがっお、ロヌドされたSWFは、ロヌダヌからクラスず「通信」するこずを匷制されたす。 実装䟋は、「2-MemoryDomain \ applicationDomain」フォルダヌにある蚘事のコヌドで確認できたす。 子およびドメむンぞのアップロヌドを䜿甚したクラス眮換の䟋がありたす。 「犠牲者」には、茻茳をチェックするためのいく぀かのオプションがありたすそれらが含たれるクラスの眮換がかかりたす。

これを防ぐには、独自のロヌダヌを介しおメむンSWFを新しいApplicationDomainにロヌドしたす。

 var appDomain:ApplicationDomain = new ApplicationDomain(null); var swfLoader:Loader = new Loader(); swfLoader.load(new URLRequest('original.swf'), new LoaderContext(false, appDomain));
      
      



ブヌトロヌダヌずメむンSWFの間に匷力な接続を確立しお、それらを「分離」するこずは非垞に困難です。 ただし、ブヌトロヌダを眮き換えお、この接続を維持できた堎合、これらの努力は無駄になりたす。



本圓に重芁な倉数ずデヌタのみを保護し、メ゜ッドを組み合わせたす。

可胜であれば、サヌバヌの重芁な倉数を操䜜するロゞックを䜿甚し、リ゜ヌスのサブスクラむブず倉曎の確認を行いたす。





-3.透かし



これらは、コピヌ防止、違法䜿甚、および広告目的に䜿甚できたす。



それらのタむプの䞀郚を次に瀺したす。

  1. 芖認性の高い芁玠テキスト、ロゎ、画像など

    ラベルが「はんだ付け」されおいる堎合SWFの画像ずグラフィックの䞡方に適甚されたす、ラベルに適甚されたデヌタを線集しお手動で削陀する必芁がありたす。これは非垞に困難たたは完党に䞍可胜な䜜業です。

    たずえば、SWFの最䞊䜍の「レむダヌ」にラベルが個別に配眮されおいるたたはプログラムで远加されおいる堎合、ラベルが慎重に削陀される可胜性ははるかに高くなりたす。
  2. 隠しアむテム。 圌らはどこにでもいるこずができたす。 そのような透かしを取り陀くこずはしばしば䞍可胜です、なぜなら 䜜成者以倖は誰もどこを芋るべきかわからないでしょう。 これらのマヌクは、これらが実際にマヌクであり、それらを繰り返すこずが䞍可胜であるこずを法廷で蚌明できるようにするために䞀意でなければなりたせん。
この項目は非垞に欠陥があるこずが刀明したしたが、ここで蚀うこずはありたせん。そのような救枈策も存圚するこずを忘れないでください。





-4. SWFの「パッケヌゞ化」



SWFを完党に隠すこずはできたせんが、䞍運な攻撃者による目的のSWFの怜玢を耇雑にする可胜性のある非垞によく知られた方法が少なくずも1぀ありたす。



Embedタグを䜿甚しお、たずえば次のように、SWFをflexたたはflashプロゞェクトに远加できたす。

 [Embed(source = "./dummy.swf", mimeType = "application/octet-stream")] private var _content:Class;
      
      



この方法で远加されたファむル耇数のEmbedタグがある堎合、任意のバむナリファむルたたは耇数のファむルがDefineBinaryDataタグに配眮されたす。

次に、次のようにLoader.loadBytes



を䜿甚しお、この方法で「パック」されたファむルをロヌドできたす。

 var someFile:ByteArray = new _content(); loader.loadBytes(someFile);
      
      



SWFファむルの解析ずタグの操䜜には倚くのツヌルがあり、DefineBinaryDataタグを眮き換えたり远加したりするこずができたす。

これらすべおを知っおいれば、プロセスを自動化するために単玔な「パッカヌ」をスケッチできたす。 ラップする前に、SWFを䜕らかの方法で倉換するこずができたす。たずえば、単玔で高速な察称xorで凊理し、ブヌトロヌダヌ「パックされた」SWFを含むでSWFを埩号化しおロヌドするコヌドを蚘述したす。 xorを䜿甚した単玔な「暗号化」は、デコンパむラによる自動凊理から保護するためにのみ必芁であるため、SWFファむルは「玔粋な圢匏」でロヌダヌに含たれず、より耇雑な暗号化は無意味です。

BitmapDataの圢匏など、他の方法でファむルが「埋め蟌たれ」、耇数レベルのネストが䜜成されるこずもありたす。



最も単玔なパッカヌの実装䟋は、蚘事のコヌドの「3-SWFPacker」フォルダヌにありたす。 たた、orig.swfずpacked.swfの2぀のファむルがありたす。これらを逆コンパむルしお比范するこずができたす。

このメ゜ッドは、少なくずも2぀の方法で行いたす。

-ブヌトロヌダヌでのデコヌダヌアルゎリズムの研究ず独自のデコヌダヌの䜜成特に倧芏暡なネストロヌダヌでは時間がかかる

-既に解凍されおFPにロヌドされたSWFファむルが存圚するメモリ郚分を保存したす特に、以䞋で説明するメモリからの保護に察する保護手段が䜿甚されおいない堎合は、簡単か぀迅速に





-5.動的なコヌド生成ずSWF線集



すでに繰り返し尋ねられおいたす-リアルタむムフラッシュでコヌドを生成したり、他のSWFファむルを䜜成および線集するこずは可胜ですか 答えはむ゚スです、可胜です

コヌドに぀いおは、 AS3Commons ByteCodeを詊しおください。 このプロゞェクトでは、リアルタむムのバむトコヌドを収集しお実行できたす。

さたざたなメ゜ッドずプロパティを持぀クラスを最初から䜜成したり、他のクラスから継承したりできたす。 たずえば、メ゜ッド本䜓は、バむトコヌドを盎線的に䜿甚しお蚘述するこずができたすmethodBuilder.addOpcode(Opcode.getlocal_0)



たたはすぐにブロックで

 var source:String = (<![CDATA[ getlocal_0 pushscope ... getlocal_1 returnvalue]]>).toString(); methodBuilder.addAsmSource(source);
      
      



abcBuilder.buildAndLoad()



を䜿甚しお、生成されたコヌドをAVMにロヌドできたす。

たた、バむトコヌドを操䜜するためにas3abcを詊すこずができたす。これは、著者によれば、悪名高いJoa EbertによるすばらしいApparatフレヌムワヌクの郚分的な移怍版です。

バむトコヌドではなくスクリプトの動的な実行を倢芋おいるなら、 as3scriptinglibを芋おください 。 このプロゞェクトを䜿甚するず、JavaScriptを含むActionScript 3 / ECMAScriptスクリプトをリアルタむムでコンパむルおよび実行できたす。 これがflexデモアプリケヌションでどのように機胜するかを確認できたす 。 残念ながら、プロゞェクトは長い間曎新されおいたせん。



SWFファむル自䜓ずその構造を詊すには、 as3swfたたはswfassistを詊しおください。



オンザフラむでコヌドを生成する機胜、およびリアルタむムでSWFを線集および䜜成する機胜により、さたざたな耇雑なスクリプトやトリックを䜜成しお、攻撃者を混乱させ、コヌドを隠すこずができたす。 ここで、たずえば、私の頭に浮かんだ最初の3぀のトリック

  1. サヌバヌ偎の郚分でクラむアント偎でcode \ bytecodeを生成および実行し、コヌド党䜓から元のSWFに悪意のあるナヌザヌを残したす。ただし、それらを残しおもかたいたせん無料のラむブラリ、ボタンなどのコヌド+デコヌダヌのコヌド「ビルダヌ」はすでに最終コヌドです。
  2. コヌドのトリックず同様に、クラむアント偎でSWFを郚分的に収集したす。タグで収集したり、サヌバヌから受信したり、ブヌトロヌダヌにパックされた暗号化デヌタから1぀ず぀アンパックしたりできたす。
  3. 実行プロセス䞭に自己修正コヌドを䜜成したす。たずえば、特定のルヌルたたはパタヌンに埓っお異なる方法で同じメ゜ッドを生成したす。 たずえば、i ++はi + = 1ずしお実装できたすFP 10.1では少なくずも異なるバむトコヌドになりたす。たた、ルヌプはさたざたな方法で実装できたす。

    生成されたコヌドがそれを生成したメ゜ッドを倉曎するような方法で工倫するこずが可胜かもしれたせん。 たずえば、実行の次の反埩で他のクラスずメ゜ッドが生成されるため、コヌドが倧幅に耇雑化および混乱するため、攻撃者が取埗した堎合、攻撃者はこの「混乱」をすべお解析するためにできるだけ倚くの時間を費やす必芁がありたした。

    これはかなり耇雑なたたはフラッシュでは䞍可胜なトリックだず思いたす。 フラッシュ䞊でこのアむデアの実際に機胜する実装にただ䌚っおいたせん。 あなたが䌚ったなら、どこを芋るべきか教えおください、私は勉匷するのがうれしいです。


-6.コヌドの難読化ずデヌタの隠蔜



たず難読化に぀いお。 ゜ヌスコヌドずバむトコヌドでコンパむルされたコヌドの䞡方を公開できたす。 ゜ヌスコヌドの難読化はそれほど䟿利で効果的ではありたせん。バむトコヌドの難読化はより魅力的に芋えたす。 ゜ヌスコヌドはコンパむラの芁件を満たさなければなりたせん。コンパむラの芁件は、バむトコヌドに぀いおは蚀えたせん。さらに、想像力ず創意工倫の珟れの範囲がはるかに広くなっおいたす。

バむトコヌドの難読化には、アンチデコンパむラトリックの䜿甚、コヌドの非衚瀺および「ポむ捚お」など、芁玠の名前をコンパむラにずっお意味のない蚱容できない名前に倉曎するこずが含たれる堎合がありたす。



名前の倉曎は、おそらく、少なくずも䜕かをフラッシュに隠すための唯䞀の䞍可逆的か぀100の䜜業方法です。 メ゜ッドの本質は、メ゜ッド、プロパティ、パッケヌゞ、およびコンパむル埌に保存されるがコヌドの実行時には䜿甚されない名前の他の芁玠を倉曎するこずです。 元の名前を自動的に埩元するこずは䞍可胜です。コヌドの調査䞭に意味を掚枬しながら、これを手動で行う必芁がありたす。 難読化埌、新しい名前には無効な文字たたは予玄語が含たれる堎合があり、逆コンパむル埌に取埗したコヌドを簡単に再コンパむルしお䜿甚するこずはできたせん。



バむトコヌドを難読化するず、逆コンパむラがコヌドを耇雑な方法でブロック単䜍で分析するずいう事実に基づいお、逆コンパむラに「トラップ」が蚭定される堎合がありたす。

さらに、コヌドは単玔に「ごみ」になる可胜性があり、ボリュヌムが増加し、可読性が䜎䞋したす。これはパフォヌマンスに悪圱響を䞎える可胜性がありたす。



デヌタはさたざたな方法で非衚瀺にできたす。たずえば、次のずおりです。

.



, , , SWF . — SWF , .

SWF, "", , , , . "" , .





— 7. SWF



. , , – SWF- ( SWF ), SWF . SWF , = SWF .

, ByteArray. , :

 private function spamMemory(swfBytes:ByteArray):void { var allLen:uint = swfBytes.readUnsignedInt(); var swfLen:uint = swfBytes.readUnsignedInt(); var spamMemorySWFLen:uint = swfBytes.readUnsignedInt(); var spamMemorySWFBytes:ByteArray = new ByteArray(); spamMemorySWFBytes.endian = Endian.LITTLE_ENDIAN; swfBytes.readBytes(spamMemorySWFBytes, 0, spamMemorySWFLen); var allBytes:ByteArray = new ByteArray(); while (allBytes.length < allLen) { spamMemorySWFBytes.position = 4; spamMemorySWFBytes.writeUnsignedInt((((swfLen * 3) / 4) + ((Math.random() * swfLen) / 2))); allBytes.writeBytes(spamMemorySWFBytes); }; Sprite.prototype["__spam_"] = allBytes; }
      
      



, swfBytes – "" "" "" , "" .





— 8. flash



, ( 2010 ):



:

( ):

\:

, Amayeta SWF Encrypt, DComSoft SWF Protector, Mochi Encryption – , "" ( ), .

, , , , makc3d .



\ ..:

その他

, , , , .





—



, , , , . , SWF , , , , , . – , .

— SWF , .. , .



, . , - . , , .



():

  1. Claus Wahlers "Hacking SWF" FITC Amsterdam 2010.
  2. ( valyard ) " " FlashGAMM 2010
  3. , - , .
  4. romamik " ".
  5. Nautilus " ".
  6. puzzlesea "Robolander, 25 days later. , ".
  7. flashco ": €1500".
  8. Alexis' SWF Reference — , SWF .
  9. OWASP – , flash ( , ..).
  10. flash senocular "Security Domains, Application Domains, and More in ActionScript 3.0".
  11. Adobe flash.
  12. Adobe FP 10 (White Paper).
, .



: codestage.ru/files/flash_defend_files.7z



All Articles