Pocket WiFi(D25HW)にtelnet

  • 投稿日:
  • by
  • カテゴリ:

Pocket WiFi(D25HW)のベースになったといわれるE5830は、ファイアウォールを外すだけでtelnetできるらしい。
となれば、おそらくPocket WiFiもできるはずだと考えられるが、実際にはできない。
今回、不具合修正のファームウェアアップデートツールを少し調べていて理由が判明。
ファームウェアアップツールはファームウェアを書き込むだけでなく設定も書きこんでいるのだが、その設定がプレーンテキストをコンパイルするような形になっている。
そのテキスト内に「NV_LAN_TELNET_ENABLED」という項目があり、どう見てもtelnet有効化についての設定なのだが、当然値は0に設定されている。

…で、結論から言うとexeをごにょってさらにVS2008デバッガでレジスタを…げふんげふん…で、telnetが有効になった(ぉ)。
偉い人は言いました。「メモリ上にCPUが解釈できるマシン語が展開される限り、Krackできないことなど有り得ない!」と(参考:リバースエンジニアリング)。

一応記念に/proc/cpuinfo取得したので。

Processor : ARMv6-compatible processor rev 2 (v6l)
BogoMIPS : 382.56
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 6TEJ
CPU variant : 0x1
CPU part : 0xb36
CPU revision : 2
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format C
Cache format : Harvard
I size : 32768
I assoc : 4
I line length : 32
I sets : 256
D size : 32768
D assoc : 4
D line length : 32
D sets : 256

Hardware : QCT SURF7X25
Revision : 0000
Serial : 0000000000000000

E5830にtelnet - nblogにあるE5830の/proc/cpuinfoと全く同じ。そりゃそうか。
ただ、dmesgはかなり違う(長いので掲載しないが)。

あと、とあるダメ犬の戯言日記 - PocketWifi を覗いてみるの人もTCP/IPを疑ってみたらしい。私も最初はそうだった。

追記:
内部ストレージだが、空いてるのは/dev/mtdblock0(/mnt/flash)が4.6MiB程度とごくわずか。
だが、microSDを挿入すると/dev/mmcblk0p1(普通はパーティション切ってないのでこれ)で認識するので、それをマウントすれば容量は実質無制限。
さて、次はARM開発環境…ってさすがにそこまでするつもりはないのでこの辺で終了。あまり書きすぎると怖い人がやってきそうだし。

おや、こんな夜遅くに誰か来たようd…うわなにするやめqwsdふじこ!

追記(5/20 19:35)
E5830と違ってファイアウォールを切ってもWAN側からはtelnetアクセスできないようだ。まあ、セキュリティを考えたら当然だが。
そもそも項目名が「NV_LAN_TELNET_ENABLED」なので試す前からそうだろうとは思ってた。

追記(7/3)
Pocket Wifiでtelnet darkmark blogによると

バックアップファイルは、エンコードされており、かつ、直接いじっても、CRCエラーで弾かれて、それをリストアすることはできない。しかし、このCRCエラー、単純なビット比較らしく、全部のビット数が変わらなければ、弾かれない。

らしい。LINE_CRCってそういうことだったのか。
てっきりCRC32のようなものだと思ってたので、まさか単純ビット比較だとは思ってもみなかった。

追記2(10/7)
コメントに返答するため久しぶりに調べていたら、私と同じような方法でtelnet有効化した人を発見。
Pocket WiFi(D25HW) - TrashSUITE
しかもこの記事の僅か10日ほど後。なんたる偶然。