If you read some topics here on this forum some people are saying they are packing/protecting there apps and dll's so that noobs don't steal there shit. And yes I know the crazy theory about packing a dll makes it "Undetected" which is not true(Using a protector could undetect the dll due to code modifications). I just wanted to suggest an idea for tagging your apps and dll's so you know if someone has ripped your shit. If the Noob is smart enough to decrypt the "tag" which would be an array of bytes, then they are smart enough to make there own hacks and wouldn't bother ripping yours.
//Edit
Another way to tag your shit and make unworkable if messed with is the the hack address's and byte patches, an example would be say you have an array of bytes $C0,$75,$90 then you took your name "Departure" for each character of your name you could multiple, add, subtract, modulas it with each of the bytes in your array. This would give you an encrypted array which your name is the key to decrypt it, then when writting these bytes to memory you decrypt by passing your name("Tag") as the key. this will do 2 jobs, 1st if someone ripps your addresses it will never work unless they decrypted it, and second if you read the encrypted byte array the only key that will decrypt it is your "Tag" which means you have tagged your dll in such away that unless the noob works out the key and the encryption there is no way for them to steal your shit, and if they did it wouldn't work.