I originally posted this question on the Reverse Engineering site, but there were no answers. They told me to also post this question here. OK, my friends and I have Lego NXT sumo bot competitions for fun. Basically, you build a robot that waits five seconds and competes against a robot to stay on a board. We normally focus on the mechanical side to win against other robots (find them and push them off the board), but I had the idea to try a software attack. My idea was to:
- Find some sort of Bluetooth vulnerability that I could exploit from another NXT (I write my programs in NXC).
- Upload a malicious program that makes the robot drive backwards forever.
- Somehow execute the program (and win)!
I have tried testing the NXT Bluetooth for vulnerabilities (I have knowledge of Windows/Linux exploitation and debugging) and I can't find anything. The main problem is that the NXT firmware handles Bluetooth connections, in other words you connect the devices with a pass code before running the program that requires Bluetooth. So, my questions are:
- Is this even slightly possible or is it just a waste of time?
- If there was a NXT Bluetooth vulnerability, could I even send it from another NXT that's not connected?
- Was this the right place to post this question?
- Would NXT debugging even be possible?
Update First, thanks for all of the ideas and answers. Secondly, several of the answers note about the legality of what I am trying to do. Yes, it is legal where I live. Third, I talked with main guy and judge of the competition and he said that he would love to see a software attack like this.
Where I'm at now I have Kali Linux and the mac address has been found. I also found a paper here on the control protocols. The main dilemma I am still facing is the fact that a Bluetooth passcode has to be entered on the device I intend to connect to. Any updates will be posted here!