Es gibt ein paar Möglichkeiten sein Programm vor Debuggern, Disassemblern etc zu schützen, allerdings sind alle diese Schutzmaßnahmen eher unnötig, da sie (mit den richtigen Mitteln und Tools) sehr schnell umgangen werden können. Es ist daher sinnvoller Arbeit in ein gutes System zu Lizensierung zu stecken als in ein Schutzsystem dass dieses Lizensierungssystem schützt...! Generell kann man eigentlich davon ausgehen, dass so ziemlich jedes System geknackt werden kann, aber eine Kombination von polymorphem Code und einer polymorphen Verschlüsselung stellt (richtig implementiert) einen sehr guten Schutz dar... und auch ein Debugger und ein Disassembler bringen da nicht viel...
Generell sollte man beim Design solcher Schutzsysteme immer davon ausgehen, dass der Angreifer bestens über das gesamte System informiert ist. Am besten ist es also sein System so zu designen, dass es auch bei Offenlegung der Sourcen noch bestmöglich geschützt ist. Natürlich ist gerade das bei einem Lizensierungssystem schwer bis unmöglich, aber Systeme deren Sicherheit allein darauf beruhen, dass der Angreifer (hoffentlich) keine Ahnung hat wie das System intern funktioniert sind sehr schnell geknackt..!
_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!