♨️

/etc/hostsを修正してSelfControllアプリを無効化する方法

2021/08/20に公開

はじめに

ドメインを登録することで、ブラウザの種類に関係なくアクセスをブロックすることができるSelfControllというアプリを使用していました。
このアプリがすごいのは一旦ブロックを開始したら指定時間を過ぎるまでは絶対にキャンセルできないという点です。快適な集中ライフが送れますね。
今回は申し訳ありませんがこのアプリの仕組みをハックして、制限時間前にブロックを無効化してしまいます。

ブロックしてみる

まずは適当にyoutubeあたりをブロックしてみます。

どのブラウザを使ってもこのようにyoutubeだけがブロックされている状態となります。

ドメインブロック前後でpingコマンドで通信を確認

ブロックする前後で通信状態がどのようになっているかpingコマンドで確認してみます、
ブロック前

$ ping youtube.com
PING youtube.com (172.217.175.14): 56 data bytes

ブロック後

$ ping youtube.com
PING youtube.com (0.0.0.0): 56 data bytes
ping: sendto: Socket is not connected

ネットワーク上のホストにパケットを送信するコマンドpingを使用して改めて接続を確認します。
PING ホスト名(IPアドレス)と出力されているのですが、youtube.comのIPアドレスが0.0.0.0となっています。

DNSとhostsファイル

インターネット通信ではドメイン名で対象のリソースにアクセスするのではなく、ドメイン名からIPアドレスを調べるためにDNSという仕組みを用います。
ドメインからIPアドレスを調べることを名前解決と呼びます。
通常はこのようにDNSサーバーに問い合わせをするのですが、ローカルにあるhostsファイルを書き換えることでDNSサーバーに問い合わせることなくドメインと指定したIPアドレスを紐づけることが可能になります。

/etc/hostsの確認

% cat /etc/hosts
.
.
(中略)
0.0.0.0	youtube.com
::	youtube.com
.
.

youtube.comが見事にIPv4アドレス0.0.0.0と結びつけられているのがわかります。
なのでsudo vi /etc/hostsで制限時間内でもブロックを解除できてしまいます。

終わりに

快適な集中ライフを送っておりましたが、ひょんなことから芽生えた興味からアプリが台無しになってしまいました。

Discussion