#root@nowhere:whoami
oHead, Icarus Labs (CSPF)
oAuthor of PyTriage
oFound a DoS bug in Android
oSpoke at Defcon Kerala
oCreated the Raspberry Pi Malware Scanner
Interests: Hardware Hacking, Reverse Engineering, Malware Analysis and Open
Source Contribution
Why hack hardware?
•More interesting
•More rewarding
•Usually open entry point into an otherwise secure network
•Interacting with the physical world.
Why Pi?
•Easily supports a large variety of languages.
•Comes with an Ethernet and USB ports.
•GPIO pins for hardware hackery
•Inbuilt RNG
•VideoCore GPU
•Linux!!!!
GPIOs
•Only digital
•26 in total
•Can be controlled through Python, C or a number of other languages
•PWM support exists, so does I2C, SPI and UART
•Can be set as input or output.
Lesson 1: ArduBlinky
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
pinMode(led, OUTPUT); // initialize the digital pin as an output.
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}