Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[.NET] Wersja trial i generowanie kluczy dla aplikacji



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Biblioteki
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
bombell



Dołączył: 04 Sty 2007
Posty: 229

PostWysłany: Czw Gru 03, 2015 3:30 am  OP    Temat postu: [.NET] Wersja trial i generowanie kluczy dla aplikacji Odpowiedz z cytatem Pisownia

Czy możecie polecić jakiś dobry dll/activex dla .net do blokowania aplikacji, zależy mi na takiej funkcjonalności generowanie klucza offline, online, wg określonych pól np. nazwa firmy, nip, generowanie kluczy dla wersji CD
_________________
Pozdrawiam,
Rafał
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Czw Gru 03, 2015 10:03 am      Temat postu: Odpowiedz z cytatem Pisownia

Że się tak spytam - po co? Jeśli Twój program będzie tego warty, to i tak raz dwa powstanie crack (niezależnie od technologii, chociaż .NET tylko sprawę uproszcza). Takie zabiezpieczenia tylko frustrują (bo taki klucz potem łatwo zgubić - łatwiej niż kopię) - prawda jest taka, że Twoim jedynym zabezpieczeniem jest prawo. Jeśli chodzi o zabezpieczenie technologiczne - jedynie względnie bezpieczne to takie, które za każdym razem onlinowo się weryfikują (przy każdym uruchomieniu i wyłączeniu nie pozwalając działać jednocześnie wielu kopiom), ale i te daje się obejść - patrz steam (da się znaleźć crackowane gry na steam).
_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Garf



Dołączył: 25 Maj 2005
Posty: 3585
Skąd: Rzeszów

PostWysłany: Czw Gru 03, 2015 11:19 am      Temat postu: Odpowiedz z cytatem Pisownia

Zabezpieczeniem uciążliwym do obchodzenia są klucze sprzętowe, np. na USB. Ale koszt przygotowania takich, ich obsługa i frustracja użytkowników są wysokie.
_________________
Internet nadal „nic nie rozumie”, żadnego odkrycia, choćby od niego zależał los świata,
ale nadanego w egzotycznym języku, nie odróżni od nieco mniej ważnej wieści,
że u ciotki w placku z jabłkami zrobił się w piekarniku zakalec.
Stanisław Lem
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Czw Gru 03, 2015 11:33 am      Temat postu: Odpowiedz z cytatem Pisownia

Tylko jeśli zabezpieczenie jest bardzo dobrze napisane - najprostsza metoda polega po prostu na zdezasemblowaniu kodu (a mówimy o .NET więc nawet tego za bardzo nie trzeba robić), zdebugowaniu, poszukaniu miejsca gdzie testowanie zabezpieczenia jest wykonywane i skok za tę sekcję (być może z ustawieniem pewnych danych wskazujących na poprawną autoryzację). Na prawdę nie jest łatwo utrudnić wykonanie czegoś takiego, tym bardziej w środowiskach interpretowanych, gdzie kod można nawet nie dezasemblować, ale nawet dekompilować niemal 1:1.

Jedynym faktycznym zabezpieczeniem, jest wykonywanie obliczeń na serwerze zdalnym (na zasadzie takiej, że faktyczna aplikacja siedzi gdzieś na serwerze, a użytkownik otrzymuje jedynie klienta będącego front-endem). Użytkownik takiej aplikacji może otrzymać jednorazowy klucz który pozwala na założenie konta i później loguje się do aplikacji przy każdym jej uruchomieniu. Tyle że nawet pomijając koszty utrzymania (dedykowane chmury nie są aż takie drogie), o tyle uniemożliwiają całkowicie pracę offlinową.

Fakt jest jednak faktem - jeśli aplikacja nie będzie bardzo popularna, nie masz się co martwić (mała szansa, że ktoś ją wrzuci bez powodu do sieci, a jeszcze mniejsza że ktoś ją tam akurat znajdzie). Jeśli będzie bardzo popularna i tak się przed tym nie zabezpieczysz (btw - coraz więcej twórców zdaje sobie już z tego sprawę i np. CDProject udostępnia już swoje gry bez żadnych zabezpieczeń - mogę swoją instalkę Wieśka pobrać i zainstalować tyle razy ile chce, a grać nawet bez połączenia z internetem (jeśli wyłączę updaty, to nawet nie próbuje się łączyć z internetem).

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
bombell



Dołączył: 04 Sty 2007
Posty: 229

PostWysłany: Czw Gru 03, 2015 12:08 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

chyba się nie zrozumieliśmy, chodzi mi o zabezpieczenie programu do sprzedaży licencji czyli user kupuje na stronie www lub w sklepie i tam ma kod wpisuje do programu i program jest odblokowanay
_________________
Pozdrawiam,
Rafał
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Czw Gru 03, 2015 12:23 pm      Temat postu: Odpowiedz z cytatem Pisownia

Doskonale się zrozumieliśmy. I twierdzę, że jeśli to się ma dziać offlinowo, to równie dobrze możesz wrzucić 1M kluczy do sieci. Jeśli user kupuję wersję z CD, na CD niech dostanie aplikację którą instaluje i tyle (być może dostaje dodatkowo kod umożliwiający pobrać to też z sieci - patrz dalej). Jeśli user kupuje kod, niech kod wpisuje się gdzieś na stronie do pobierania i jeśli jest poprawny, umożliwia pobranie aplikacji - a jeszcze lepiej, niech kod umożliwi dodanie aplikacje na stałe do jakiegoś konta, a później z tego konta można pobrać tę aplikację dowolną liczbę razy (tak działa na przykład gog).

Jeśli chcesz wprowadzić licencje stanowiskowe, to twoją jedyną ochroną jest ochrona prawna. Patrz: Windows. Ilu znasz ludzi, którzy korzystają z pirata prywatnie? Dużo? A ile takich którzy korzystają z pirata w firmie? Mniej? Myślisz że to dla tego, że trudniej jest zainstalować pirata w firmie? Bo ja myślę, że dla tego, że firmy boją się konsekwencji prawnych. Nie jesteś w żaden sposób przeprowadzić poprawnej weryfikacji licencji po stronie klienta - technicznie nie ma takiej możliwości (wszystkie rozwiązania zadziałają przez pierwsze N razy, gdzie N jest liczbą przy której zyski ze sprzedaży są pomijalne - rzędu stukilkudziesięciu kopii).

Zamiast zastanawiać się nad tym, jak sprzedawać licencję żeby nikt bez licencji nie odpalił programu, zastanów się, po co komu ta licencja - jeśli na przykład jej uzyskanie umożliwia dostęp do pomocy technicznej, to jest to dużo silniejsze zabezpieczenie niż zabezpiecznie samej aplikacji - choćby dla tego, że konsultant na słuchawce/po drugiej stronie emaila, może przeprowadzić weryfikację po stronie dostawcy softu.

=== EDIT ===

A jeśli koniecznie chcesz udostępnić wersję trial, to niech to będzie osobna aplikacja - pobierasz albo wersję trial, albo całą aplikację (ale aby pobrać drugie, potrzebujesz klucza). Możesz nawet zrobić tak, aby w trialu dało się wpisać klucz aktywujący aplikację, ale żeby to miało jakikolwiek sens, to po wpisaniu klucza w okienko, niech klucz (zaszyfrowany!) niech trafia do serwera weryfikującego, który jeśli klucz się zgadza, w odpowiedzi przysyła linka do pobrania pełnej wersji - aplikacja może nawet automatycznie tę pełną wersję pobrać i podmieć binarkę.

Nawet pomijając to wszystko - jak sobie taką dllkę wyobrażasz? Przecież jeśli byłby w niej kod "zabezpieczajcy", to równie dobrze mogę podmienić tę dllkę na własną - jeśli istniała by biblioteka zabezpieczająca w takiej formie, dawno by powstał generyczny crack, na zasadzie właśnie takiej dllki którą trzeba podmienić. Jeśli chcesz takiego typu zabezpieczenia, to trzeba je zaszyć jakoś bardzo sprytnie w kodzie aplikacji - inaczej może służyć wyłącznie do frustrowania użytkowników.

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Biblioteki Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.03654 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |