Skipping iClicker lectures has never been so easy... obviously not to actually be used in class for nefarious purposes.
Reverse engineering the overly priced iClicker2 and creating an open source evil version, the iSkipper.
For full details, see the report.
If you use this for nefarious purposes, it's your fault if your iSkipper gets you in trouble.
Everybody hates going to lecture just because of stupid iClicker quizzes/questions. Two Cornell University engineers set out to do away with iClicker polling by reverse engineering it and finding any vulnerabilities to exploit. For $5 of parts, an iSkipper can be built that can do any number of evil things: * Submit hundreds of answers per second under fake iClicker IDs * Capture everyones else's iClicker ID and associated answer * After capture of other students ID's, resubmit other peoples answers under something else * DDOS the base station, so other people can't submit * Automatically answer questions for you so you can skip lecture
The software is Arduino based, with several evil examples, and an easy to use API for creating your own evil programs. All we ask is you write your own program/exploit , submit a pull request and put it in the example folder, so other students can enjoy it too.
Just drag and drop the
emulator/iSkipperfolder into your Arduino library folder as you would install any other Arduino library. Open the IDE and you should be able to lead examples. One dependency is a Queuing library: RingBufCPP.
MIT, but please submit a pull request with your own programs
The entire iClicker protocol is proprietary, so it had to be reverse engineered. There is still reverse engineering needing to be done, especially for numerical and alphabetical questions. After decoding ACK, this is what the latest iSkipper can and can not do. Note, there might not be Arduino examples written yet for some of these, but the API supports it. They should be trivial to make.
| Functionality | Status
| ------------------------------------ |:----------------------:| | Generate valid fake IDs | Working | | Submit answers to a base stations | Working | | Work across all channels | Working | | Emulate an iClicker 1 or iClicker+ | Working | | Emulate an iClciker 2 remote | TODO | | Capture multiple choice answer and ID| Working | | DDOS the basestation | Somewhat | | Capture ACK's send from base station | Working | | Decode ACK from base station | Working | | Emulate a iClicker 1 base station | Working | | Emulate a iClicker 2 base station | Somewhat | | Work in large lectures (>400) | Working | | Capture and send welcome message | Waiting implementation | | Support numerical questions | TODO | | Support alphabetical questions | TODO |
Basically all that needs to be done is decoding answer packets and ACK packets of numerical&alphabetical questions, then the iSkipper can emulate every part of the real iClicker 2.
Given that your iClicker id can be decoded by the base station, any sort of hashing done before the remote transmits your ID must be reversible, and hence vulnerable.
They are the founders of this cool project. They made everything become possible.
The main contributor of decoding ACK and welcome message.
Contributor of decoding ACK and testing, also the creator of iSkipper-Software.
Supporters of iClicker base, which allow us to verify our findings.
Contributor who made iSkipper avaliable on Android.