準備編：中華カメラをHack!? / P2P 通信と miSafes D304

## はじめに．．．
2019年2月頃にサービスが突然終了した『misafes pet / baby camera』と『Misafecam』．．．
予告無しのサービス終了は、ユーザーを絶望と怒りのふちに叩き落とす結果に!!
しかも miSafes では『pet / baby camera』．．．そんな製品無かった事になってます。
**[コレ](https://sec-consult.com/en/blog/2018/02/internet-of-babies-when-baby-monitors-fail-to-be-smart/)**がサービス終了の原因かな、しかもBBCニュースになってるし．．．

## P2P 通信の概要、カメラとアプリ『Misafecam』の接続．．．
miSafes のアプリ『Misafecam』は①②をまとめたアプリです。
（アプリにより①が無く、②に集約した製品もある。）
他の記事で登場する「中国のサーバを経由して．．．」と言うのは、このような事を表します。
**【ネットワーク概要】**
　　　①．MicroSD 保存の映像を再生、Misafecam ログイン認証、モーション検知のデータ管理
　　　②．リアルタイム映像の再生
![camera-hack001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502610/b69c66b2-4233-6f00-d513-a155fa3586e8.jpeg)

カメラの映像は miSafes の親会社 QiWo Smartlink Technology のサーバに自動送信されています。
また、**[TUTK P2P Server（ThroughTek Co.）](https://www.throughtek.com/privacy_policy.html)**にもデータ送信されています。
miSafes とは違う話しが出てきていますが、これは miSafes D304 コンソール・ログから確認できます。
![camera-hack002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502610/c022bd74-4ba7-64ce-3e0a-2717a6aa26b7.jpeg)

## カメラとアプリ『Misafecam』の現状は．．．
①のサービスが停止した為に Misafecam ログイン認証できず、カメラの映像が見る事ができません。
しかし**[②のTUTK P2P Server（ThroughTek Co.）](https://www.throughtek.com/privacy_policy.html)**は動作しています。
そこで、②から映像を見るようにする事が今回の目的です！！
![camera-hack003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502610/a62e8d0e-0ae8-57b2-988e-66bb07743373.jpeg)

## TUTK P2P Server の認証 ID は．．．
TUTK P2P 認証ID、sh.qiwocloud1.com 認証IDは Misafecam から miSafes D304に接続したタイミングで miSafes から発行され、D304 に保存されています。
Misafecam と miSafes D304 を接続した事が無い場合は、認証IDはありません。

**認証ファイル、起動実行シェル 抜粋**



| ファイル                        | 説明                    | 補足　　　 |
|:-------------------------------|:------------------------|:-----------------------------------------------|
| testlauncher.sh                | カメラ起動時の実行シェル  | カメラ起動時にmicroSD から自動実行                  |
| /mnt/config/guid_file          | TUTK P2P 認証ID         |                                                 |
| /mnt/config/guid_file_pwd      | TUTK P2P 認証パスワード  |                                                 |
| /mnt/config/reg_info_file      | qiwocloud 認証ID        | このファイルがあるとmicroSDに録画が開始           |
| <font color="Red">/mnt/config/sportdv_sysenv.cfg</font> | <font color="Red">ルーター、TUTK P2P 認証</font> | <font color="Red">カメラ登録時に使用する TUTK P2P 認証ID</font> |
| /mnt/backup/guid_file          | TUTK P2P 認証ID         |                                                |
| /mnt/backup/guid_file_pwd      | TUTK P2P 認証パスワード |                                                |
| /mnt/backup/reg_info_file      | qiwocloud 認証ID        |                                                |
| /mnt/backup/sportdv_sysenv.cfg | ルーター、TUTK P2P 認証 | string コマンドでファイル表示可能                |
<font color="Red">注意：『testlauncher.sh』は、misfaes D304 固有に設定された自動読込みファイル名です。</font>
　　　misfaes 他製品で使用しても、OS起動時に自動読込みは発生しません。他社製品でも同様です。

**カメラは Linux (BusyBox) で動作**
miSafes D304 は Linux (BusyBox) で動作しており、パーティション[0]～[3]で構成されています。
Linux (BusyBox) の OS 起動よる認証データは、次のようになります。
![camera-hack004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502610/91d9fc62-12e1-77c6-1d3d-030ea9fc962e.jpeg)

## TUTK P2P Server の認証 ID を Get 準備．．．
これから使用するシェルは**『[サクラエディタ](https://sakura-editor.github.io/)』**などで編集します。
保存する時は<font color="Red">改行コードを『LF(UNIX)』で保存</font>してください。**『[サクラエディタ](https://sakura-editor.github.io/)』**は『LF(UNIX)』の改行にすると『↓（下矢印）』で表示されます。
改行コードが違うとシェルはエラーとなり実行できません。
また、Windows のメモ帳で編集しても実行時にエラーとなり実行できません。
![TYPEX_screen001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502610/c5a6a3ea-2b4b-6d82-8b00-d7e3506c1286.png)

! /bin/sh ～ echo... までのシェルを『testlauncher.sh』ファイル 名で microSD に保存します。
<font color="Red">/mnt/config/sportdv_sysenv.cfgが重要(!?)</font> なファイルですが、他の情報もついでに取得しています。

```ruby:認証ID取得ファイル名：testlauncher.sh　作成　→　microSD保存
! /bin/sh

mount -w -o remount /dev/root /

echo "### misfaes_D304_config_sportdv_sysenv.out #########" > /mnt/mmc/misfaes_D304_output.txt
echo "### strings /mnt/config/sportdv_sysenv.cfg #########" >> /mnt/mmc/misfaes_D304_output.txt
strings /mnt/config/sportdv_sysenv.cfg >> /mnt/mmc/misfaes_D304_output.txt
strings /mnt/config/sportdv_sysenv.cfg >> /mnt/mmc/misfaes_D304_config_sportdv_sysenv.out

echo -e "\n### ls -l /mnt/config ##############################" >> /mnt/mmc/misfaes_D304_output.txt
ls -l /mnt/config >> /mnt/mmc/misfaes_D304_output.txt

echo -e "\n### config-reg_info_file ###########################"
cat /mnt/mmc/config-reg_info_file >> /mnt/mmc/misfaes_D304_output.txt
cp -p /mnt/config/guid_file     /mnt/mmc/config-guid_file
cp -p /mnt/config/guid_file_pwd /mnt/mmc/config-guid_file_pwd
cp -p /mnt/config/reg_info_file /mnt/mmc/config-reg_info_file

echo -e "\n### df -h ##########################################" >> /mnt/mmc/misfaes_D304_output.txt
df -h >> /mnt/mmc/misfaes_D304_output.txt

echo -e "\n### busybox command   ##############################" >> /mnt/mmc/misfaes_D304_output.txt
busybox >> /mnt/mmc/misfaes_D304_output.txt

echo '50' > /sys/devices/platform/pwm_led.0/leds/led/brightness
```

予断ですが、、、こんな疑問があると思いシェルを作成してあります。
　　　疑問：telnet、ftp を misfae D304 に出来ますか？
　　　回答：telnetd、ftpd が無いので出来ません。シェルの busybox コマンドの実行結果から分かります。

　　　疑問： echo '50' が末尾にありますが何ですか？
　　　回答：カメラのLEDを赤点滅させます。赤が嫌いなら echo '40' とすれば緑点滅します。

## TUTK P2P Server の認証 ID を Get ．．．
『testlauncher.sh』を保存した microSD をカメラに挿入し、POWER OFF/ON するとシェルが自動実行します。
シェルの実行が完了すると D304 LED が赤点滅するので、microSD を外します。
![camera-hack005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502610/b14f9cb7-3fb7-25ba-74ba-0cd915a5531f.jpeg)

## TUTK P2P Server の認証 ID を 確認 ．．．
microSD のファイル<font color="Red">『misfaes_D304_config_sportdv_sysenv.out』</font>を**『[サクラエディタ](https://sakura-editor.github.io/)』**などで開きます。
ところで、misfaes_D304 は A～C 状態のいずれかと思ってます。
**【状態】**　
　 **[A状態](https://qiita.com/PIGYO/items/e41ccf527fc36d0e4548)**：『Misafecam』サービス終了までカメラの映像は見られた。カメラの RESET ボタンは押していない。
　 **[B状態](https://qiita.com/PIGYO/items/5caf7efbc57e85a81077)**：『Misafecam』サービス終了までカメラの映像を見られた。<font color="Red">カメラの RESET ボタンを押した。</font>
　 **[C状態](https://qiita.com/PIGYO/items/b86547f67e534db4d560)**：『Misafecam』からカメラの接続が出来なかった。カメラの映像は見えない。または新品の状態。

『misfaes_D304_config_sportdv_sysenv.out』の表示結果から状態を判断します。
A～C 状態により、これからの設定が違うので注意してください。　
- - -
**A状態**：『Misafecam』サービス終了までカメラの映像は見られた。カメラの RESET ボタンは押していない。
　　　　ルーターのSSID情報、TUTK P2P 認証IDが表示された場合は A 状態とします。
　　　　 **[A状態：中華カメラをHack!? / P2P 通信を手動設定 miSafes D304](https://qiita.com/PIGYO/items/e41ccf527fc36d0e4548) に続く．．．**

```ruby:misfaes_D304_config_sportdv_sysenv.out

75F39C45A7CF
Buffalo-G-E320                 ※ ルーターのSSID名
admin
r0ot@dmin                      ※ ルーターのSSID接続パスワード（WPA PreSharedKey）
PEN367A9D3803MX2381A           ※ TUTK P2P 認証ID / 20桁のコード
87931362                       ※ TUTK P2P 認証パスワード / 8桁のパスワード
SY_MCP_IPC
INFOTM
Japan 
```
- - -
**B状態**：『Misafecam』サービス終了までカメラの映像を見られた。<font color="Red">カメラの RESET ボタンを押した。</font>
　　　　ルーターが「No Wifi Select」と表示されるが、TUTK P2P 認証IDが表示された場合は B 状態とします。
　　　　**[B状態：中華カメラをHack!? / WiFi、P2P 接続と telnetd、miSafes D304](https://qiita.com/PIGYO/items/5caf7efbc57e85a81077) に続く．．**

```ruby:misfaes_D304_config_sportdv_sysenv.out

75F39C45A7CF
No Wifi Select                 ※ ルーターのSSID名が表示されない
admin
admin
PEN367A9D3803MX2381A           ※ TUTK P2P 認証ID / 20桁のコード
87931362                       ※ TUTK P2P 認証パスワード / 8桁のパスワード
SY_MCP_IPC
INFOTM
```
- - -
**C状態**：『Misafecam』からカメラの接続が出来なかった。カメラの映像は見えない。または新品の状態。
　　　　ルーター情報、TUTK P2P 認証IDが全て無い状態を C 状態とします。
　　　　**[C状態：中華カメラをHack!? / WiFi、P2PとDebugモードで動作させる!! miSafes D304](https://qiita.com/PIGYO/items/b86547f67e534db4d560) に続く．．．**

```ruby:misfaes_D304_config_sportdv_sysenv.out
No Wifi Select                ※ ルーターのSSID名が表示されない
admin
admin
a8888888                      ※ TUTK P2P 認証IDが、無い
SY_MCP_IPC
INFOTM
shanghai
```
- - -
**映像の再生**：microSD に録画された映像を再生について参考にしてくだい。
　　　　　  　**[再生編：中華カメラをHack!? / miSafes D304 録画を再生]
(https://qiita.com/PIGYO/items/25b71b0c6966a7668847)**

準備編は見て頂いた方、ありがとうございます。:relaxed: