From: a on 1 Jul 2010 10:43 Is there a reliable way for me to tell if my app is running sandboxed (such as with Sandboxie) or in a virtual environment (such as VirtualBox)? Reason being is that if I code my app with a 30-day trial, the user can just run it sandboxed and then delete the sandbox after every run, basically letting them run it forever. :(
From: Dee Earley on 1 Jul 2010 11:28 On 01/07/2010 15:43, a wrote: > Is there a reliable way for me to tell if my app is running sandboxed (such > as with Sandboxie) or in a virtual environment (such as VirtualBox)? Reason > being is that if I code my app with a 30-day trial, the user can just run > it sandboxed and then delete the sandbox after every run, basically letting > them run it forever. :( It wouldn't be doing a very good job if you could detect it... http://blogs.msdn.com/b/oldnewthing/archive/2010/05/19/10013611.aspx -- Dee Earley (dee.earley(a)icode.co.uk) i-Catcher Development Team iCode Systems (Replies direct to my email address will be ignored. Please reply to the group.)
From: David Schwartz on 1 Jul 2010 17:09 On Jul 1, 7:43 am, "a" <b...(a)invalid.com> wrote: > Is there a reliable way for me to tell if my app is running sandboxed (such > as with Sandboxie) or in a virtual environment (such as VirtualBox)? Reason > being is that if I code my app with a 30-day trial, the user can just run > it sandboxed and then delete the sandbox after every run, basically letting > them run it forever. :( Is it the *user* or the *system* that's supposed to get a 30-day trial? If it's the system, then they should be allowed to run it forever -- it's a new system each time. If it's the user, then you're asking the wrong question. Your question should be "is there a reliable way for me to tell *who* is using my application?" Think long and hard about what you actually want to know. Then ask. :) DS
From: a on 2 Jul 2010 02:02 "Dee Earley" <dee.earley(a)icode.co.uk> wrote in message news:i0icaj$f9k$1(a)speranza.aioe.org... > On 01/07/2010 15:43, a wrote: >> Is there a reliable way for me to tell if my app is running sandboxed (such >> as with Sandboxie) or in a virtual environment (such as VirtualBox)? Reason >> being is that if I code my app with a 30-day trial, the user can just run >> it sandboxed and then delete the sandbox after every run, basically letting >> them run it forever. :( > > It wouldn't be doing a very good job if you could detect it... > http://blogs.msdn.com/b/oldnewthing/archive/2010/05/19/10013611.aspx True, but the thread here seems to be able to detect most VMs with success: http://www.purebasic.fr/english/viewtopic.php?f=13&t=34086 So I was wondering if the code there would be good enough?
From: Leo Davidson on 2 Jul 2010 03:09
> Is there a reliable way for me to tell if my app is running sandboxed (such > as with Sandboxie) or in a virtual environment (such as VirtualBox)? Reason > being is that if I code my app with a 30-day trial, the user can just run > it sandboxed and then delete the sandbox after every run, basically letting > them run it forever. :( What are you going to do if you detect a virtual machine? Not allow the program to run at all? Reduce the evaluation period? Be careful you don't prevent legitimate users from evaluating your software in a VM. I'll often install first in a VM to avoid the risk of something untested messing up my real machine. If it works well then I'll move it to the real one. I'd probably dismiss anything that couldn't be evaluated in a VM at all. A reduced eval period might be fine for someone like me but there are also people -- especially some corporations -- who run *everything* in a VM. There are some crazy people who will rebuild their real (non-virtual) Windows install every month to reset all the eval periods on their software. I think it's best just to ignore them along with people using VMs to bypass protection. If they're willing to go to such lengths and add so much hassle to their computer use -- constantly reinstalling software or even the OS -- then it seems unlikely you'll ever convert them into paying customers. Some people are pathologically against buying software and apparently put zero monetary value on their own time. I'm not saying that some protection isn't worthwhile; I'm just saying there are legitimate reasons to evaluate software in a VM and I don't see any real upside in preventing people from doing so. There's probably a better way of tracking evaluation periods (e.g. requiring users to register for an eval licence, though they could still create a new email address every time; maybe tie it to the Windows product code, but that can be changed too) without making the software care which kind of environment it is run in. |