-
Version 20250530 Stable
released this
2025-05-30 15:18:08 +02:00 | 1 commits to master since this releasenotabugが不安定だったりリリースファイルのアップロードができなかったりで放置されているため、codebergへリポジトリを移行しました。notabug側ではリリースの発行はこれを最後に行いませんが、gitリポジトリ自体はアクティブなミラーとして残しておきます。gitのリモートリポジトリの参照先としてはどちらも同等なので、随時切り替えることができます。
-
libcurlでhttps接続を行う際に使われるTLSの最大バージョンを指定する
--tls-max
オプションを追加デフォルトのTLSバージョンだとCloudflareの規制に引っかかり、バージョンを下げたい場合に使います。
1.0
1.1
1.2
1.3
の4つのいずれかを指定できます。なお、3.0以降のOpenSSLではTLSv1.0や1.1の使用は禁止されているため、指定するとhttps通信ができなくなります。 -
libcurlが複数のTLSバックエンドに対応している場合に選択する
--tls-backend
オプションを追加無効な値を指定すると使用中のlibcurlで利用可能なバックエンド一覧が表示されます。
-
-a
オプションが指定されていない時に各種ログインやbbsmenu取得にcurlデフォルトのUser-Agentが使われないようにcurl/xxx
なUser-Agentが機械的に弾かれているようなので、とりあえず代わりにMozilla/5.0
を送るようにしました。 -
--api-usage
のデフォルト値をall
からread
に変更書き込みAPI関係のヘッダが存在するとbbs.cgiから拒否されるようになったことによる措置です。
5chへhttps接続する際の規制が強化されたため、Windows用バイナリで使用するcurlのTLSバックエンドを規制を受けにくいと思われるSchannelに戻しました。同梱されているlibcurl.dllはSchannelとOpenSSL (3.5LTS) の双方をサポートしているため、必要に応じて
--tls-backend
オプションで切り替えることができます。--tls-backend openssl
でOpenSSLが、--tls-backend schannel
でSchannelが選択されます。なお、Windows7未満の古いWindowsでは互換性を考慮してデフォルトでOpenSSLが選択されるようになっています。Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
proxy2ch-20250530.zip
3 downloads · 4.4 MiB
-
proxy2ch-termux-aarch64-20250530.deb
0 downloads · 155 KiB
-
-
Version 20250527 snapshot Pre-release
released this
2025-05-27 16:10:12 +02:00 | 6 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリのみを置いておきます。
5chにおいてCloudflareのbot判定(?)が厳しく行われるようになり、一部環境で影響が出ています。User-Agent等リクエストヘッダで判定される場合と、https接続のセッション状態から判定される場合があり、後者は接続に使われるTLSプロトコルスタックの実装によって発動する条件が異なるようです。
バージョン20250503のWindows用バイナリに使われているOpenSSL 3.0.16の場合、TLSv1.2を使うと問題は起きませんが、TLSv1.3を使うと最初のリクエストに対しては必ず403が返ってきて、keep-alive状態の同じセッションで再度リクエストを送ると正常なレスポンスが返ってくるという正直意味不明な挙動をしています。TLSv1.3で問題ない実装 (OpenSSL 3.5等) もあればTLSv1.2でもダメなものもあるようで、単純にTLSのバージョンや暗号スイートで判定しているわけではなくclient hello等のセッション情報から総合的な判定を行っているように見えます (TLS fingerprintingと言うらしい)。
このような背景からproxy2chに
--tls-max
オプションを追加し、https接続時に使用されるTLSのバージョンを選択可能にしました。このWindows用バイナリではOpenSSL 3.0.16が使われる都合上、デフォルトが--tls-max 1.2
相当になっています。1.0や1.1も指定可能ですが、5chは1.2未満のTLS接続を受け入れないようです。Downloads
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
2 downloads
-
proxy2ch-win32-snapshot-20250527.zip
14 downloads · 2.7 MiB
-
Source code (ZIP)
-
Version 20250503 Stable
released this
2025-05-03 06:43:32 +02:00 | 12 commits to master since this release前回の正式リリース版 (20230713) からの主な更新点は以下の通りです。
-
--direct-dat
の動作をデフォルトに既に
--direct-dat
で使っていた場合やAPIを使っていた場合は問題ありませんが、そうでない場合は現行のスレッドに対して差分取得を行うと不整合が生じて全体の再取得が必要になる可能性が高いです。--no-direct-dat
オプションで引き続きread.cgi経由でのログ取得を行うことも可能です。 -
5chの最新の仕様への追従
新しい投稿確認画面、過去ログサーバ (kako.5ch.net) 上のログ取得、read.cgiが出力するhtmlの変更等に対応しています。過去ログサーバ上のログ取得には
-s
オプションが必要です。 -
5ch投稿時に必要なクッキーの管理を代行する
--manage-bbscgi-cookies
オプションを追加主にAPIに対応したまま更新が行われていない専ブラは5chへの書き込みに際してcookieを無視するものが多く、書き込みに支障があることが多いため、このオプションを有効にするとproxy2chが書き込み時に送受信されるクッキーの管理を代行します。このオプションを有効にすると、クッキーの閲覧/削除や各種アカウントでログインが可能なwebインターフェイスが利用できます。詳細はREADMEを参照してください。
-
bbsmenuの生成機能を追加
proxy2chがmenu.5ch.netの代わりにいくつかの条件のもとでbbsmenuを生成します。詳細はREADMEを参照してください。
-
Talk掲示板に対応
Talkが2ch互換の掲示板としてアクセス可能になります。書き込みと本物のdatの取得にはAPIキーが必要です。APIを使わない場合は公開されているjsonからdatを生成する動作になり、書き込みはできません。
このリリースから、Windwos用のバイナリはMITM有効版のみを配布します。これに伴いlibcurlに加えてlibsslとlibcryptoのDLLが起動に必須になります。また、libcurlのTLS用ライブラリの依存先をSchannel (Windows内蔵のTLS/SSLプロトコルスタック) ではなくOpenSSL (バージョン3.0.16) に変更しています。そのため、libcurl自体もlibsslとlibcryptoのDLLに依存します。これはWindows XPでの動作改善のため (XPのSchannel実装は現在のWeb環境でのhttps接続には使い物にならない故) です。従来通りOpenSSLに依存しないlibcurlを使いたい場合は、Schannelフォルダにdllを同梱してあるので差し替えてください。
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
proxy2ch-20250503.zip
2 downloads · 4.3 MiB
-
proxy2ch-termux-aarch64-20250503.deb
2 downloads · 155 KiB
-
-
Version 20250429 snapshot Pre-release
released this
2025-04-29 05:10:36 +02:00 | 21 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリとmacOS向けバイナリのみを置いておきます。
--direct-dat
の動作をデフォルトとし、オプションの指定は不要に- 従来のようにread.cgiもしくはAPI経由でdatを取得したい場合は代わりに
--no-direct-dat
オプションを指定してください。
- 従来のようにread.cgiもしくはAPI経由でdatを取得したい場合は代わりに
- 無効な
MonaTicket
が送られた場合のサーバからのエラー応答がE3000
からE3100
に変化したのに対応 -s
オプションで接続先がhttpからhttpsに変化した場合、bbs.cgiに渡されるリファラもhttpからhttpsに自動で書き換えるように--manage-bbscgi-cookies
が指定されている場合に利用可能なcookie管理用のwebインターフェイスを実装- webブラウザから
http://localhost:9080/5ch/cookies
でアクセスできます。proxy2chの管理下にあるcookieの閲覧と削除が可能です。
- webブラウザから
--manage-bbscgi-cookies
が指定されている場合に利用可能などんぐり/be/UPLIFTアカウントのログイン用のwebインターフェイスを実装- webブラウザから
http://localhost:9080/5ch/accounts
でアクセスできます。 - ログイン/ログアウトをスクリプト等で自動化したい場合、
http://localhost:9080/5ch/accounts
に対して以下のパラメータをapplication/x-www-form-urlencoded
形式でPOSTしてください。service
:donguri
,be
,uplift
のいずれかaction
:login
,logout
のいずれかmail
: メールアドレス (action
がlogout
の場合は不要)pass
: パスワード (action
がlogout
の場合は不要)
- curlでログインする場合は例えば
curl -d "service=donguri" -d "action=login" --data-urlencode "mail=foo@example.com" --data-urlencode "pass=my-secret-password" http://localhost:9080/5ch/accounts
とします。 - 一度ログインすると約12時間後を目安に再ログインします。
- UPLIFTはアカウントがなくテストのしようがないので動くか不明です。
- webブラウザから
webインターフェイスのアドレス
localhost:9080
のポート番号の部分はデフォルトの9080番で待ち受けている場合の話です。-p
で変更している場合は適宜読み替えてください。なお、-g
を付けて外部からの接続を受け付けている場合でもlocalhost
以外からのアクセスは不可です。no space left on deviceと言われてアップロードが不可なので一時的にバイナリを別の場所に置きます。
ビルド環境を変えてからWinXPでテストしていなかったのですがXPで動くかもしれないビルドも試験的に置いておきます。
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Version 20250404 snapshot Pre-release
released this
2025-04-04 16:17:31 +02:00 | 39 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリとmacOS向けバイナリのみを置いておきます。
- 投稿時のタイムスタンプを現在時刻の10秒前に設定する
--bbscgi-fix-timestamp
オプションを追加 - luaスクリプトでリクエストボディの
time
を弄ると投稿確認に失敗する可能性がある問題を修正
(主に新仕様の投稿確認画面に対するリクエストで?) リクエストボディの
time
フィールドが現在時刻から大きくずれていると「投稿時刻がおかしい」エラーが出るようになったようなので、その対処です。Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- 投稿時のタイムスタンプを現在時刻の10秒前に設定する
-
Version 20250403 snapshot Pre-release
released this
2025-04-03 12:47:27 +02:00 | 41 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリとmacOS向けバイナリのみを置いておきます。
20250401 snapshotは
--skip-bbscgi-confirmation
を指定した際に誤ったContent-Length
ヘッダを付与してしまうことがあるため、更新を推奨します。このバージョンではオプションなしで新しい投稿確認処理に対応するようになっています。新しい
--bbscgi-confirmation
オプションで挙動を制御することもできます。-
--bbscgi-confirmation auto
- ブラウザには投稿確認画面が表示されますが、proxy2chがリクエストに介入して正しいフォームを送るように修正を行います。デフォルトであり、オプションを指定しない場合はこの動作になります
-
--bbscgi-confirmation skip
- ブラウザには投稿確認画面は表示されなくなり、proxy2chが確認処理を代行します。
--skip-bbscgi-confirmation
と同じ動作です。auto
でうまくいかない場合はこちらを使ってください。
- ブラウザには投稿確認画面は表示されなくなり、proxy2chが確認処理を代行します。
-
--bbscgi-confirmation none
- proxy2chは投稿確認処理には介入しません。
--skip-bbscgi-confirmation
は--bbscgi-confirmation skip
のエイリアスです。Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
-
Version 20250401 snapshot Pre-release
released this
2025-03-31 14:18:14 +02:00 | 45 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリとmacOS向けバイナリのみを置いておきます。
-
5ch/bbspinkへの投稿に関係するcookieをproxy2ch側で処理する
--manage-bbscgi-cookies
オプションを追加- これは20240613 snapshotの時点で追加されていた機能ですが、一応ここで説明しておきます。
- 主にAPIに対応したまま更新が行われていない専ブラは5chへの書き込みに際してcookieを無視するものが多く、書き込みに支障があることが多いため、このオプションを有効にするとproxy2chが書き込み時に送受信されるcookieの管理を代行します。
- 有効時は専ブラ側に
Set-Cookie
ヘッダは透過的に送られますが、専ブラ側からのCookie
ヘッダはBeやUplift関係のものを除いて無視されます。 --keystore
オプションで指定したファイルがcookieの永続的な保管庫として利用されます (APIのMonaKey用のものと共用)。指定しなかった場合はproxy2chを終了した時点で全てのcookieは破棄されます。- curlのcookie engineを利用しているためlibcurlが7.77.0未満の場合は利用できません。
-
5ch.netの新しい投稿確認処理をproxy2ch側で代行する
--skip-bbscgi-confirmation
オプションを追加- 仕様変更により、投稿確認画面のフォームを正しく送信しないと必要なcookieを貰えなくなったため、一部板で確認画面が無限ループする場合はこのオプションを有効にすると解決する可能性が高いです。
- やや行儀が悪いですこのオプションを有効にした場合は (新仕様の) 投稿確認画面は表示されなくなります。
- このオプション有効時はproxy2chがレスポンスボディを解析する必要がある関係上、クライアントから送られてきた、あるいはオプションやluaスクリプトで上書きした
Accept-Encoding
ヘッダの値は無視されます。
-
--direct-dat
有効時に過去ログサーバ上で公開されているスレッドを取得するように- 一部の旧サーバの過去ログが
kako.5ch.net
というサーバ上で公開されるようになりましたが、依然としてread.cgi経由でhtml版が表示できるのみで生datは公開されていないようです。--direct-dat
オプションが有効な時でも過去ログサーバ上にログが見つかった場合はread.cgi経由でログを取得するようにしました。
- 一部の旧サーバの過去ログが
-
read.cgiの出力が変更されhtmlからの変換に失敗するようになっていた問題を修正
- まだread.cgiモードを使っている人は
--direct-dat
に移行しましょう。
- まだread.cgiモードを使っている人は
-
書き込み時に「Cookieの内容が壊れている」旨のエラーが出た場合、専ブラ側に
Set-Cookie
ヘッダを送ってMonaTicket
cookieの無効化を促すように- 実際に無効化が行われるかは専ブラがcookieの有効期限を正しく処理しているかによります。
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
-
Version 20240709 snapshot Pre-release
released this
2024-07-09 11:09:34 +02:00 | 54 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリとmacOS向けバイナリのみを置いておきます。
read.cgiへのリクエストがデフォルトでitest.5ch.netにリダイレクトされるようになったため、
5chClassic=on
というcookieを送りリダイレクトを防ぐようにしました。--direct-dat
で使用していた場合は特に影響はありません。この回避策がいつまで有効なのかは不明ですが、すみやかに (ライブなスレッドはdat再取得になることを受け入れて) read.cgiを利用しない
--direct-dat
に移行することをおすすめします。proxy2chのデフォルト動作は近いうちに--direct-dat
相当になる予定です。itest.5ch.netのjsonからdatを生成するコードも一応入っており、read.cgiが完全に停止された場合はこちらにフォールバックさせる予定ではありますが、名前欄のタグが欠落するという問題があるためread.cgiの代わりとしては欠陥品です。
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
Version 20240613 snapshot Pre-release
released this
2024-06-13 12:37:54 +02:00 | 56 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリとmacOS向けバイナリのみを置いておきます。
主にread.cgiの出力が (5chのみ) 変わったためread.cgiモードが動作しなくなった問題への対応です。
--direct-dat
で使用していた場合は特に影響はありません。どんぐりシステム絡みでcookie関係の新しいオプションが追加されていますが、詳細はコミットログを追ってください。
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
Version 20231006 snapshot Pre-release
released this
2023-10-05 13:49:34 +02:00 | 74 commits to master since this releaseこれは正式リリースではありません。スナップショットとしてwin32向けのMITM有効バイナリのみを置いておきます。
--subject-to-lastmodify
オプションはsubject.txt
へのリクエストを受け取った時にlastmodify.txt
のダウンロードを行い、subject.txt
相当のデータを生成してクライアントに返すという動作をします。ただしlastmodify.txt
の内容は順序がデタラメであり、proxy2ch側で生成時に一律更新順にソートしているため、age/sageの区別なしに書き込みがあったスレが上に来る、という感じになります。内部はいろいろ変わっています。talkの読み書きやtalkのみ対応ブラウザから5chを読み書きする機能等、興味がある場合はコミットログを追いかけてください。
2023/10/11付でcurl 8.4.0がリリースされており、7.69.0以降のバージョンにおいてSOCKS5 proxyを利用する際の深刻な脆弱性の修正が報告されているのでlibcurlの更新を推奨します。具体的にはproxy2chを
--proxy socks5h://...
なオプション付きで起動し、socks5 proxy側に名前解決を委ねている場合はおそらく脆弱性の影響を受けると思われます。proxy2chのパッケージに同梱されているlibcurl.dllの置き換え向けにWin32向けのdllはここに置いておきます。Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)