The current situation
These days, files can be decompiled in no time at all. It costs less than $10 and takes about a minute. This can lead to a number of problems. For example:
- The source code becomes visible, enabling anyone to rebrand and redistribute your product as their own
- Your algorithm is visible to your competitors
- Protection can easily be removed from your project allowing it to be used for free
- Your source code can be distributed on forums, which can lead to an irreversible process of distribution
It seems that Metatrader4 vendors are unable to find an effective solution to this problem for reasons of backward-compatibility. They are unable to change the format in Metatrader4 to support the many millions of .ex4 files around the internet. This means the solution should be sought in third party products.
See Decompiler in action
See Anohther Decompiler in action
How to protect yourself
The best way to protect yourself is to develop a product that combines efficient copy protection with licensing features. Let’s look at what you would need to meet these criteria:
- As a vendor you are familiar with MQL language. However, because protection for MQL compiled files is DLL-based you would need to hire someone else to do the coding for you.
- You would need an experienced coder who is capable of programming in a low-level environment. Efficient solutions can only be programmed at low-levels. So you would need someone with an excellent understanding of C/C++.
- Ideally, your low-level coder should understand trading. If this not the case, then you will need to understand the low-level environment so that you can explain to your coder how things should be coded. MQL is a c#-based language. It is an extremely skimmed down version of C# and bears no resemblance to either C/C++ or C#. Because the MQL language was specially created for traders there is a huge gap in understanding between traders and programmers.
- To ensure an effective solution your coder will not only have to know MQL language but also understand the internal dynamics of MT4. Neither MQL nor MT4 is publicly available, and MT4 takes a long time to master.
- The key for having an effective protection system is to wrap a DLL around your project. Your MQL code should not have any line which checks the license! Anyone who can decompile your .ex4 file can simply remove this line or even make a != from == and skip your protection. Effective protection should leave no lines in your MQL file that can be attacked by decompiling! To ensure this you will need to be very knowledgeable indeed. Ninety-nine per cent of all protection systems communicate through DLLs and they have if-statements to check the license, the expiration date, and the authenticity of the credentials. But all of this can be skipped by simple decompilation!
- Even if you decide to go for basic protection, which has a number of inherent weaknesses, it will cost you more than $150.
- To guarantee an effective solution, with no weak points, you will need knowledge, programming experience, trading experience, and plenty of time. The solution will take months to program effectively and will cost you a small fortune.
- The cost will not only be financial, there will also be the headaches brought on by your lack of knowledge in both areas. You’ll be going back and forth all the time. Everything that’s coded will have to be thoroughly tested. Testing software is a science in itself. There are hundreds of different configurations out there. You would need a team to test effectively. Releasing an untested product can easily lead to financial ruin or even chargebacks.
- Even if you pay $150 or more to develop a system, you can still expect problems. For one thing, you will need to keep the same coder on your team to make changes while you develop new versions. This solution will usually be on a per project basis, and new projects will cost you more to adapt. You’ll have to hire this person for a very long time if you want to find the most effective solution.
- Testing is not easy if you’re only familiar with coding in MQL. It’s incredibly difficult to evaluate another coder’s code. There may be scores bugs just waiting to be discovered, and that should not be your job.
- What happens if you want, or are forced by circumstance, to change your coder? All coders have their own style of coding and your new coder may not like, or even understand, their predecessor’s code. This can pose enormous problems.
- Updating your products is another challenge. You will have different versions of DLLs, and established clients will have to be updated the moment any bugs are discovered (and bugs will definitely be discovered once your clients start testing). So, besides protection, you will also need to have an updating module coded to inform your clients about the latest updates.
- You will have to deal with dozens of support questions from clients asking about protection. This will mean spending valuable time communicating with your tech department to get solutions. Discovering bugs is no easy matter. You’ll have to ask your clients to send you logs and screen shots. Most clients will find this very frustrating, especially when all they really want from you is a product that works.
- Even if you allow for all the points mentioned above, you still won’t have effective protection against crackers. Preventing the most common cracking methods such as disassemblers, decompilers, crackers and debuggers, takes a very long time. This too is a science and it’s totally different from licensing, updating, and authentication. To prevent a cracker you have to think like a cracker, which requires years of experience. It will cost you time, effort and money to protect your DLLs from crackers.
- We could go on!
MQLLock can take care of all this for you. We can provide you with an easy, fast, effective, secure licensing, authentication, and protection solution that will allow you to concentrate on what you do best: MQL and Trading.
The MQLLock solution
You need a product that meets all the requirements listed above. That product is MQLLock (ML). MQLLock’s powerful features make it the most innovative copy protection for Metatrader available on the market today.
Check this Video to see how Submission process works
Introduction into MQLLock Part #1