ES ファイルエクスプローラーのBaiduへの通信を遮断する(追記:QuickPicも...

前回の記事で、ES ファイルエクスプローラーがBaiduへ向けて何らかの通信をしていいることが分かった。
通常なら即座に使用を停止するべきだが、ESの使い勝手は捨てがたい。そんなことを書いていると叱られそうだが、便利なものは便利だ。
そこで、何とかBaiduへの送信を阻止する方法を考えてみた。

■我らがAdblock Plus

Adblock Plus for android(以下ABP)については、以前に広告ブロックアプリの記事で少し触れたことがある。
この記事内では色々とABPへの不満点を書いているが、実は未だに現役バリバリ。
なぜなら、ABPはブラウザ内(Webページの広告)のみならず、端末が行う通信全てをフィルターしてくれるからだ。

アプリが行う通信、つまりアプリ内広告についてもフィルターできるのだ。これは非常に強力で、他にない魅力。
(ただし、非root環境ではWi-Fi経由の通信のみ対応。モバイルデータ通信のフィルタは要root)

今回はこのメリット活用し、端末が行うBaiduへのデータ通信を全てシャットアウトする。
Baiduを遮断するように設定したABPフィルターを自作し、ABPへ読み込ませるのだ。

 

■ABPのインストール
まずはABPをインストールしなければ始まらない。
公式サイトはこちらだが、私はこちらの改良版「Adblock Plus for Android改」を使用している。

インストール後は、Wi-Fiのプロキシ設定を変更しなければならない。
上記リンク先は英語だが、そう難しくはない。Androidの設定画面から、
Wi-Fi」→「接続しているSSIDをロングタップ」→「ネットワークを変更」→「詳細オプションを表示」にチェック→「プロキシのホスト名:localhost」→「プロキシポート:2020」→「保存」で設定が完了する。

通知バーの表示が「接続待ち」から
11.png

「ブロックされます」に変われば、ABPは動作している。
12.png

このABP改は最大4つまでのフィルターに対応しており、はじめから日本向けの強力なフィルターがセットされている。通常利用する上では、そのまま使うだけで十分効果を発揮する。

しかし、今回は広告が目的ではなく、Baiduへの通信遮断。
既存のフィルターを探しても、hmma.baidu.comをフィルターしているリストは見つからない(そらそうか)。となれば、フィルターを自作するしかない。

 

■ABP用フィルターの作成
フィルターの自作方法についてはこちらのサイトが参考になる。
今回は難しいことを考えず、baidu.comへの通信を全て遮断するので、

||baidu.com^

を追加してやればよい。これでhmma.baidu.comを含む全てのbaidu.comへの通信が遮断される。
もちろんbaidu.comで検索することも不可能になるが、今の状況ではむしろありがたいぐらいだ。全て根絶やしにしてやる...!

後はこのへんに載っている適当なリストを参考に、上の一行だけを追加したフィルターを作成。

[Adblock Plus 2.0]
! Title: Baiduフィルター
! Homepage: http://7mc.org
!
||baidu.com^

Baiduを遮断するためだけに生まれたフィルター。超クール←

作成したテキストデータはこちらにアップしている

これでフィルターが完成。

 

■フィルター購読リストを指定する
フィルターを自作したら、後はABP改にそのフィルターを読み込ませるだけ...なのだが、デフォルトでは既定の(作者が指定した)リストしか選択できない。

ABP改のサイトには

  • フィルター購読リストが指定可能
    • (home)/AdblockPlus/subscriptions.xmlから読み込み

と記載があり、リスト指定が出来るようなのだが...どうすればいいのか分からない。
そこでsubscriptions.xmlをググってみると、作者のツイートを発見した。


こちらからダウンロードできるsubscriptions.xmlをテキストエディタで開き、編集してやればいいようだ。

編集する箇所は以下の通り。

<subscription title="Baiduフィルター"
       specialization="Japanese"
       url="http://7mc.org/no_baidu.txt"
       homepage="http://7mc.org/"
       prefixes="ja"
       author="takeru"/>

一応全て適当に埋めてみたが、大切なのはタイトルとフィルターファイルのURL。

こうして作成したsubscriptions.xmlを「(home)/AdblockPlus/」フォルダにコピーしてやれば、ABP改はこのフィルターを読み込むようになる。


010.png

4つ目のフィルターが自作。残りの3つは既存のものをそのまま持ってきた。

 

■怪しげなパケット通信が消滅
このフィルターを適用した後、前回の記事と同様にパケットキャプチャを行ってみた結果、Baiduと思われるIPアドレスへの接続は無くなった。
ブラウザからアクセスしてもページは表示されず、キャプチャログにも残らない。ひとまず遮断に成功したということだろう。

ただ、前述の通り、ABPは非root環境ではWi-Fi接続の通信しかフィルターしないため、モバイルデータ通信をメインに使用している人には効果がない。
私のようにデータ通信を全てWi-Fi接続にするか、端末をroot化して全通信をフィルターしてやる必要があることに注意して欲しい。

また、ABPがフィルターするのはHTTP通信のみで、HTTPSはフィルターしない。今後BaiduへのアクセスがHTTPS通信になった場合、素通りしてしまう危険性がある。

それだけでなく、今後データの送信先がBaiduから変わった場合、新たな送信先を突き止め、フィルターに追加するまではダダ漏れになってしまう。

この方法をとる場合は上記の危険性を理解し、自己責任で行って欲しい。


色々とややこしいことになってしまったが、本来は開発側ができるだけ早く解決すべき問題である。
早急にこの問題が修正されることを願って、ABPでの措置は修正までの繋ぎとして使用したい。
将来的に修正されないようなら、今後の送信先の変更等のリスクを考え、本格的にESから撤退することも考えなければならない。


【追記】
情報元ブログに「QuickPicは?」みたいなことが書いてあったので調べてみた。

013.png

あったあった、バイナリデータにQuickPicの文字。通信先は211.151.139.210

014.png

やっぱ北京じゃねぇか!!

以上。


おまけ。
NoRootファイアウォールでも調べてみた。

015.png

http://whois.ansi.co.jp/42.156.141.25
→umeng.comの様子。リスト追加済。
http://whois.ansi.co.jp/123.125.115.154

http://whois.ansi.co.jp/112.80.248.24

大漁だった。2chでも指摘されてたさらに昔から


こいつらの通信もABPでブロックしたいな(出来たら例のテキストをひっそり編集します)。


そのほか役に立つかも(自分用メモ)
Android OSでの主な通信ブロックアプリの動作方式 - 不意になにかを残すブログ

コメント(1)

じゅんじゅん 返信

このquickpicはver.4.5.2のものですか?

コメントする