
最近、Wi-Fi に接続するスマート サーモスタットを購入しました。スマートフォンのアプリからデバイスを制御できます。
このアプリには改善の余地があり、デバイスに接続してデータを制御および記録するための独自のスクリプトをデスクトップ PC で作成したいと考えています。
ルーターの管理インターフェースの接続デバイス リストにデバイスの MAC アドレスと IP アドレスが表示されますが、デバイスが携帯電話のアプリと通信するためにどのポートを使用するかがわかりません。
デバイス用のデスクトップ アプリがあれば、トラフィックをスニッフィングするために Fiddler を使用するだけですが、アプリが携帯電話上にあるため、代替手段がわかりません。
複数のポート スキャナーを試し、デバイスの IP 上のすべてのポートをスキャンしましたが、結果は得られませんでした。
リバースエンジニアリングを行うために、アプリがデバイスとどのように通信するかを調べるにはどうすればよいですか?
追加情報: メーカーのアプリは Android 上にあり、Windows PC からデバイスと通信したいと考えています。
編集: ここの指示に従ってみました:https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForAndroid携帯電話のトラフィックをフィドラー経由でリダイレクトします。携帯電話のブラウザを使用している間は、フィドラーに記録されているトラフィックを確認できますが、サーモスタット アプリを使用しているときは何も記録されません。奇妙です。
答え1
アプリからどのポートが使用されているかを確認するには、アプリの使用中にデバイスの接続をスニッフィングするか(コメントのリンクから)ザール・リンデストッケ) または、Android スマートフォンにターミナル エミュレーターをインストールしてnetstat
コマンドを使用します。
netstat -lt
デバイスまたはソフトウェアがリッスンして TCP 接続を待機しているすべてのポートを一覧表示します ( netstat -lu
UDP 接続の場合も同様です)。
netstat -t
現在進行中のすべての TCP 接続を一覧表示します。アプリの使用中にこのコマンドを使用すると、この特定のアプリで使用されているポートが表示されます。( netstat -u
UDP の場合)