【解析】bakusoku.aufは謎の通信をしている?
AviUtlを高速化させることで多くの人に使用されている爆速プラグイン。
しかしリリース当初からいろいろとバグやら言われてますが、
今回はその中の一個である「謎通信」を調査することにしました。
bakusoku.aufとは
sm39679253 で配布されている、AviUtlの動作を高速化させるフィルタ系プラグイン。
Githubで配布されているものの、何故かオープンソースではない。どうして?
MIT License。改変,再配布,商用利用,私的利用OK、保証なし、自己責任。
謎通信
bakusoku.aufは起動時に毎回通信を行っています。
AviUtlプラグインの中でそういう通信をするのは数が少ないらしく、
しかもオープンソースじゃないから何やってるかわからんという。
何か仕込まれてるかもしれないから怪しいよね、怖いよね。っていう話です。
とりあえず結論から言っちゃいましょう、やり方はおかしいけどアップデートチェックでした。
ここから先はどこがおかしいのか、どうやってこの結論に至ったのかとか話していきます。
とりあえずパケット監視してみよう
サメ使います。Wiresharkです。
監視開始してbakusoku.aufを導入したAviUtlを起動します。
なんかやけに多くない??
github.comと通信していることがわかりましたが、アップデートチェックの割にパケットが多いです。
なんとびっくり178パケット送受信。阿部寛(60回)より多い。
api使えば20回位で済むのに、なぜここまでパケットをやり取りしているのでしょう?
バイナリエディタで見てみよう
ということで、具体的にどこに通信しているのかわかるようにするためにdllをバイナリエディタで見ることにしました。
最初はVSCodeの拡張機能(Hex Editor)でやってたけど、途中から文字コードを変更できるBzに変えました。
あっさり発見。TalkEditoUtilPluginとかいう新プラグインが生まれているのは置いておいて、
とりあえずこれをいじってみます。
このサイトにhttpで飛ばしてみました。
httpsじゃなくてhttpにした理由は、httpsだと通信が暗号化されてWiresharkからどこに繋いだか確認できないためです。
これで存在するサーバーにGETを送ってもらうことで、
githubのどこのアドレスに通信を飛ばそうとしたのか見てやろうという魂胆。
解散!!!!
bakusoku.aufは、裏でgithub.com/suzune25254649/bakusoku_aviutl_pluginにアクセスして、
リリースの部分を読み取っていました。なので、そんなまずいことはやってないです。
ちなみに、~1.02までにはこれらは入っていなかったので、
バージョンチェック機能が追加された1.03からということになります。
しかし、api.github.comから認証不要でリリース情報を見れるのに、
なぜこんな面倒なことをやっているのかはわかりません。AviUtlだと難しいとかあるんですかね?
残念ながら自分はプラグインもスクリプトもなんにも作ったことないので、詳しい人見てたら教えてください。
このプラグイン、遊べるぞ!!
てことでちょっと遊びます。
その下にどこのリポジトリにアクセスするかが書いてたので、自分のリポジトリに書き換えてみました。
ユーザー名が長かったおかげでcastella-cakeが余裕で入りました、ありがとう"25254649″!!
あとメッセージも書き換えました。改変OKなMIT Licenseありがとう!!!!!!
下のrapidfire-gunpackにはもともとaviutl_bakusoku_pluginって書いてありました。
リポジトリ名が長かったおかげでこっちも余裕で入ったよ!!!!!
ちなみにこの時リリースがdev-1.0みたいな書き方してたせいなのかアップデートがあります画面は出ませんでした!
でもフォーマットが違うよ画面のほうが長いから改変しやすいな!!
あと一回メッセージ改変の時にやらかしてbakusoku一個壊しました!!何もしてないのに!!!!!!
…ってことで十分遊んだので、ここまでのまとめに入りましょう。
まとめると
- bakusoku.aufは起動時に175~178パケットほどgithub.comでやり取りをしていた
- それが追加されたのは1.03のバージョンチェック機能が入った頃
- 接続先はbakusokuのリポジトリページで、おそらく裏でアクセスしてリリースの部分がどうなってるか読み取ってる
- Githubには認証不要でリポジトリ情報やリリース情報をjsonで取れるAPIがあるのに、なぜこのような手段を取っているのかは不明
- 自分のリポジトリに接続させたりして遊べる!!!!!!!
ここまでやったわけですけど、結局自分は使わないんですよね。
さらに速度が早く、コンテンツツリーに縛られない、多数のバグ修正を含むpatch.aulがあるから。
patch.aul を使おう
ここまでだらだらと書き込んできましたが、結果がどうであれ上位互換のプラグインに乗り換えるべきです。
爆速より高速で、OSS(LGPLv3)で、コンテンツツリーに縛られない、
拡張編集のバグ修正や機能追加を含むpatch.aulがあります。 https://scrapbox.io/ePi5131/patch.aul
bakusoku,Boostと競合するため、使っている場合は抜く必要があります。
もしBoostを使用していた場合、一部のフィルターなどはBoostの方が早い場合もあります。
が、高速化以外にも拡張編集のバグ修正,やり直しなどの様々な機能を持っているpatch.aulを使うべきでしょう。
もしこのことについて詳細に知りたい場合は、以下の3つを参照してください。ここに全部書くと長くなるので。
https://scrapbox.io/ePi5131/AviUtlのプラグイン:boostとpatchの比較_へのお気持ち
┗https://www.nicovideo.jp/watch/sm40575269
https://scrapbox.io/ePi5131/Boostが高速化するフィルタ効果
作者の性格がよろしくないから使わないってのをたまに見ますが、
作者の性格が実際にプラグインを使用する際に悪く出てるわけじゃないんで自分は別にいいと思います。
実際の動作とかその規約とかに作者の性格が出てるとかだったら使いませんけど。
ってことで今回のお話は以上です、最後まで読んでいただきありがとうございました!
ではでは~~~~~
Credit
元プラグイン
- https://www.nicovideo.jp/watch/sm39679253
– https://github.com/suzune25254649/bakusoku_aviutl_plugin
解析と改変 - https://scrapbox.io/ePi5131/patch.aul
– https://github.com/ePi5131/patch.aul
きっかけ
プラグインの解析
- https://www.wireshark.org/
通信の解析 - https://forest.watch.impress.co.jp/library/software/binaryeditbz/
バイナリ改変
ディスカッション
コメント一覧
まだ、コメントがありません