今回、RoboMaster S1に搭載されているIntelligent Controllerのフリをして、コマンドを乗っ取ることで制御を奪ってしまいます。 Intelligent Controllerが出力しているCAN IDは物理的にIntelligent Controllerを切り離すことで、わかりますので、ID = 0x201ということが判明しました。 コマンドの種類を特定する 通常はCANにのせるコマンドは、常に同じものを定常的に送信し、そのBitの変化で指示を与えることが通例なのですが、ここでもDJIは恐ろしいことにCAN-BUSに流すコマンドを定常的に流すものと、ブラスターなどの指示が来た時だけ流すコマンドの2種類存在していました。また、指示が来た時だけ流すコマンドで、別ユニットからACKと思しきコマンドが返ってくるものもありました。 なぜこのように2種類のコマンドを用意するこ
![RoboMasterS1を解析してROSで動かせるように頑張ってみる(プロトコル解析2) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/a446c7a85f4fb54eb2627cd4586e48fe5fe6b147/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9Um9ib01hc3RlclMxJUUzJTgyJTkyJUU4JUE3JUEzJUU2JTlFJTkwJUUzJTgxJTk3JUUzJTgxJUE2Uk9TJUUzJTgxJUE3JUU1JThCJTk1JUUzJTgxJThCJUUzJTgxJTlCJUUzJTgyJThCJUUzJTgyJTg4JUUzJTgxJTg2JUUzJTgxJUFCJUU5JUEwJTkxJUU1JUJDJUI1JUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgyJThCJUVGJUJDJTg4JUUzJTgzJTk3JUUzJTgzJUFEJUUzJTgzJTg4JUUzJTgyJUIzJUUzJTgzJUFCJUU4JUE3JUEzJUU2JTlFJTkwMiVFRiVCQyU4OSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZGJiNWYwNGMzOTI3MzlhZmEyZmVlNTJmNWYxNTljMWM%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdGF0c3V5YWk3MTMmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTUwY2QwZTMyZjIyNWVhZTJhMTllMWVmNGJjZjEyNDgy%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D6ffad9ccaf604b6b55fdf63d04618f9c)