> 2) How can I put a time limit on the time the program can be run. In
> other words, after a certain date the program simply stops running.
> > I've written a VB program in Version 5 and now I'd like to distribute
> > it. But there are some issues I'd like to overcome first.
> >
> > 1) Can I make sure that my EXE file cannot be reversed engineered. I
> > have some special mathematical algorithms that I want to make sure do
> > not get into the public domain.
Anything you ship to an end user, can be examined by the end user. If your algorithms are that important, the only way
to keep them private is to keep them on a private server, and have your app communicate with the server.
> Don't worry, there are a couple of debuggers, but non of them give the user
> the exact code. Some give only the name of the forms and the name of some
> proc's, but the answer in this group (by real experts) is always: there is
> no debugger for VB.
Actually, there are plenty of debuggers for VB - SmartCheck, SoftICE, Windbg, VisualStudio, etc. There are also plenty
of disassemblers for native-compiled VB. There is even one halfway-decent disassembler for p-code compiled VB.
I suspect what you were trying to say was that there are no decompilers for VB5 apps. This is, for all intents and
purposes, true.
In other words, there is no easy way to get VB source from a native-compile VB5 app. However, if your algorithms are
really all that valuable, then it doesn't matter that VB source isn't available. Anyone skilled in reversing apps will
be able to extract the algorithms from a disassembly listing. There is no way to avoid this short of not shipping that
code.
> > 2) How can I put a time limit on the time the program can be run. In
> > other words, after a certain date the program simply stops running.
> > 3) Is there any way I can put a computer identification capability
> > into the code so that if a copy of the copy is put on another computer
> > the program simply stops running?
Either purchase a third-party protection package, or be prepared to spend a fair amount of time learning how to do this
effectively yourself. If you want to do it yourself, take a look at the ActiveLock project at SourceForge. The latest
version has some good ideas, and is an open-source project, so you can look at the code to see how this is done:
http://activelock.sourceforge.net
If you want to try a third-party package, this one looks very promising for VB apps:
http://www.chosenbytes.com/codeintro.php
Best,
Pete
Hans Eekels - 31 Aug 2004 06:43 GMT
I said debugger, sorry: I mean de-compiler.
HE
> > > I've written a VB program in Version 5 and now I'd like to distribute
> > > it. But there are some issues I'd like to overcome first.
[quoted text clipped - 39 lines]
> Best,
> Pete
Michael B. Johnson - 31 Aug 2004 15:40 GMT
- snip -
>> > 1) Can I make sure that my EXE file cannot be reversed engineered. I
>> > have some special mathematical algorithms that I want to make sure do
>> > not get into the public domain.
>
>Anything you ship to an end user, can be examined by the end user. If your algorithms are that important, the only way
>to keep them private is to keep them on a private server, and have your app communicate with the server.
Just elaborating... even if you purchase a 3rd party tool, you cannot
guarantee that your code is not reverse engineerable. When handing the
user the private key, the public key, the coded message and the
algorithm you cannot ensure that it won't be reverse engineered.
The Chinese are particularly skilled at this according to published
sources. And few citizens of any country outside the USA, Britain and
a handful of other countries will care a whit if the process is
patented. Indeed, few even in these countries. You can raise the price
of entry either in time or tools required, but that's all. If
someone's in the business, they've already paid the price to create
and buy the necessary tools - you won't keep them out.
>In other words, there is no easy way to get VB source from a native-compile VB5 app. However, if your algorithms are
>really all that valuable, then it doesn't matter that VB source isn't available. Anyone skilled in reversing apps will
>be able to extract the algorithms from a disassembly listing. There is no way to avoid this short of not shipping that
>code.
True, no published point & click "easy" way. That doesn't mean though
that the process cannot be understood and another application written
to execute that same process.
And you may actually hurt real people - your customers - in the
process of trying to ensure that the boogie man won't steal your
precious.
- snip -
>Either purchase a third-party protection package, or be prepared to spend a fair amount of time learning how to do this
>effectively yourself. If you want to do it yourself, take a look at the ActiveLock project at SourceForge. The latest
[quoted text clipped - 3 lines]
>If you want to try a third-party package, this one looks very promising for VB apps:
>http://www.chosenbytes.com/codeintro.php
_______________________
Michael B. Johnson
Dag Sunde - 31 Aug 2004 17:07 GMT
> - snip -
>
[quoted text clipped - 4 lines]
> >Anything you ship to an end user, can be examined by the end user. If your algorithms are that important, the only way
> >to keep them private is to keep them on a private server, and have your app communicate with the server.
As Michael and the others tell you, as long as the algorithm is in
the distributed code, there are no way to protect it 100%.
One solution is to host those particular algorithms on a server
under your control, and puplish them as WebServices.
Then in your client, use SOAP to call them. Then, only the input
parameters and the result will be transported over the wire.
The algorithm itself is running on your server.
The downside to this approach is twofold: Speed, and that the
client must have an active internet connection to use yor app.

Signature
Dag
58°26'15.9" N 008°46'45.5" E