Closed Apricot-S closed 4 months ago
API Visualizer で対局中の API の内容を確認すると、ActionPrototype が表示されていない 対局開始時の通信分など一部のみ表示されている
ActionPrototype
ActionPrototype の data は難読化されているが解読する処理がない そのため data のデコード時に google.protobuf.message.DecodeError が発生し、WebSocket メッセージの JSON への変換処理が途中で終了してしまうため
data
google.protobuf.message.DecodeError
data をデコードして google.protobuf.message.DecodeError が発生した場合は https://github.com/Cryolite/majsoul-rpa/blob/main/majsoul_rpa/presentation/match/_common.py#L14 の方法で難読化を解除してからデコードする
https://github.com/Apricot-S/mahjongsoul_sniffer/commit/513662c6311e24a116402750a7a7943eeae2f91b
で難読化解除を試したところ、解除自体には成功したが一部のフィールド (bool 型か? 詳細未調査) が欠落しているように見える
調査した結果、一部のフィールドが表示されていないのは ActionPrototype だけでなくすべてのデータ型で同様である 表示されていないフィールドは false や 0 などの false と判定されるような値である この問題については #99 に改めて Issue を立てた
false
0
マージされたので close します。
概要
API Visualizer で対局中の API の内容を確認すると、
ActionPrototype
が表示されていない 対局開始時の通信分など一部のみ表示されている原因
ActionPrototype
のdata
は難読化されているが解読する処理がない そのためdata
のデコード時にgoogle.protobuf.message.DecodeError
が発生し、WebSocket メッセージの JSON への変換処理が途中で終了してしまうためTo Be
data
をデコードしてgoogle.protobuf.message.DecodeError
が発生した場合は https://github.com/Cryolite/majsoul-rpa/blob/main/majsoul_rpa/presentation/match/_common.py#L14 の方法で難読化を解除してからデコードするメモ
https://github.com/Apricot-S/mahjongsoul_sniffer/commit/513662c6311e24a116402750a7a7943eeae2f91b
で難読化解除を試したところ、解除自体には成功したが一部のフィールド (bool 型か? 詳細未調査) が欠落しているように見える
調査した結果、一部のフィールドが表示されていないのは
ActionPrototype
だけでなくすべてのデータ型で同様である 表示されていないフィールドはfalse
や0
などの false と判定されるような値である この問題については #99 に改めて Issue を立てた