PDA

View Full Version : Protecting you Application from crackers


retro
07-03-2009, 03:38 PM
Hello, I thought this might be the best place to ask this question. I am selling my application I have developed, and was wondering the best way to protect it from reverse engineers (such as yourselves lol). I am not looking for a 100% solution as there is none, but just the next best thing to that.

What packers would you suggest? I currently lock my application to specific Hardware ID's of users that purchase, would having their ID as a variable in the code or their ID being read from a file on my FTP be more secure? Currently if an ID is not found then the program will just exit via ExitProcess(1).

Currently I use themida, it probably sucks I am not sure, you guys would know more than me. And it makes my program 10 times larger, and 2 times slower which is a bummer.

Anyways hopefully you guys could give me some insight on this. Thanks :)

PS: Sorry if this is the wrong forum.

Git
07-04-2009, 08:58 AM
Actually, Themida is one of the harder ones. Any of the protectors that use Virtual Machine techniques are quite difficult. The downside is that they slow your application considerably, so they should be used wisely. The best is VMProtect from www.vmprotect.ru, but expect 20x bigger and 5x slower if you just apply it to your whole program. Better is to integrate it at source code level. You can put pragma-like keywords around certain parts of code, so you protect the important parts but leave the speed critical parts as native.

Make sure you have a good understanding of the difference between Protection and Licensing, you don't stand a chance of achieving either if you don't know the difference.

Have you disassembled your final exe. I think there is a good chance that you ExitProcess() could be overridden with a 1 byte change from a JNZ to JMP or similar. There are some good examples that you should read on http://www.woodmann.com/crackz/Tutorials/Protect.htm#protectionadvice

> PS: Sorry if this is the wrong forum

No, it is exactly the right forum. Our interest is in Reverse Engineering, not "Warez".

Git

retro
07-04-2009, 04:09 PM
Thanks, Ill try VMProtect out.

retro
08-04-2009, 09:30 PM
Ive got VM Protect, but I cant figure out how to protect only certain areas.. I run VM protect and i just load my file into it, after its been generated to a dll by the compiler. So i cant integreate keywords around the functions.. Are there certain default keywords?

BfoX
08-05-2009, 01:52 AM
use .map file or VMProtectStart/VMProtectEnd instrucions...
just read the help about theme

Git
08-05-2009, 06:38 AM
retro - please don't quote all of the original message. Clickk on the far right icon (feather) and it activates the Quick Reply window below. You can then selectively quote by copying and pasing single lines, highligh it and click on Quote button in qucik reply toolbar.

Git

retro
08-05-2009, 12:49 PM
Sry.

BfoX where is this .map file. I have downloaded the cracked version of the software. I start it and load my .dll and it shows 1 function "Entry Point" however I have at least 70 or 80 functions in the application.

Git
08-05-2009, 02:24 PM
If you are using Visual Studio, go to Project properties, Linker section, and click on Debugging. Change Generate Map File from No to Yes and give it a name in Map File Name. In Delphi, it is in Project options.

Git