Many garage door openers are not very secure but there are still thousands of codes that need to be transmitted. If these codes were being entered manually it would take a long time to go through all the possibilities but of course we could just use a small processor to run through the combinations. Samy used a kids toy that had all the required hardware to do the task, this could have also been done with a dev board and a small display and a transmitter but it wouldn’t have looked as cool.
The really interesting thing that Samy discovered was how the garage openers look for valid codes, it isn’t a unique entry that is tested. For example if enter the wrong 4 digit code into your home alarm system you would need to wait till it timed out or press a clear key before you attempt a new code. This is not the case with these garage door systems. It just looks at the last X number of bit sequences. The De Bruijn Sequence (here is an online generator to play with) ensures that all sequences can be found within the stream of characters but not in order. This means that the actual amount of data that was needed to be transmitted was less than 5% of the entire regular bruit force test suite.