パスワードを忘れた? アカウント作成
477332 journal

Ab.の日記: BkASPil hack?

日記 by Ab.
一つ前の日記で BkASPil が外にアクセスしに行くのがイヤだと書いていたのですが、家で router/firewall になってる FreeBSD サーバー上に適当に proxy を立ててそこでアクセス先をすげ替えることでなんとかしてみました。
proxy のプログラム自体は perl の HTTP::Proxy の使い方をぐぐっている内に出てきた Perlのデバッグ用ローカルプロキシーを概ねそのまま(勝手に)使わせて頂いています。
まずはアクセスしているデータを表示するフィルタを挟んで適当に conf を設定して、URI やら Cookie やらがどうなってるかチェック。

conf ファイルはこんな感じ。
YAML って触るの初めてですが、お手軽で悪くないですね。

server:
  host: localhost
  port: 8080
rewrite:
  '.*':
    '.*/': '/foo/bkaspilfake/'
    '/': 'http://localhost/'

挟んだ filter はとりあえず見て分かればいいのでこんなの。

$proxy->push_filter(
  request => HogeProxy::DumperProxy->new,
  response => HogeProxy::DumperProxy->new);

package HogeProxy::DumperProxy;
use strict;
use warnings;
use base qw( HTTP::Proxy::HeaderFilter );
use Data::Dumper;

sub init {
  my $self = shift;
}
sub filter {
  my ( $self, $headers, $message ) = @_;
  print Dumper($headers), "\n";
  print Dumper($message), "\n";
  print "\n";
}

そして出てくる dump を見てアクセス先を同定して、 http://ほげほげ/うにゃうにゃ/なんとか.html だったら、wget なりなんなりでファイルを拾ってきて /foo/bkaspilfake/なんとか.html に配置すれば出来上がり。
最後に internet に出て行けない方の jail に放り込んで daemontools で daemon 化して終了。

実は最初のアクセスのあといくつかデータファイルらしきものを拾いに行ってるんですが、そっちはコケても大丈夫なようなので放置です。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...