Can I secure my expert advisor robot to be work on the only one pc ? - page 2

 
GetVolumeInformation() has served me well in my applications.
 
sxTed:
GetVolumeInformation() has served me well in my applications.

There's an official Microsoft tool for changing the volume ID on a drive: http://technet.microsoft.com/en-us/sysinternals/bb897436.aspx. Using the volume ID as a simple licensing mechanism is well-known, and the workaround to break such simple licensing mechanisms is also well-known - among a certain type of user, or among people who are prepared to do a little digging.

Like I said before, "the means which is used for identifying a computer has to be a compromise between security and practicability". I'm sure that use of GetVolumeInformation() has worked very well for you, and will continue to do so. But you have chosen - perfectly validly - a compromise which leans towards simplicity rather than security.

And there remains the fact that any protection which is implemented solely through MQL4 code is very vulnerable to decompilation.

 
sxTed:

puncher, there you go


Something is wrong:

How to reference to SystemDriveSerialNumber function ?

 

Do you know that everybody who is interested in pirating and reselling your EA will simply (routinely) decompile it and remove whatever sophisticated serial-number protection you put into it in not more than 2 minutes time?

You should run the essential parts of your strategy on a server and not inside the EA and make some kind of subscription service where paying users have login/password. The EA would connect to the server, authenticate, send some data and get its trading signals or some complicated calculation results back.

 

& the serial no. from the disk can be change too

In my opinion you need to store some or all of the code in a server That the EA should connect to the server & read the code from there

& get buy/sell signals

 
can any one help with a sample mq4 file
 
IntegerToHexStringgiving error as function not defined
 
kum01049:
IntegerToHexStringgiving error as function not defined

#include <stdlib.mqh>

But I still not able to use this function, can you please give an example?

 
Is there any update on this?
 
Part of the problem with the solutions suggested, as I see it, is if someone has thought of using it to secure it, then it is almost guaranteed that someone else is either trying to or has already figured out a way to get past it.  There is unlikely to be any solution that is and will be 100% secure.