I think the point is a research based on this:
Anything is possible. You just need to find a way to do it with the tools available. Just give it a good thinking.
Besides the fact that there is not uncracked software on the market, (even if they implement expensive protection schemes), the control of the usage on more than one machines, could be done only by a kind of an activation scheme. Any other protection is stuck on the local machine. The installer is not the "end user's software", is just the container, so the reasonable solution should be a kind of "user name-serial number" protection. Though, stick in "find a way to do it with the tools available", just carry out an experiment. An installer who counts the run times and expires after n times. No doubt that every user on this forum could easily break that scheme. Moreover, who really needs something like this? I think as a subject matter, has a point. With the tools available this is what I can do. In fact all the job is dependent on decrypt dll. And here comes where I end up. Download it and try it if you like. Probably, I'll post the code on wiki for reference.
P.S. even a system snapshot before/after is enough to break it.