他人の空似自作物置場

jane_style_ad_block.zip/Readme.txt

プログラム名:Jnae Style ad block

用途:
Jane Styleの広告を表示しないようにします。

使い方:
・winmm.dllをJane2ch.exeと同じディレクトリにおきます。
・後は通常通りJane Styleを使うだけ。

ファイル解説:
winmm.dll               プログラム本体
Readme.txt              今読んでいるこれ
History.txt             更新履歴
jane_style_ad_block     ソースコードなど
jane_style_ad_block.sln ビルド用ソリューションファイル


免責事項:
これに同梱されたプログラムその他が原因で発生したいかなる損害も当方は一切関知しません。
また、全てのプログラムがウイルスではないという証明も、ウイルスに感染していないという証明もありません。
自己責任でお使いください。


Q&A:
  Q:Jane Style更新されても使えるの?
  A:通常の更新であれば問題なく使えるようにしたつもりですが
  公式でツール対策が入ると動かなくなるかもしれません。

  Q:RONINアカウントと両立できる?
  A:できません、そもそもRONINアカウントがあるなら公式で広告が消せるので
  導入する意味はないと思います。

  Q:RONINアカウントに設定した覚えのないアカウントが設定されてるんだけど
  A:処理の都合で入ってるだけです、別に送信されたりはしないのでご安心ください。

  Q:Jane Style起動がむっちゃ重くなるんだけど
  A:こちらではなくJane Style側の仕様です。
  RONINへのログインの前処理が重いようで、正規のRONINユーザーでも
  アカウント設定されていれば同じように重くなるようです。
  こちらで対応する気はないので、公式が修正してくれるのを待ちましょう。

  Q:その他バグをみつけた or 動作しない or 要望がある
  A:確認次第対応可能であれば対応します。
  公開しても問題が無いメールアドレスにて
  下部に記載されたアドレスまでメールをどうぞ。


メールアドレス:sweetie(あっと)click3.org


ライセンス:
・本ライセンスにおいて、全ての条項は「変更の有無を問わず、明示暗示を問わず、商業慈善を問わず、
	個人法人を問わず、保持使用を問わず、有料無料を問わず、全体一部を問わず、コピー派生を問わず
	実行ファイルソースファイルを問わず、故意錯誤を問わず」と装飾されている物として扱う。
・著作権者は本ソフトウェアに関する一切の保障義務をもたない。
・上記条項唯一の例外として、本ライセンスに違反した場合を除いて著作権者から
	本ソフトウェアに関する一切の法的措置を受ける事が無い事のみ保証される。
・著作権者やその他保持者がこのライセンスの範囲で行う活動に支障が無い範囲であれば何を行っても構わない。
・上記条項の”何を行っても構わない”には本ソフトウェアの製作者を偽っての再配布も含まれる。
・全ての権利の行使において、著作権者への連絡、著作権者やライセンス条項の記載、
	適用ライセンスなどの制限は一切存在しない。
著作権者名:sweetie


面倒な人向けライセンス解説:
作者やライセンスの記載義務すらありません。
再配布や改造など申告なし記述なしで好きにできます。


技術情報(と、どうでもいい話):
ImportAddressTableを経由したGetProcAddressの書き換えによりAPIの通信を乗っ取って動作している。
具体的には認証要求で成功が返ってきたかのように錯覚さえている。
成功レスポンスがよくわからなかったので、dat取得のAPIを参考に適当にでっち上げた内容を渡している。
また、アカウント情報が設定されていないとそもそも認証要求自体してくれないので
これまたImportAddressTableの書き換えてaccount.cfgがあるかのように錯覚させて以下省略。
300行近いという予想以上に大規模なコードになったが、機械語にパッチあてるタイプだと
Jane Style自体の更新ごとの維持が大変なので、これでよかったと思っている。
Jane Styleはdll動的リンクしたり静的リンクしたりと一貫性がない、互換性問題かなにかなのだろうか?
また、ネットワーク通信にも一貫性がなく、WinSock2とWinInetとWinHttpの三種を無意味に使い分けている。
2chAPIはWinHttpだったあたり、必要になった時に一番よさそうなものを新規に導入していってるのだろう。
最初はWinHttpのダミーdllを作って乗っ取ろうとしたのだが、WinHttpが動的リンクなうえ
account.cfgを参照するのがリンク前なので、しかたなく静的リンクのwinmm.dllにした。
動作検証中に気づいたのだが、初回起動時に2chAPI自体に失敗すると
2chの板一覧の取得方法がなくなるバグがある気がする、気のせいだったらいいのだが。
パスワードはCryptAPIを用いて暗号/複合をしていたようで
別の環境に持って行くと複合できずに動かない問題が発生していた。
適当にCryptAPIもフックして修正、でも手元の検証環境が多くないのでまだ動かないところもあるかも。