SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
中華製安価デバイスを
解析した話
第42回 NDS 2015/06/13
@civic
今日お話する内容
デバイス通信の解析
今日お話しする内容
• ニーズについて
• 温度ロガーについて
• 解析方法について
• 出来上がった成果
ニーズについて
キャンプとか
好き
アウトドアの天候は
変わりやすい
寒い!
暑い!!
色んな経験をした
• どのぐらい寒かった/暑かった
• ある一時点の気温では説明しきれない
• 一日の温度変化を記録すれば説得力抜群
暑い/寒い以上の情報量
データロガー
• 温度、湿度などの環境情報を
定期的に記録
温度ロガーを使って
キャンプ中の温度を
ロギングしよう!
温度ロガー
温度ロガーは結構高価
• 有名メーカーのものは数万円
• 温度センサーの部品は安い
• PC接続するタイプは安い
• バッテリー駆動必須
• min/maxの記録だけのは安い
Amazonで安いの発見
安心の中国製
スペック
• ボタン電池型の充電可能バッテリー
• 外部電源なしで単体動作
• USB接続でデータ取得
• 10分間隔の記録で111日間の記録が可能
• 記録間隔は設定可能(10秒∼24時間)
価格=3100円⁉
唯一の問題点
Windowsツールのみ
意外と高機能
データ取り込みや、
パラメータ設定に使用
カスタマーQ&A
回答
余談
!?
VirtualBoxでなんとかなる
インストール時
• USB-UART変換ドライバ
がインストールされてた
解説しよう
温度ロガー
Windows
USBケーブル 管理ツール
COMx
←温度データくれ
リクエスト
温度データ
レスポンス→
できる?
温度ロガー
MacOS or Linux
USBケーブル
自前
プログラム/dev/tty.*
←温度データくれ
リクエスト
温度データ
レスポンス→
解析方法について
通信をのぞき見
• 通信をのぞき見するか、ブリッジできればよい
• そういったソフトウェアがたくさんある
• レガシーデバイスの再利用で需要あるみたい
モニタリングツール
• Free Serial port Analyzer
• 無料ながらも高機能
Free Serial Analyzer
←便利!
バイナリデータを
見てわかるのか不安
意外と分かりやすかった
解析方針
• モニターしながら設定値を1箇所だけ変更
• 変更前後の差分から推測
例: 日付時刻
07 DF 05 0E 16 2F 04
-- -- -- -- -- -- --
YY YY MM DD HH MI SS
2015 / 5/14 22:47:04
チェックサム
• モジュロ256
• sumして256で割ったあまりが末尾についてる

→0x00∼0xFFの1バイト
一応解析できた
• 初期化処理?
• 設定値取得
• 設定更新
• 記録データ取得
できあがった成果
Pythonプログラムとして作成
• データアクセス用のライブラリ
• コマンドラインツール
データ取得
$ elitech-device.py -c get /dev/tty.SLAB_USBtoUART
1 2015-06-11 23:34:34 26.5
2 2015-06-11 23:35:34 26.7
3 2015-06-11 23:36:34 26.8
4 2015-06-11 23:37:34 26.9
5 2015-06-11 23:38:34 27.0
6 2015-06-11 23:39:34 27.0
7 2015-06-11 23:40:34 27.0
8 2015-06-11 23:41:34 27.1
9 2015-06-11 23:42:34 27.1
設定値取得
$ elitech-device.py -c devinfo /dev/tty.SLAB_USBtoUART
stop_button=StopButton.ENABLE
rec_interval=00:01:00
alarm=AlarmSetting.NONE
delay=0.0
tone_set=ToneSet.NONE
work_sts=WorkStatus.STOP
current=2015-06-12 02:06:24
last_online=2015-06-12 02:06:07
temp_calibration=-1.5
station_no=3
user_info=RC-4 Data Logger
upper_limit=60.0
ライブラリとして利用
import elitech
# 初期化
device = elitech.Device("/dev/tty.SLAB_USBtoUART")
device.init()
# デバイス設定値の取得
devinfo = device.get_devinfo()
ソースコード公開
• Github

https://github.com/civic/elitech-datareader
• PyPI登録

pip install elitech-datareader
まとめ
まとめ
• モニタリングツールを使えば便利
• 通信フォーマットが単純なら解析可能
• USBシリアルポート変換ドライバだったので可
能だった

Contenu connexe

Plus de civic Sasaki

むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8civic Sasaki
 
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話civic Sasaki
 
第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語civic Sasaki
 
第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpython第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpythoncivic Sasaki
 
NDS31 はじめてChrome App
NDS31 はじめてChrome AppNDS31 はじめてChrome App
NDS31 はじめてChrome Appcivic Sasaki
 

Plus de civic Sasaki (6)

むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
 
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話
 
第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語
 
第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpython第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpython
 
Nds35 kindle4
Nds35 kindle4Nds35 kindle4
Nds35 kindle4
 
NDS31 はじめてChrome App
NDS31 はじめてChrome AppNDS31 はじめてChrome App
NDS31 はじめてChrome App
 

Dernier

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Dernier (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

第42回中華製安価デバイスの通信を解析した話