Yeah, of course, this can be done too. But it's really difficult and you need to know a good amount of stuff in order to do it. And if the program's EULA says that reverse engineering is not allowed (which is true for almost all closed source apps) it is illegal.