2011-12-04 6 views
1

IEを使用してFlash(swf)ファイルを含むWebページを表示しているときにswfファイルのコンテンツをハイジャックする方法。これは、swfファイルの逆コンパイルやswfファイルのクラッキングには関係しません。それは簡単です。私の目標はswfファイルの内容を変更することです(例えばhttp://www.xxx.xxx/org.swf)。swfがロードされた直後で、Flash Playerがswfファイルを実行する直前(asvエンジンで解析する)です。はい、変更の機会は非常に厳しいです。IEでswfコンテンツをハイジャックする

私はちょうどIEでswfをハイジャックしたい、つまり、私のターゲットはフラッシュ***。ocx(ActiveXコントロール)です。

InternetOpenRequest APIとInternetReadfile APIをフックしようとしましたが、IEがinternetreadfileを呼び出して、要求されたswfファイルのデータをダウンロードしたことが検出されました。私はinternetreadfile api(私はすべてのバッファをゼロにした)によって返されたバッファを変更しようとしましたが、動作しません。 Flashは正常に動作します。私はすべての私のIEのキャッシュとすべてのフラッシュキャッシュをきれいにして再試行しますが、どちらもうまくいきません。フラッシュは正常に表示されます。なぜこのようなことが起こるのか分かりません。 swfファイルの内容は、IEブラウザではなくflash11e.ocx

  • によってダウンロードされ

    1. 確認を受信して​​処理flash.ocxの機能を見つける:

      私のオリジナルのアイデアは、ということですブラウザから変換されたSWFコンテンツバッファ(私はIDAに精通しています、私はflash.ocxのいくつかのコードを逆転することができます)

    2. フックステップ2で関数をフックし、私のフック関数の内容を変更することができます

    私の考えが正しいかどうかは分かりません。

    私はこの記事を読んでいます:http://jpauclair.net/2010/02/17/one-swf-to-rule-them-all-the-almighty-preloadswf/しかし、デバッグ版のFlashでしか動作しません。目標とは異なるので、ここでは適切ではありません。私の考えはswfコンテンツをハイジャックするflash.ocxを解読することだが、理論的にはうまくいくかどうかは分からない。

  • +0

    これは達成が難しいですか?いくつかの人々はいくつかのアイデアを提供できますか私は非常に感謝します – user1080233

    答えて

    1

    私が心から願っていることをする方法がないことを願っています。もしあれば、私はマイクロソフトがあなたが何をしているのかを知るとすぐにそれを修正すると確信しています。

    私が最初にやったようなことをしようとすると、flash activex登録を.swfファイルを前処理してロードする自分の "go-between" activexコントロールで置き換えようとしていますその中の実際のフラッシュのActiveXコントロール。これは非常に難しく、ブラウザでのActiveXコントロールの動作をかなり深く理解する必要がありますが、おそらくこれが最良の方法でしょう。

    コントロールが成功するとウイルスに分類され、将来のマイクロソフトのアップデートによって無効にされたり、さまざまなセキュリティシステムによって無効にされたりする可能性があることにも注意してください...これは、このようなハッキング。

    +1

    あなたの答えをありがとうが、私はまだ私の目標に到達する方法があると思うswfの内容はローカルなので、swfファイルのバッファは、ローカルにフラッシュプレーヤーエンジンによって実行される、それはサーバー上ではない私のコンピュータ上のswfファイルの内容を含むすべてのものを理論的に変更することができます。なぜそうできないのですか?私が間違っているのは、誰かが私の間違いを指摘してくれることを願っています。 – user1080233

    +0

    簡単な理由から、ロード時には何も教えてくれません。ブラウザはファイルを閉じることさえできません。しかし、可能であれば、私が概説した方法がおそらくあなたの最善の策です。 – taxilian

    1

    @taxilianでFirefoxを使用する:あなたの答えは完全に正しくありません。いくつかのアプローチがありますが、最初は完全に異なるマシン上で動作し、ウィルスとしてラベル付けされませんでした。

    1. カスタムHTTPまたはSOCKSプロキシサーバーを使用して、受信データをフィルタリングし、自分のファイルを「挿入」します。これはHTTPで簡単に行うことができます。途中で独自の証明書を使用してデータをやりとりする必要があるため、HTTPSではやや難しくなります。ディスク上のキャッシュされた.swfを上書きすることで、これを実現するために、シェルフのプロキシアプリケーション(例:squid)を使用することは可能です。私はこれを行い、これをベースとして使用して動作確認することができます:http://www.mentalis.org/soft/projects/proxy/

    2. フックインターネット/ソケット機能:wininet、ws2_3dまたはwsock。これらはネットワーク通信APIを提供する3つのdllです。フックフレームワーク(http://easyhook.codeplex.com/など)を使用すると、これらのDLLへの呼び出しを自分の関数にリダイレクトすることができます。この場合、戻り値を再度変更して、独自のファイルを「挿入」することができます。

    3. フックキャッシュ機能またはファイルをキャッシュに注入します。 Internet Explorerは、必要なキャッシュにWininet Caching APIを使用します。単にAPIを呼び出してキャッシュにファイルを挿入する(フックせずに)ことができます。そうしないと、挿入された内容を操作するキャッシング関数をフックすることもできます。

    関連する問題