Warum nicht einfach Teil-Berechnungen auf ein online PHP-Script auslagern, dass diese nur bei gültigem Benutzer-Key und gleicher Maschinen-ID durchführt?
So könnten auch individuell verschiedene (für jeden Kunden mit anderem Key) verschlüsselte Teile des Programms entschlüsselt werden.
Wenn der Code nämlich nicht auf dem eigenen Rechner ist, wird ihn kein Cracker cracken können. Und fehlende Berechnungen manuell wieder einzubauen (wenn man das Programm denn erfolgreich entschlüsselt haben sollte) dürfte praktisch unmöglich sein, besonders wenn man sie nicht kennt.
Auch Serial-Weitergabe ist nicht möglich, da das PHP-Script bei unterschiedlicher Maschinen-ID streikt. Und zum Schutz vor Crackern, die das Programm so modifizieren, dass es immer (unabhängig vom Rechner) die gleiche Maschinen-ID sendet, kann man im PHP-Script einen erlaubte Höchstzahl von Start pro Stunde von unterschiedlichen IPs erlauben (z.B. 5), von der selben
IP dann halt unbegrenzt viele.
Um den Einsatz von Socks-Proxys zu verhindern (um die
IP-Sperre richtig arbeiten zu lassen), könnte man im Programm einen Server einbauen, der dann vom PHP-Script aktiv "angesprochen" wird. Außerdem hat man den Vorteil, dass man selber auffälliges Verhalten beobachten und unterbinden kann.
Einziger Nachteil ist halt die stets notwendige Internetverbindung und der bedarf an PHP-kompatiblem, zuverlässigem Webspace. Für Anwendungen, die sowieso Internet-Zugriff benötigen aber sicher eine sehr sichere Lösung, die für den nötigen Aufwand entschädigen dürfte.
Wenn ich mal über die Ideen-Sammlungsphase hinauskommen sollte, sag ich Bescheid