RefControl でスクリプトの実行結果で偽装するための改造方法

猫科研究所 さんのところより、Firefox アドオンの RefControl の改造ネタ。

このパッチをすることで、Refererスクリプトで処理した結果に偽装できるようになるので、デフォルトの偽装より高度なことができるようになる(イメピタ対応とか)。

まずはパッチ部分について。以下猫科さんのところの内容をほぼそのまま引用。

Firefox拡張機能のフォルダ(extensions)で{455D905A-D37C-4643-A9E2-F6FEFAA0424A}というフォルダを探します。この下のcomponents\refcontrolComp.jsを編集します。プロファイルフォルダのトップからいきなり refcontrolComp.jsを検索しても早いと思います。

performVariableInterpolation: function(oChannel, sRef)
{
    var vars = { '$': '$' };	// $$ is a literal $
    var arr = 

という箇所を探します。RefControlのバージョン0.8.10では18行目にあります。ここに

performVariableInterpolation: function(oChannel, sRef)
{
    if(sRef.match(/^script:(.+)/i)){
        return eval(RegExp.$1);
    }
    var vars = { '$': '$' };	// $$ is a literal $
    var arr = 

というように3行書き足し上書き保存します。この改造は、RefControlの設定画面から任意のJavaScriptRefererを設定できるようにしています。


続いて設定方法

  1. RefControl のオプションダイアログを開く
  2. サイトを追加を押す
  3. サイトには対象サイトのURL、動作はカスタムを選択
  4. カスタムの設定欄に script: を頭に付けた Referer を返す JavaScript コードを書く。
  5. OKボタンを押す

以下猫科さんのところの内容から引用

Site:欄にimepita.jpと書き、Action:はCustom:を選択します。そして右の欄には

script:oChannel.URI.spec.replace(/image\/(\d{8}\/\d{6})/i, "$1");

と書き、OKを押して戻ります。

参考というかネタ元というか元祖