Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Licencja


Rekomendowane odpowiedzi

Opublikowano

Witam. Chce zrobic licence key przy moim programie ;)

Znalazlem teki kod: (Ale to jest if..)

string klucz;

cin >> klucz;
if( klucz == 12235)

{

cout << " Poprawny klucz ";

)

else

{

cout << " zły klucz - wpisz poprawny " ;

}

Chodzi mi o to aby program pobieral licencje z MySQL :) Sam tego nie moge ogarnac ;)

Opublikowano
Opublikowano

Ja słyszałem, że tego typu rzeczy się robi poprzez opisanie jakiejś figury geometrycznej, a później sprawdzić czy figura jest poprawna np:

bok a     | bok b    | bok c  | bok d

22ASDF-222FDA-234GD-HNB45C

 

teraz sprawdzam czy to kwadrat? albo czy kąty wynoszą 20/160/90/90 itp... (nieskończenie wiele pomysłów na figurę)

oraz nieskończenie wiele CD-keyów (tz liczba jest skończona, ale bardzo duża :P)

 

Znając wzór figury robisz generator i generujesz klucze

Teoretycznie nie ma szans, żeby ktoś to złamał

Opublikowano

Na klucz nie patrzymy :) Bo tak przykladowo dalem :)

Mam jeszcze jeden problem ;/

    DeleteFileA("C:\\Users\\Patryk\\Desktop\\test.txt");

Jak zrobic aby wczytywalo odrazu nazwe uzytkownika? Bo tak jak ja pisze to tylko mi bd sie usuwal plik ;/

Opublikowano

Ja słyszałem, że tego typu rzeczy się robi poprzez opisanie jakiejś figury geometrycznej, a później sprawdzić czy figura jest poprawna np:

bok a     | bok b    | bok c  | bok d

22ASDF-222FDA-234GD-HNB45C

 

teraz sprawdzam czy to kwadrat? albo czy kąty wynoszą 20/160/90/90 itp... (nieskończenie wiele pomysłów na figurę)

oraz nieskończenie wiele CD-keyów (tz liczba jest skończona, ale bardzo duża :P)

 

Znając wzór figury robisz generator i generujesz klucze

Teoretycznie nie ma szans, żeby ktoś to złamał

 

po co lamac, robisz patcha, je zamieniasz na jne i c**j, tak sie tez crackuje biedne programy

 

 

Witam. Chce zrobic licence key przy moim programie ;)

Znalazlem teki kod: (Ale to jest if..)

string klucz;

cin >> klucz;
if( klucz == 12235)

{

cout << " Poprawny klucz ";

)

else

{

cout << " zły klucz - wpisz poprawny " ;

}

Chodzi mi o to aby program pobieral licencje z MySQL :) Sam tego nie moge ogarnac ;)

pobieranie z mysql, z http etc nie jest wcale bezpieczne ani nic, bo:

- banalnie latwo sie przechwytuje pakiety

- musisz zaszyfrowac pakiet czyms mocnym, zeby byl 'bezpieczny'

- zawsze mozna spatchowac aplikacje klienta wysylajaca pakiet

 

i sprawdzania keya nie robisz

 

if(key == '123456')

 

tylko

 

 

if(checkKey('123456'))
Opublikowano

Temat wydaje się być bardzo ciekawym, sam jestem ciekaw jak takie rzeczy się robi :P...

Mam pomysła, że nawet nie trzeba szyfrować, a przechwytywanie nic nie da.

 

aplikacja wysyła jawnie na serwer login+hasło

serwer haszuje np: MD5(login+haslo+sol) i wysyła wynik do klienta   (jeśli login i hasło jest na liście to używana jest dobra sól, a jak nie to serwer milczy i ban IP na 5 minut)

klient wykonuje te same obliczenia i sprawdza czy hasz zrobiony przez aplikacje jest taki sam jak otrzymany z serwera

Opublikowano

aplikacja wysyła jawnie na serwer login+hasło

serwer haszuje np: MD5(login+haslo+sol) i wysyła wynik do klienta

klient wykonuje te same obliczenia i sprawdza czy hasz zrobiony przez aplikacje jest taki sam jak otrzymany z serwera

Wiesz, że zawsze będzie ten sam?

Opublikowano

Wpadlem na niesamowity pomysl! Napisze strone www w PHP panel rejestracji i bd wysylalo np informacje ze 1 to aktywowany a 0 to nie :) I tylko bd trzeba sie zalogowac do programu aby moc z niego kozystac :)

Opublikowano

Temat wydaje się być bardzo ciekawym, sam jestem ciekaw jak takie rzeczy się robi :P...

Mam pomysła, że nawet nie trzeba szyfrować, a przechwytywanie nic nie da.

 

aplikacja wysyła jawnie na serwer login+hasło

serwer haszuje np: MD5(login+haslo+sol) i wysyła wynik do klienta   (jeśli login i hasło jest na liście to używana jest dobra sól, a jak nie to serwer milczy i ban IP na 5 minut)

klient wykonuje te same obliczenia i sprawdza czy hasz zrobiony przez aplikacje jest taki sam jak otrzymany z serwera

 

 

Wpadlem na niesamowity pomysl! Napisze strone www w PHP panel rejestracji i bd wysylalo np informacje ze 1 to aktywowany a 0 to nie :) I tylko bd trzeba sie zalogowac do programu aby moc z niego kozystac :)

 

dobra dobra, ale jesli program nie bedzie uzywal funkcji sieciowych, co za problem wynopowac po prostu to? przejecahc poza wasza funkcje i uzywac kodu jak sie chce? to ma sens jedynie jesli bedzie pobierac zawsze klienta po zalogowaniu/wpisaniu hasla, ale i tka da sie go scrackowac jak juz pobierze, tzn ktos kupi jedna kopie i scrackuje sobie i wrzuci na torrenty

ew mozesz sprawdzac odpowiedz serwera czy ktos jest zalogowany  wkazdej funkcji etc

Opublikowano

Czyli się nie da tego zabezpieczyć?

 

@craft http://www.zedwood.com/article/cpp-md5-function hashowanie będzie miało sens, jeśli licencje będą miały harakter dożywotni, a nie np tylko na 30 dni...

ale chyba jednak lepiej będzie nie haszować tylko zaszyfrować asymetrycznie

klient szyfruje kluczem publicznym serwera -> wysylanie na serwer -> serwer odbiera rozszyfrowuje kluczem prywatnym serwera

serwer przetwarza sprawdza czy login i haslo sie zgadza...

serwer szyfruje wiadomość  kluczem publicznym klienta -> wysyla do klienta -> kielnt odszyfrowuje swoim kluczem prywantym

coś w ten desen

Opublikowano

klient szyfruje kluczem publicznym serwera -> wysylanie na serwer -> serwer odbiera rozszyfrowuje kluczem prywatnym serwera

serwer przetwarza sprawdza czy login i haslo sie zgadza...

serwer szyfruje wiadomość  kluczem publicznym klienta -> wysyla do klienta -> kielnt odszyfrowuje swoim kluczem prywantym

coś w ten desen

 

tylko po jaką cholerę

Opublikowano

System licencji najlepiej zrobić niskopoziomowy, powiązać np. deszyfrowanie jakichś funkcji czy niezbędnych do działania danych przy pomocy odpowiedniego klucza otrzymanego z serwera po uprzedniej autoryzacji. Taki kod autoryzacji powinien być w jakiś sposób zabezpieczony poprzez wszelkiego rodzaju obfuskacje, mutacje, wirtualizacje i podobne. Każdy taki kawałek kodu dla każdej osobnej licencji powinien mieć swoje unikatowe klucze deszyfrujące. Sam algorytm zajmujący się odtwarzaniem ich powinien także być zabezpieczony (niekoniecznie sam główny algorytm ale np. oprócz AES'a czy innego blowfisha [heheszki, @blowfish :D], DESa powinno opracować się dodatkowy system, np. śmieci pomiędzy deszyfrowanymi danymi czy pomieszane kawałki, itp.). Taki system jest w miarę bezpieczny a często aktualizowany z przemyślanymi zasadami działania potrafi nie jednego crackera przyprawić o ból głowy :P Poza tym pisząc system licencji należy przyjąć do wiadomości, że nie istnieje możliwość w pełni zabezpieczenia aplikacji. Zawsze się jakiś uparciuch znajdzie, który dla chociażby sportu rozgryzie algorytm i podzieli się z ludźmi :P
Można też zrobić bezpieczniejszy system licencji, który uwzględni opracowanie urządzenia, które będzie wykonywać część funkcjonalności lub przechowywać klucze/dane wymagane do odpalenia. Ale to takie już na prawdę bezpieczne. Do tego dodać autoryzację sieciową i zabawa w cracking staje się interesująca ^^

YOU MUST DIE

- Ganon, Koridai

Opublikowano

Rozwiązania masz już gotowe, płatne i bezpłatne (z czego pierwszego więcej). Zawsze możesz napisać własny system licencji z wymienionych już pomysłów (niekoniecznie moich) i zabezpieczyć jakimś protektorem (tego też masz płatnych i bezpłatnych całą masę).

YOU MUST DIE

- Ganon, Koridai

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...