So you're saying it's not doable, right?
Not doable on a technical level, no. Unless you're willing to go the software-as-a-service route.
Not sure why you think the same even for C where all the user gets is the binary and there's no chance of him changing the code!
What makes you think that it's impossible to change binaries? Disassemblers, debuggers and other tools exist.
There's a whole industry around DRM, digital rights/restriction management, and basically all the protections against copying have been cracked. And they all come in binary files, one way or another.