ハブラのすべての住民にこんばんは。 私は長い間、この投稿にどのように名前を付けるかを考え、頭に浮かぶものに最初に名前を付けることにしました。 原則として、この名前は私が話したいことをほぼ完全に説明しています。 そして、逆コンパイルせずに表示している
すべての swfファイルを簡単かつ簡単に変更する方法について説明します。

それでは始めましょう。 私たちの実験的なものはYouTubeプレイヤーになります。
最初に、少し背景を説明します。 Flexでは、まともなテクノロジーと同様に、アプリケーションのプロファイルを作成できます。 プロファイリングには、
特別なエージェントが使用されます。これは、最終的なswfファイルをそれ自体にロードし、ソケット接続を介してプロファイラーにデータを転送します。
ここで、Flashを使用している人にとっては、「エージェントが異なるドメインにある場合、エージェントがプロファイリング用のファイルからデータを受信するにはどうすればよいですか?」
Flashでは、アクセス権に制限があります。 たとえば、siteA.comからファイルAをダウンロードし、siteB.comからファイルBをダウンロードした場合、BがコードAにアクセスできるようにするには、コードAへのアクセスを手動で許可する必要があります(ApplicationDomainおよびLoaderContextを使用)またはオブジェクトAへのリンクをBに渡します。さらに、クロスドメインダウンロードを許可するcrossdomain.xmlファイルがsiteB.comに存在する必要があります。 そのようなこと。
すべてが非常に簡単です。 Flashアプリケーションがロードされると、Flex Profilerをキャッチするドキュメント化されていない特別なイベント
「allComplete」を作成し、イベントからアプリケーションのオブジェクトへのリンクをすでに取得できます。 このリンクは、任意のアプリケーションにクロールできる穴です。
そして、最も興味深いのは、このエージェントでは、Flashプレーヤーによって開かれた
すべてのファイルが、すべてのプレーヤーとブラウザプラグインからダウンロードされることです。
さて、理論から実践に移りましょう(上記で説明したことをすべて理解していない場合は、すぐに行うこととそれがもたらすものを見てください)。
ステージゼロ
デバッグするには、デバッグプレーヤーが必要です。 サイズは、標準よりわずかに大きくなっています。
こちらからダウンロードできます。
ステージ1
最初に必要なのは、プロファイリング用の独自のカスタムエージェントです。 そのコードはすべて60行になります。 ここに彼のコードがあります(
AS3コードの通常の強調表示がないため、写真として挿入しました。コードの下部にソースをダウンロードするためのリンクがあります )。
ダウンロード: ソースコード | コンパイルされたエージェントコンパイルされたエージェントを自分でダウンロードして、好きなフォルダーに入れてください。
ステージ2
さて、ダウンロードしたアプリケーションへのリンクを受け取り、それをデバッガに渡す独自のエージェントができました。 信頼できるアプリケーションに追加します。 これを行うには、プレーヤー
設定ページに移動し、Injector.swfファイルを選択します
デバッガー自体をダウンロードします。 この場合、
DeMonsterDebuggerが使用されます。これは、AIRアプリケーションの形式で作成された優れたデバッガーです。 それをインストールします。
ステージ3
次に、プレーヤーの構成ファイルでプロファイラーの値を設定する必要があります。 ファイルの名前はmm.cfgで、次のディレクトリにあります。
Windows 2000 / XP C:\Documents and Settings\{username}\mm.cfg
Windows Vista / 7 C:\Users\{username}\mm.cfg
Mac OSX /Library/Application Support/Macromedia/mm.cfg
Linux /home/username/mm.cfg
ファイルが存在しない場合は、作成してください。
次に、プロファイラーへのパスを規定します。 次の行をmm.cfgに追加します。
PreloadSWF={ }
例:
PreloadSWF=D:/Workspace/Injector/bin/Injector.swf
ステージ4
ブラウザ/ブラウザまたはフラッシュプレーヤーを再起動します。 もう一度起動して、DeMonsterDebuggerを開きます。


覚えておくべき主なことは、1つのswfファイルを開くだけでよいことです。そうしないと、最初にコードが実行されるファイルがデバッガーのクライアントに接続します。
このすべてがあふれているものは何ですか
開発者にはhemoがたくさんあります。 このバグのおかげで、任意のフラッシュアプリケーション用に独自のラッパーを作成し、これらのアプリケーション内でコードインジェクションを実行できます。 さらに、アプリケーション側でこのような注入を決定することは非常に困難です。
率直に言って、このバグにはいくつかの用途があります。
- ブラウザベースのマルチプレイヤーゲームで使用-これにより、画面に表示されない隠されたパラメーターを確認でき、送信されたデータを制御したり、ボットを作成したりできます。
- 音楽やビデオのあるサイトに関連するリソースへのリンクを取得するためのラッパー
- 広告配信を無効にするラッパー、またはアプリケーションに配線されたチェックをバイパスするラッパー
このバグには多くのアプリケーションがありますが、AdobeがFlexのコードのプロファイリングとデバッグに不可欠な部分であるため、Adobeがすぐにそれを閉じるかどうかはわかりません。 このバグは
Jean- Philippe Auclairによって発見されました。
この投稿へのコメントで彼に敬意を表するか、彼の
twitterを購読してください。
