テンプレート機能について

目的

  • 5ch運営が書き込みする時に次の違いを細かく確認するようになりました
    Detourで出力する書き込みヘッダ/データ
    User-Agent: で想定される本来のヘッダ/データ
  • User-Agent: で想定される書き込みヘッダ/データをテンプレートとして用意することでERRORを回避できるようにします

とりあえず使いたい

  • Detour-通信-書き込み関連の設定をする-テンプレートタブのテキスト入力欄にテンプレートファイルを開き内容をコピペします
template001.jpgテンプレートファイル
filebbstemplate.janestyle.txt 229,119,196 download
filebbstemplate.chmate.txt 203,38,72,114 download
filebbstemplate.chrome.txt 104,39,67,117 download
filebbstemplate.msedge.txt 56,16,41,46 download
filebbstemplate.firefox.txt 110,22,41,90 download






















  • 最後は改行しないでください

テンプレートの作り方

条件

偽装したい任意専ブラ/一般ブラウザで

  • 単体で書き込めること=書き込みしたいBBS板で規制されていないこと
  • Proxy設定がありDetour経由できること

  • 書き込みが SSL https:// を使用している場合はDetourでSSL参照できる準備ができていること
  • Detour 4.3.3.89以上

手順

  • これで偽装したい任意専ブラ/一般ブラウザの書き込み出力=リクエストデータをエディタで参照できます
  • 書き込むとエディタが表示されるので内容を別のどこかにコピペして保存しておきます
  • エディタ内容を全削除して0バイトでファイル保存して閉じると書き込み自体をキャンセルできます
  • 必要なら任意ブラウザのProxy設定からDetourを削除します

テンプレートに変換

  • 添付テンプレートサンプルファイル内容を参照するとわかりやすいと思います
  • 1行目は<?REQUEST=?>(改行)に置き換えます
  • 2行目以降は必要なもののみ置換していきます
  • 「Headername:」と「<?Headername:?>」の間に半角空白入れないようにします

  • ヘッダで置換推奨するもの = 呼び出し元の専ブラリクエストデータで置換するもの
    • Referer:
       Referer:<?Referer:?>(改行)
        専ブラ系UAの場合
       Referer: <?REFERERSCHEME=?><?FQDN=?>/test/read.cgi/<?BBS=?>/<?KEY=?>/l50(改行)
        一般ブラウザ系UAの場合
      • この場合は「Referer:」と「<?REFERERSCHEME=?>」の間に半角空白を入れます
      • 現時点で一般ブラウザ系UAでReferer: がl50で終わらないとERRORになるようです
        参照 ERRORに対する対応手順
  • Content-Length:
    Content-Length:<?Content-Length:?>(改行)
  • Host:
    Host:<?Host:?>(改行)
  • Connection:
    Connection:<?Connection:?>(改行)
    専ブラによってはこちらにします
    Connection: close(改行)
  • Cookie:
    Cookie:<?Cookie:?>(改行)
  • ヘッダで固定値のままを推奨するもの = <?Headername:?>使用せず上書きするもの
  • User-Agent:
    User-Agent: 固定値(改行)
  • X-2ch-UA:
    X-2ch-UA: 固定値(改行)
  • Content-Type:
    Content-Type: application/x-www-form-urlencoded(改行)
  •  ボディがJSONの場合はContent-Type: を適宜変更します
  • ボディ
    • ヘッダ部終わりの空改行の次から始まります
    • 文末に改行入れないでください
    • スレ立て時に使用する「subject=<?subject=?>」は通常書き込み時=非スレ立て時は無視され追加されません

    • 専ブラ系UAの場合
      subject=<?subject=?>&FROM=<?FROM=?>&time=<?time=?>&MESSAGE=<?MESSAGE=?>&key=<?key=?>&bbs=<?bbs=?>&mail=<?mail=?>&submit=<?submit=?>
  • ブラウザ系UAの場合
    subject=<?subject=?>&FROM=<?FROM=?>&mail=<?mail=?>&MESSAGE=<?MESSAGE=?>&bbs=<?bbs=?>&key=<?key=?>&time=<?time=?>&submit=<?submit=?>&oekaki_thread1=
  • 現時点でブラウザ系UAはお絵描きしなくても最後に「&oekaki_thread1=」が追加されています
  • この順番をみている規制もあるようですが未確認です

テンプレート適用して書き込み

  • 外部アプリで書き込みデータを確認変更するにチェックします
  • とりあえず使いたい場合のとおりに設定して書き込みます
  • 専ブラから書き込むとエディタが表示されるので今度はテンプレート内容が反映されているか確認します
  • リクエスト内容を別のどこかにコピペして保存します
  • 書き込み続行したい場合はそのままエディタを閉じます
  • ERRORが出た場合はコピペした内容をもとにどこが原因か検索などしてなんとか対応します
  • 書き込みできた場合は外部アプリで書き込みデータを確認変更するのチェックをはずして設定を保存します

テンプレート詳細説明

  • 固定変数
    リクエストヘッダとボディに定義されている内容を取得した変数の集合でテンプレートで使用します
    .<?固定変数名=?>部分を固定変数値で置換します
  • REQUEST
    リクエスト行1行全部 例 POST /test/bbs.cgi HTTP/1.1
  • CMD
    リクエスト行のコマンド 例 POST
  • PATH
    リクエスト行のパス 例 /test/bbs.cgi
  • HTTPVER
    クエスト行のHTTPバージョン 例 HTTP/1.1
  • FQDN
    HOST: 値から半角空白除去 例 egg.5ch.net
  • SERVER
    FQDNのホスト名 例 egg
  • APIKEY
    DAT関連のAPIKey設定内容 例 abCDEFghijklmnOPqRstuVWXYz1234
    X-APIKey: で使用
  • HMKEY
    DAT関連のHMKey設定内容 例 ZXCvBNMaSdfGhJ1klq2Wert3yUiop4
    X-PostSig: ハッシュ値作成に使用
  • MONAKEY
    書き込み識別子
    X-MonaKey: で使用
    X-PostSig: ハッシュ値作成に使用
    例 初回 00000000-0000-0000-0000-000000000000
    例 書き込み確認画面で付与 123456789abcdef123456789abcdef123456789abcdef123456789abcdef1234
  • MSEC
    ミリ秒
    値は000-999のランダム
    X-PostNonce: で使用	例 632
    X-PostSig: ハッシュ値作成に使用
  • URLDEC+
    出力値のURLデコードを有効にする
    X-PostSig: ハッシュ値作成に使用
  • URLDEC-
    出力値のURLデコードを無効にする
    X-PostSig: ハッシュ値作成に使用
  • TRIM+
    出力値の前後空白除去を有効にする
    X-PostSig: ハッシュ値作成に使用
  • TRIM-
    出力値の前後空白除去を無効にする
    X-PostSig: ハッシュ値作成に使用
  • REFERERSCHEME
    Referer:行のスキーム 例 https://
  • REFERERFIT
    ERROR: 投稿時の認証用クエリがありません が出ないReferer: 値にします
  • BODY
    ボディ部全部
  • BODYHTMLFORM
    スレッド作成/レス書き込みのHTMLフォームを取得してボディ部に展開
    これ以外のテンプレートのボディ部内容は無視される
  • BODYHTMLFORMSUBJECT
    スレッド作成のみHTMLフォームを取得してボディ部に展開
    これ以外のテンプレートのボディ部内容は無視される
    レス書き込み時はテンプレートのボディ部内容が使用される

  • ヘッダ変数
     リクエストヘッダに定義されている内容を取得した変数の集合でテンプレートで使用します
     <?ヘッダ変数名:?>部分をヘッダ変数値で置換します
     :の次から改行までが内容になるので先頭は半角空白付きです
    例
    「Connection: keep-alive(改行)」なら
    「<?Connection:?>」は「 keep-alive」(半角空白付き)で置換されます

    • X-PostSig:
      API書込が正しいものか判定するためのハッシュ値
      特定順番の書式文字列をHMkeyを使用計算して設定します
      <>があれば書式文字列とみなしてX-PostSig:ハッシュを作成置換します
      書式
      HMKEY<>BBS<>KEY<>TIME<>FROM<>mail<>MESSAGE<>SUBJECT<>User-Agent<><>TIME.milisec
      例
      X-PostSig: 1234567890abcdef123457890abcdef1234567890abcdef1234567890abcdef1
    • X-APIKey:
      書き込みAPIKey
      例
      X-APIKey: abCDEFghijklmnOPqRstuVWXYz1234
    • X-PostNonce:
      X-PostSig: ハッシュ値作成用途ランダム値
      書式
      UNIXTIME.milisec
      例
      X-PostNonce: 1234567890.123
    • X-MonaKey:
      書き込み識別子
      X-PostSig: ハッシュ値作成に使用
      例
      X-MonaKey: 00000000-0000-0000-0000-000000000000 初回
      X-MonaKey: 123456789abcdef123456789abcdef123456789abcdef123456789abcdef1234 書き込み確認画面で付与 
  • ボディ変数
     リクエストボディに定義されている内容を取得した変数の集合でテンプレートで使用します
     <?ボディ変数名=?>部分をヘッダ変数値で置換します
     値がなくてもテンプレート定義を優先し追加します
     スレ立てボディ変数については値がなければ(スレ立て書き込みでなければ)「subject=<?subject=?>」全体を削除して追加しません

パラメータ機能について

目的

  • テンプレートで表現できないヘッダ行/ヘッダ値/パラメータ名/パラメータ値を追加削除上書きしたい場合に設定します

パラメータの作り方

  • 通信-書き込み関連の設定をする-パラメータタブで設定します
template002.jpg

パラメータ詳細説明

  • ヘッダ部 先頭から始まります
    • ヘッダ名:
      ヘッダ名: [値[;パラメータ名=[パラメータ値]]](改行)   指定内容で上書きします
    • +ヘッダ名:
      +ヘッダ名: [値[;パラメータ名=[パラメータ値]]](改行)   指定内容を追加します
    • -ヘッダ名:
      -ヘッダ名: [値[;パラメータ名=[パラメータ値]]](改行)  指定内容を削除します
    • +Accept: application/xml;q=0.9(改行)
        Accept:のapplication/xmlがあればそこになければ文末に追加します
      -Accept: application/xml;q=0.8(改行)
        Accept:のapplication/xmlにq=0.8という定義があれば削除します
        q=0.8という定義がなければなにもしません
      -Accept: application/xml;q=(改行)
        Accept:のapplication/xmlにq=値という定義があれば削除します
        q=すらなければなにもしません
  • ボディ部
    • ヘッダ部終わりの空改行の次から始まります
    • パラメータのボディ部では1行ごと改行して設定していきます
    • +ボディ名
      +ボディ名=内容(改行)    指定内容を追加します
    • -ボディ名
      -ボディ名=内容(改行)   指定内容を削除します
    • +yuki=akari&feature=confirmed(改行)
        ボディにyuki=akari&feature=confirmedを追加します
      -oekaki_thread1=(改行)
        ボディにoekaki_thread1=があれば値が定義されていても削除します

ファイルリスト機能について

  • BBS板ごとにERROR規制の書き込めるブラウザが違う!ってことがあります
  • いちいちテンプレート/パラメータを書き換えるのは手間になります

  • テンプレート/パラメータにはBBS名<>外部テキストファイルパスのリストを設定できます
  • 自動でBBS板ごとにテンプレート/パラメータを切り替えることが可能です
template003.jpg

書式

BBS板名<>テンプレート/パラメータ内容が書かれているテキストファイルフルパス
  • 複数リストがある場合は上から順番に評価していきBBS板名と合致したテンプレート/パラメータファイル内容で置換します
  • BBS板名がない「<>テキストパス」が出てきた時点でBBS判定をやめそのテンプレート/パラメータを適用します
  • 1行目に「<>」がなければ普通のテンプレート/パラメータ内容とみなされます
  • ファイルリストに合致するものがない場合内容がクリアされテンプレート/パラメータは指定されなかったことにして書き込みを続行します
  • 例1
    テンプレートタブテキスト入力の内容
    software<>D:\bbstemplate.edge.txt(改行)
    <>D:\bbstemplate.firefox.txt(改行)
    • ソフトウェア板softwareに書き込む場合
      D:\bbstemplate.edge.txt内容で置換されます
    • 地震板eqに書き込む場合
      D:\bbstemplate.firefox.txt内容で置換されます
  • 例2
    テンプレートタブテキスト入力の内容
    software<>D:\bbstemplate.edge.txt(改行)
    eq<>D:\bbstemplate.firefox.txt(改行)
    • 運営情報臨時板operatexに書き込む場合
      内容がクリアされテンプレート/パラメータは使用されません

外部アプリで書き込みデータを確認変更するチェックボックスについて

テンプレート作成する際の元のテキストを取得できます
また書き込みERROR時の原因調査に利用できます

設定

通信-書き込み関連の設定をする-テンプレートタブ/パラメータタブ

  • テンプレート置換を許可するをチェックしない かつ パラメータ置換を許可するをチェックしない 場合
    template004.jpg
  • エディタが表示されDetourで置換する前の任意ブラウザ出力を取得/参照できます
  • テンプレートの材料取得に利用できます
  • テンプレート置換を許可するをチェックする または パラメータ置換を許可するをチェックする 場合
    template005.jpg
  • エディタが表示されテンプレート/パラメータを適用した書き込みデータを取得/参照できます
  • 書き込みERROR時の原因調査に利用できます

  • 内容を書き換え保存した場合その内容で書き込みを行います
  • ERROR起きる起きない原因を突き詰めたいときなどに利用できます
OSや外部アプリによってはDetour側で待機できずそのまま書き込み処理を実行してしまう場合がありますが仕様となります
システムの関連付けなどで他のアプリに変更するなどして対応ください

添付ファイル: filetemplate005.jpg 18 download [詳細] filetemplate004.jpg 13 download [詳細] filetemplate003.jpg 17 download [詳細] filetemplate002.jpg 26 download [詳細] filetemplate001.jpg 93 download [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022.04.11