「Titanium-Web-Proxy 2 (2023/11/22)」



さて、プロキシーソフト。
Titanium.Web.Proxy (以下 TWP)の解説です。



まず、このソフト。
TWPはインストールまでのハードルが相当高いと
言っておきます。



バイナリ、いわゆる「.exe」は
配布されていません。
ソースコードから自分でビルドする必要があります。
(この時点でもう相当高い)


と言うか、TWP自体はただのプロキシー。
  サーバー → TWP → ブラウザ
パケットをリレーするだけで、
それ自体には何の機能もついてないので
.exeを配布しても意味ありません。^^;


自分のやりたいことを、
TWPのソースコードに書き込んで


(一例)

ルールを作成する。全部 自分でやるのデス。




レッツスタート!

まずはGitHubページから
ソースコード.zipをダウンロードして、



解凍して、

VisualStudioで.sinを開いて、


「Titanium.Web.Proxy.Example.Wpf」をスタートアップに設定する。



あとは・・・頑張ってコンパイルしてください。^^;



このソフトはちょっと古い。
想定しているフレームワークは .NET Framework 4.5 (2012年8月ごろ)
  


2023年の最新 Net 7.0とはだいぶ違うので、
古いライブラリを取り寄せてなんとか
コンパイルを通す必要があります。




・・・
・・


さて、コンパイルは通せましたか?


(あくまで、私の環境での一例。改造しまくったのでソフトウェア名とかも変えてます。)


通せたら、いよいよ。
フィルタリング機能を
自分で作成しに入ります。



端的に言って、
TWPのソースコードのどこをいじればいいかと言うと、
重要なのは以下の二行。


A.

ここで 「プロキシーサーバーは、レスポンスの前にフックを入れる」 と宣言している。


B.

そしてこっちがフックの関数。

このSessionEventArgs eが、
Httpのヘッダー&ボディーを持っているので。

それらを
  var body = await e.GetResponseBodyAsString();
  body = 改変(body);
  e.SetResponseBodyString(body);

のように、eのボディーを取得して、改変して、入れ替える。

そうすれば改変されたコンテンツが
プロキシーから出てくるようになります。



次回に続く。

具体的な、一部のサイト用の
フィルター記述などを紹介します。