Bei den DLLs gibt's auch noch ein anderes Problem, wenn es jemand schaft eine andere
DL zu erzeugen, welche mindestens die selben Schnittstellen (Extenals) hat, wie das Original, dann kann er seine
DLL ganz einfach in dein Programm einschleusen, anstatt deiner
DLL.
Oder seine
DLL zwischen dein Programm und deine
DLL zwischenschalten.
Die Namen der Externals bekommt man ja leicht raus ... fehlen halt nur noch die nötigen Parameter.
Es wäre also auch unter Umständen auch nötig eine Art Zertifizierung einzubauen, womit du rausbekommst, ob es auch eine deiner DLLs ist.
So, nun nochmal zum Problem:
es wäre wohl am "Einfachsten", wenn du dein Programm so schützt, daß es nur bei "einem" Kunden läuft und bei diesem Schutz mit eingebaut ist, welche DLLs damit ebenfalls nutzbar sind.
Also bestimmte Registrierungsdaten = bestimmte DLLs.
Somit kann dann zwar jemand sich eine
DLL illegal besorgen, diese aber mit seinem Programm nicht nutzen, wenn er nicht die nötige Registrierung besitzt.
Und was das Schützen des Programms angeht ... wenn ddieses nicht übermäßig teuer is oder begehrt ist, dann laß es ... der Aufwand für einen ausreichenden Antihacker/-crackerschutz sollte den Nutzen nicht übersteigen (mehr zu diesem Thema findest du im Forum).