Akurat powyższe łatwo obejść jeżeli tylko ma się możliwość zmodyfikowania programu.
Dodatkowo prosiłbym o jakiś przykład implementacji prostego algorytmu szyfrowanie/deszyfrowanie klucza/seriala odpowiednim algorytmem.
Serial walidowany po stronie serwera to czarna skrzynka, starcza dowolny z popularnych algorytmów kryptograficznych. Po długosści seriala ew. można wywnioskować jaki algorytm jest używany ale nie co się konkretnie z nim i pozostałymi danymi dzieje.
Ja generuje klucz, wysyłam gosciowi, a on tym samym ale odwrotnym algiem rozkodowuje go i sprawdza poprawność.
Tak działa wiekszość autorskich zabezpieczeń no i crackme oczywiście. Problem jest taki, że skoro algo jest odwracalne to wiedząc jak ma wyglądać serial na wyjściu /budowa/ odwraca się algo i przepuszcza dane o strukturze spełniającej warunki końcowe - tak się keygen'y kodzi.
Jeśli stworzysz już jakieś zabezpieczenie to wrzuć je na forum - jak "przetrzyma" ponad tydzień to znaczy, że jest wystarczająco dobre - wystarczy
Jeżeli ze mną wytrzyma tydzień to znaczy, że jest kiepskie - wyszedłem z formy ;-P. A poważnie to najlepiej zainwestować w komercyjny protector - z taką Themidą mają problemy nawet analitycy w gorszych laboratoriach antywirusowych /lepsi analitycy w kiepskich labach nie siedzą/. Dla przykładu oba polskie antywirusy za bardzo tego protectora nie kochają... Zabawka droga, bardzo droga, z tańszych polecić z czystym sumieniem mogę polskiego PELock'a, jest bardzo mocny i ma świetny system licencyjny /nie widziałem ani jednego złamanego softu nim zabezpieczonego/.
Wracając jeszcze do walidacji po stronie serwera - posiadając skradzioną licencję można wszystkie potrzebne dane z serwera pobrać i odbudowac program bez nich. Pewnym rozwiązaniem byłaby generacja fragmentu kodu programu po stronie serwera z właściwościami zależnymi od ziarna wygenerowanego przez program ale... to tylko pozorna komplikacja, wymaga napisania prostego programu i z głowy.
- wymóg imiennej rejestracji każdej kopii z potwierdzeniem tożsamości np. kopia dowodu (Adobe Student brał legitymację)
Tego wymaga HexRays - plug-in do Interactive Disassemblera, do tego może go kupić jedynie firma, nie osoba prywatna. Mimo wszystko zabawka wyciekła, ma ją spora część ludzi zajmujących się psuciem oprogramowania... ale jak dla mnie to jest niegroźny jeżeli odpowiednio napisze się kod w asm - analiza się wykłada.
- pendrive przypisany do kopii programu (tak jak np. Zuzia)
Czym to się róźni od serial'a czy keyfile'a? O ile nie użyje się własnego drivera do komunikacji z nim, odpowiednio skomplikowanego, to można się banalnie pozbyć - albo zaemulować albo poskładać program do pracy bez tego. Jezeli mówimy o poważnym, komercyjnym kluczu sprzętowym to sprawa ma się już lepiej... ale i tak są ludzie specjalizujący się w łamaniu softu z kluczami sprzętowymi, wcale tak wielkiej pewności to nie daje chociaż to już całkiem sensowne rozwiązanie.
- dodatkowe urządzenie do generowania kluczy jednorazowych do VPNa
- certyfikat pobierany po VPNie z serwera, generowany na bazie klucza jednorazowego i certyfikatu z pena
Wszystko fajnie tylko jest jeden problem - walidacja... program po stronie klienta musi coś sprawdzić, a to można oszukać, bez odpowieniego zabezpieczenia po tej stronie cały ten utrudniający użytkownikowi życie system na nic się nie zda.
Zabezpieczenie da się złamać, ale jak już zostanie złamane to będzie wiadomo gdzie nastąpił przeciek.
Dobre protectory mają możliwość wstawiania znaków wodnych w pliki wykonywalne - puszczony wykradziony soft\licencja ew. złamany nadal ma zachowane markery i można ustalić od kogo pochodzi, oraz zablokować użycie danej licki.
Jeżeli program jest faktycznie tak cenny to radzę zainwestować w protector, jeśli PELock nie spełnia wszystkich wymagań - proponuję się skontaktować z panem Bartoszem Wójcikiem w sprawie ew. jego modyfikacji.
Odpocznę to może coś konkretniej napiszę...
p.s. ciekawi mnie Twoja koncepcja, przedstaw ją jak najszybciej.
p.s. 2. Jak już przy zabezpieczeniach oprogramowania jesteśmy - może za jakiś czas wrzucę na 4p proste crackme, chodzi mi po głowie pewna koncepcja, jeżeli ją zapimlementuje to będziecie mięli zabawę, czegoś takiego jeszcze nie widziałem w sumie :-)