Introduction to reverse engineering (why doing that ?) To reimplement a software/hardware without copying software (to avoid copyright and 'author's right'), To create compatible (interoperability) software/hardware, To analyze security of a software/hardware (finding bugs, errors or backdoors...) - cryptanalysis is a form of RE, To make a forensic analysis of a software/hardware (finding what happens after being compromised), To verify software license compliance (Is this proprietary software using GNU GPLed software ?), Learning, Learning and Learning... (or RE legacy application...)