Hi, I've seen on here how easy it is to dissassemble code and wondered what levels of precautions people here have used or would use to make the process of hacking ones hard work.

All methods i have come up with are easily worked around. simply swapping the condition for a jump in assembly code would undo even password security.

Probably the most interesting idea i have come up with would need a c module in the project that would write into memory part of the routine on the fly (i.e. it writes the conditional jumps into memory using pointers but again all that is needed is to remove the c block and write the correct code into the exe file.

The only way i have seen is to create 2 passwords one for the application and a secondary one which is stored on a server so the software checks against a serial number database, this also is limited as unmodded it cannot detect if the user is legitimate, only that there is one person using a specific password at a particular time, and in any event it is still a case of changing the conditional jumps so it works when it is the wrong password or doesn't contact the site in the first place (or another site with a valid password and allows multiple users on its database)

So what methods have been used by people here to protect their code? Do microsoft expect its consumers to pay large amounts of money to write software that anyone with a basic understanding could hack within minutes.

As i see it one of the best methods is to make code hard to understand (obfuscation) but again searching for conditional jumps you can bypass anything without knowing what the code is doing