Source: https://courses.cs.washington.edu/courses/csep590a/06au/projects/hacking.pdf