Software Cracking and Keygenning
Software Cracking and Keygenning
OVERVIEW
This project was designed to expand your knowledge of fundamental reverse engineering practices:
software cracking and keygenning. These tasks are basic; yet, they use many fundamental reverse
engineering techniques that are important for the reverse engineer to master.
ASSIGNMENT
This assignment is comprised of two parts. The first involves patching code to bypass security.
Introducing vulnerabilities (or rather, bypasses) is a basic software cracking practice. The second
involves reversing code and replicating its output. This is an essential technique for keygenning.
1. Describe (precisely and accurately) how winmine.exe seeds its pseudorandom number
generator.
4. Print and attach screenshots from multiple executions to show that the randomness of bomb
placement has been defeated. Screenshots must be distinguishably different executions (do
this by clicking on a different bomb).
Reverse the machine code for keygenme.exe using IDA. Program a keygenner in Python, Java, Ruby
(Metasploit plugin language of choice), or C/C++ (please ask an instructor for permission to use any
others). No assembly code is permitted, inline or otherwise! Your keygen must randomly generate
valid keys.