There are going to be different ways of generating the serial number, and different routines in each piece of software to check for the validity of the serial number. If you would like to prevent a serial number from being exposed, looking into anti-debugging routines, packing, obfuscation, etc.
I will disagree with you. All hacking is not ethical hacking.
If you want to learn how to reverse engineer, there are tons of "reversing tutorials" out there. Reverse engineering does not have to be about cracking software.