Contents in Detail
xvii
Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Object-Oriented Programming (OOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Network Communications in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Building a TCP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Creating a TCP Listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Dictionaries, Loops, and Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Improving Our Hacking Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Exceptions and Password Crackers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203