Supposing we have a software that checks on a remote server online if the input entered by a user (a license key) is valid.
The server sends in a socket to the client
False if the license is correct or not.
In the binary, a jump (
jz...) is made depending of the result.
I think that this implementation is common to software (please correct me if I'm wrong on that point).
The problem is that nothing can prevent a malicious user to patch the binary in order to change the "jump" above and bypass the check validation of the license key.
So how does software developer prevent that situation ?