前回までの記事はこちら
追加してきたのでもう安心。
さてと、このカメラ、AndroidとiOSにターゲットを絞り、クラウドに誘導することで日銭を稼ぐシステムの片棒を担がされている気がするので、その辺を外していきます。
ドンキはこれいくらで仕入れてきてるんだろう?
開いてるポート番号を調べてみます。外からツールを使うのではなくて、netstatで調べます。
# netstat -a -p
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:9008 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:www 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:telnet 0.0.0.0:* LISTEN 204/telnetd
tcp 0 0 0.0.0.0:5050 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:7101 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:7103 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:3201 0.0.0.0:* LISTEN 159/tees
tcp 0 0 0.0.0.0:554 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:843 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 0 0.0.0.0:6670 0.0.0.0:* LISTEN 187/p2pcam
tcp 0 157 192.168.200.1:telnet 192.168.200.100:5388 ESTABLISHED 204/telnetd
udp 0 0 0.0.0.0:7998 0.0.0.0:* 187/p2pcam
udp 0 0 0.0.0.0:8001 0.0.0.0:* 187/p2pcam
udp 0 0 0.0.0.0:8002 0.0.0.0:* 187/p2pcam
udp 0 0 0.0.0.0:bootps 0.0.0.0:* 269/udhcpd
udp 0 0 0.0.0.0:8888 0.0.0.0:* 187/p2pcam
udp 0 0 0.0.0.0:20188 0.0.0.0:* 187/p2pcam
udp 0 0 0.0.0.0:9999 0.0.0.0:* 187/p2pcam
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 259 185/rsyscall.goke /tmp/systemcall.sock
unix 2 [ ACC ] STREAM LISTENING 282 187/p2pcam /tmp/aaa
unix 2 [ ] DGRAM 547 264/hostapd /var/run/hostapd/wlan0
unix 3 [ ] DGRAM 231 159/tees /var/run/tees.sock
unix 2 [ ] STREAM CONNECTED 327 264/hostapd /tmp/systemcall.sock
unix 2 [ ] DGRAM 299 187/p2pcam
見にくい。Excelで整形しよう。
9008 | 187/p2pcam |
www | 187/p2pcam |
telnet | 204/telnetd |
5050 | 187/p2pcam |
7101 | 187/p2pcam |
7103 | 187/p2pcam |
8001 | 187/p2pcam |
3201 | 159/tees |
554 | 187/p2pcam |
843 | 187/p2pcam |
6670 |
187/p2pcam |
telnetdはbusyboxで、そのほかのサービスは内蔵のカメラアプリが開いて要るっぽい。
専用サーバアプリじゃないのでURLが分かりにくい…
使えそうなポートを確認してみる。554はRTSPだ。
VLC Media Playerを開き、rtsp://192.168.200.1:554/ を開く。
うん。簡単に再生できた。ローカル内で監視するならこういった簡単な操作が望まれる。
(上記画像は、暗いところなので暗視白黒になっている)
これで遠隔からptzを制御できれば完璧なのだが、どうやら今のところ独自プロトコルらしく、独自に解析されたこちらのツールを使うのがいいようだ。
https://github.com/ant-thomas/zsgx1hacks
wwwもあるのだが、どうも該当ファイルが置いていないか無効化されていて何もできないっぽい。上のハックツールではそれを利用しているようにも見える。
そして、ここの解析にもある通り、このWebカメラ、起動時にmicroSDスロットに特定のファイル名でシェルスクリプトを置いておくと実行してくれる超便利な機能があるっぽい。
うーん、便利!
このカメラ、なんとスピーカーが付いていて起動後何も設定されていなかったりすると「QRコードを読み込んでなんたらかんたら」って怪しいイントネーションの日本語でしゃべったりするんですよね。
この音声ファイルはFLASHに圧縮されて書き込まれていて、起動時にRAMに展開されています。
FLASHを上書きするのはちょっとめんどいので、RAM上のこのファイルを上書きすると好きな音声でしゃべらせられるようになると思います。
あと、一部の音声は英語のままなので出ないと思いますし、怪しくないイントネーションの日本語もあるので、オリジナルの日本語対応の後、クラウド化による日本語追加が行われている気がします。
alarm.wavはひゅーんっていう効果音で、何か警告音を鳴らせるのでしょうか。
これが謎の音声とかにできれば不審者にいいトラウマを植え付けられますね(駄目です)
うーん、単独で音声ファイルを再生できるツールがあれば任意のタイミングでならせる気がするが、これp2pcamバイナリでしかできないのかな…(Linuxサウンドデバイスとしては見えてない)
その他のポートが何なのか今のとこわかっていないが、RTSPでストリームを見れるだけで結構便利だと思います。
ネットワークに詳しいならクラウド使わなくてもこれだけ転送すれば行けるでしょ
(セキュリティに気を付けてね!)
<追記>
普通にONVIFカメラとしてストリーム再生、PTZ操作できました…