I want to check that my program is not modified (cracked).
So I want program to calculate md5 from self exe and compare.
if(GetMD5FromSelf() != "hash")
Application.Exit(); //modified so exit
But when I put hash to string then the md5 of file will get changed.
Is there any way to do this?
These are some ways you could do it,
Option 1
You could store the hash online, This is probably safer because if someone is going to change your program they can also change the hash.
Option 2
You could add 4 bytes and a string to the end of your application and save the checksum there, Beware to not include those in your checksum and only validate your own file size, not the 4 bytes and the string.
code snippet