Pokaż wyniki 1 do 7 z 7

Temat: CD key / Pass key

  1. #1
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie CD key / Pass key

    Otóż, zaangażowałem się w pewien projekt, a zleceniodawca wymaga stworzenia czegoś w rodzaju CD-key'a.
    Nigdy wczesniej czegoś takiego nie robiłem, wie ktoś jak stworzyć takie klucze a następnie wprowadzić opcję wpisywania takiego podczas instalacji?
    Napisałem to w dziale C/C++, bo piszę całą tą aplikacje w C#, ale przypuszczam, że taki klucz można zrobić w czym innym.

  2. #2
    lem
    lem jest offline
    Zarejestrowany
    Apr 2010
    Postów
    111

    Domyślnie

    cdkey = 1234;
    wpisz cdkey;
    if wpisz = cdkey : ok
    else : blad?

  3. #3
    Zarejestrowany
    Mar 2010
    Postów
    55

    Domyślnie

    Widziałeś kiedyś, żeby jakiś oryginalny program miał jeden klucz? Bo ja nie.
    Nie wiem na jakiej zasadzie jest to zrobione, ale jak załóżmy generuje klucz key-genem to mogę ich mieć setki i każdy będzie prawidłowy.
    Jeden klucz odpada, bo gdy ktoś kupi program, wrzuci go na neta to co za problem dla niego później jeszcze napisać jaki jest klucz?

  4. #4
    Zarejestrowany
    May 2007
    Skąd
    Kraków
    Postów
    371

    Domyślnie

    robi się algorytm sprawdzania klucza... czyli jakieś sumy kontrolne itd...
    trudność w tym taka, żeby takich kluczy trochę było a żeby był trudny do złamania

  5. #5
    lem
    lem jest offline
    Zarejestrowany
    Apr 2010
    Postów
    111

    Domyślnie

    Cytat Napisał Pandemon Zobacz post
    Widziałeś kiedyś, żeby jakiś oryginalny program miał jeden klucz? Bo ja nie.
    Nie wiem na jakiej zasadzie jest to zrobione, ale jak załóżmy generuje klucz key-genem to mogę ich mieć setki i każdy będzie prawidłowy.
    Jeden klucz odpada, bo gdy ktoś kupi program, wrzuci go na neta to co za problem dla niego później jeszcze napisać jaki jest klucz?
    wiec juz amsz odpowiedz;-)
    dodaj do programu funkcje generujaca taki klucz, jesli klucz sie zgadza - instalacja postepuje dalej (dla przykladu).
    wtedy obedzie sie bez wpisywania klucza na sztywno w zrodlo programu.

  6. #6
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Jesli to program ktory ma cos robic przez net to ja bym dal jakis serwer aktywacji - jak Microsoft to robi... bo majac aplikacje mozesz sie pobawic w r3v3rs3 3ngin33ring i masz algorytm generowania kluczy --> zaczynasz generowac wlasne!

    Miej algorytm ale nie miej logiki na kliencie - sprawdzaj wzgledem zaufanego systemu

    Moje 2gr
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  7. #7
    Zarejestrowany
    Jan 2009
    Postów
    230

    Domyślnie

    Warto w generatorze i algorytmie sprawdzania klucza uwikłać serial woluminu partycji systemowej, to unikalna 32 bitowa wartość dla każdego systemu windows.

    Kod:
    //funkcja pobiera numer seryjny
    //wskazanego woluminu (partycji systemowej)
    unsigned char *pobiez_serial(unsigned char *root){
    
    	//jesli wskaznik patchu bledny
    	if(!root) return 0;
    
    	//alokujemy drobny buffor na stercie
    	unsigned char *buffer = (unsigned char *)malloc(BUFFSIZE);
    
    	//jesli blednie otrzymany buffor
    	if(!buffer) return 0;
    	
    	//zmienna 32 bitowa dla seriala
    	//w postaci bajtowej
    	unsigned long serial;
    
    	//pobieramy serial do zmiennej 32 bitowej
    	GetVolumeInformationA((LPCTSTR)root,NULL,(DWORD)NULL,
    	(LPDWORD)&serial,NULL,NULL,NULL,(DWORD)NULL);
    
    	//zmieniamy podstawe binarnego seriala
    	//do postaci ciagu alfanumerycznego hex
    	snprintf(buffer,BUFFSIZE,"%x",serial);
    
    	//zwracamy sterte gdzie istnieje serial
    	return buffer;
    
    }


Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52