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

[Pytanie] Licencja ?


Rekomendowane odpowiedzi

Opublikowano

Siemanko , jest może poradnik czy coś jak zrobić program który aby uruchomić będzie trzeba podać klucz ?

Jestem zielony w tych sprawach , może inny język ?

sell klucze aktywacyjne cs go za psc i skiny 

Opublikowano

Można wiedzieć w czym?

C++, asm, delphi?

 

Najlepiej zrobić WWW któreby sprawdzało klucz, lub inaczej ale wtedy to byś musiał klucze mieć w programie tzw. Fabrycznie przypisane wtedy byś musiał pisać dla każdego program indywidualnie.

Opublikowano

jaki problem w main przed kodem wstawić sprawdzanie klucza? Zwykły if wystarczy jeżeli jesteś mało kreatywny, jeżeli coś "mądrego" to lepiej zapisać gdzieś klucz w rejestrze żeby nie wymagało podawania klucza za każdym razem.

Opublikowano

nic mi to nie mówi chcę poradnik od początki . Nic nie wiem o tym języku przeczytałem tylko jeden poradnik pt. "Od zera do gier kodera"

sell klucze aktywacyjne cs go za psc i skiny 

Opublikowano

No to chyba bardzo nieuważnie czytałeś ten poradnik bo takie coś można zrobić po kilku pierwszych lekcjach.

 

NAJPROSTSZA wersja na konsolę: (bardzo słabe zabezpieczenie)

string klucz;
cin>>klucz;
if(klucz!="HDAB-893HA-543JK")
{
    cout<<"Zly klucz!";
    return 0;
}
Opublikowano

 

No to chyba bardzo nieuważnie czytałeś ten poradnik bo takie coś można zrobić po kilku pierwszych lekcjach.

 

NAJPROSTSZA wersja na konsolę: (bardzo słabe zabezpieczenie)

string klucz;
cin>>klucz;
if(klucz!="HDAB-893HA-543JK")
{
    cout<<"Zly klucz!";
    return 0;
}

nie lepiej tak :

string klucz;

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

{

cout << " Poprawny klucz ";

)

else

{

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

}



 

nie zapomnij dodac biblioteki < string >

Opublikowano

@radzio2345

 

Najpierw napisz poprawny kod

 

Poza tym nie różni się prawie niczym od powyższego, więc nie wiem co mogłoby być w nim lepszego

Opublikowano

nie lepiej tak :

string klucz;

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

{

cout << " Poprawny klucz ";

)

else

{

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

}



 

nie zapomnij dodac biblioteki < string >

 

No tak, tylko że jak wpiszesz te 12235 to klucz nie będzie poprawny, a wogóle robisz porównanie między stringiem a wartością liczbową? Napisałeś prawie to samo, tylko że jeszcze źle.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

 

No tak, tylko że jak wpiszesz te 12235 to klucz nie będzie poprawny, a wogóle robisz porównanie między stringiem a wartością liczbową? Napisałeś prawie to samo, tylko że jeszcze źle.

zapomnialem dodac " "ale od niego kodu nie rozumiem jesli wpisze ten klucz to mu wyskoczy napis zly klucz .

Opublikowano

zapomnialem dodac " "ale od niego kodu nie rozumiem jesli wpisze ten klucz to mu wyskoczy napis zly klucz .

Nie wyskoczy, bo przejdzie dalej. Blok po ifie wykona się tylko jeśli kod nie będzie prawidłowy

Opublikowano

 

No to chyba bardzo nieuważnie czytałeś ten poradnik bo takie coś można zrobić po kilku pierwszych lekcjach.

 

NAJPROSTSZA wersja na konsolę: (bardzo słabe zabezpieczenie)

string klucz;
cin>>klucz;
if(klucz!="HDAB-893HA-543JK")
{
    cout<<"Zly klucz!";
    return 0;
}

Według tego kodu co ty napisałeś to będą pasowały wszystkie klucze oprócz "HDAB-893HA-543JK". Więc to nie jest żadne zabezpieczenie jak dla mnie.

 

Tutaj masz zrobione część kodu , który jak skończysz go to będzie sprawdzał czy hasło zawiera 10 znaków w moim przykładzie są to znaki (A,B,D,F,H,L,2,5,8,9) i jak będzie składał się z tych znaków to będzie zwracał true , a jeżeli nie to false.

 

 

#include <iostream>
#include <string>

using namespace std;

bool spr_klucz(const char * twoj_klucz)
{
    // wzór = AB5F9-L2D8H
    size_t n[10];
    string klucz = (std::string(twoj_klucz).c_str());
    n[0] = klucz.find("A");
    n[1] = klucz.find("B");
    n[2] = klucz.find("D");
    n[3] = klucz.find("F");
    n[4] = klucz.find("H");
    n[5] = klucz.find("L");
    n[6] = klucz.find("2");
    n[7] = klucz.find("5");
    n[8] = klucz.find("8");
    n[9] = klucz.find("9");

    for(int i = 0; i < 10; i++)
    {
        cout << n[i] << endl;
    }

    return true;
}

int main()
{
    string klucz;

    cout << "Podaj klucz : ";
    cin >> klucz;

    spr_klucz((std::string(klucz)).c_str());

    return 0;
}
Opublikowano

Według tego kodu co ty napisałeś to będą pasowały wszystkie klucze oprócz "HDAB-893HA-543JK". Więc to nie jest żadne zabezpieczenie jak dla mnie.

 

Chyba źle czytasz warunek:

 

if(klucz!="HDAB-893HA-543JK")

 

Jeżeli klucz jest RÓŻNY od tego podanego po prawej stronie, wyświetli komunikat, że klucz jest nieodpowiedni i wyjdzie.

 

PS. Wytłumacz mi to:

string klucz = (std::string(twoj_klucz).c_str());

 

Nie lepiej już przekazać parametr funkcji jako string, a nie pierdolić się z czymś takim?


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Albo wpadłem na lepszy sposób. Możesz napisać algorytm który każdy znak będzie zamieniał na wartość binarną. Przykład :

 

Przed zamianą : ALGORYTM
Po zamianie : 0100 0001 0100 1100 0100 0111 0100 1111 0101 0010 0101 1001 0101 0100 0100 1101


I teraz dodajesz każdą cyfrę do siebie i wynik przypisujesz np. do zmiennej spr_klucz :

 

0100 0001 0100 1100 0100 0111 0100 1111 0101 0010 0101 1001 0101 0100 0100 1101 = 28


I na końcu sprawdzasz czy spr_klucz jest równy 28.

No i najważniejsza rzecz tworzysz kolejny skrypt generujący klucze, które po zliczeniu bitów też będzie wynosiło 28 np.

28 = 0100 0011 0100 0101 0100 1001 0100 1011 0100 1110 0100 1100 0101 0010 0100 1111
Hasło = CEINLRN

 

@up masz rację SYMEG zwracam ci honor, ale to będzie poprawny tylko jeden klucz. Zrobiłem tak bo parametr funkcji przekazywałem jako tablicę char.

Opublikowano

Rzutujesz string na string? Może jestem za głupi na to xD

 

Zrobiłem tak bo parametr funkcji przekazywałem jako tablicę char

 

A później używasz metody c_str(), żeby przekształcić spowrotem w tablicę char? Nie rozumiem cię koleś :D.

@DOWN: pokaż ten temat.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

No wiesz ja dopiero się uczę programować w C++ ale pamiętam że kiedyś miałem jakiś problem z przerzuceniem do funkcji stringu i na cpp0x.pl poradzili mi żebym właśnie tak to zrobił.

Opublikowano

No wiesz ja dopiero się uczę programować w C++ ale pamiętam że kiedyś miałem jakiś problem z przerzuceniem do funkcji stringu i na cpp0x.pl poradzili mi żebym właśnie tak to zrobił.

Jak się uczysz dopiero to zastanów się czy powinieneś udzielać "dobrych rad"...

Autor ponad tydzień nie odpowiada więc albo sobie poradził albo dał sobie spokój.

 

Jeżeli chodzi o złamanie zabezpieczeń programu klucz nie może być w stringu. Jeżeli ktoś jest na tyle pewny swojego algorytmu odczytującego klucz niech stworzy dowolny program z 1 kluczem do niego (program może wypisać tylko tekst nic kreatywnego) i umieści go tutaj .

 

Oczywiście możecie tłumaczyć się, że to tylko proste zabezpieczenie czy coś. Zasada jest jedna - jeżeli zabezpieczenie jest marne rezygnujemy z niego.

Co do tematu z cpp0x chętnie przeczytam, ale gdzieś się zapodział i nie mogę znaleźć...

Opublikowano

Zamiast zastanawiać się nad jakimiś hiper-pro-elo-zajebistymi zabezpieczeniami, to najpierw zastanówcie się czy ktoś te zabezpieczenia będzie próbował łamać... :P

 

Siemanko , jest może poradnik czy coś jak zrobić program który aby uruchomić będzie trzeba podać klucz ?

Jestem zielony w tych sprawach , może inny język ?

 

Jeśli liczysz na to, że na wszystko znajdziesz poradniki które będą prowadziły Cię cały czas za rączkę to się przeliczysz ;)

Trzeba nauczyć korzystać z dokumentacji i trochę samodzielności, bo bez tego daleko nie zajdziesz :)

Opublikowano

Zamiast zastanawiać się nad jakimiś hiper-pro-elo-zajebistymi zabezpieczeniami, to najpierw zastanówcie się czy ktoś te zabezpieczenia będzie próbował łamać... :P

 

 

Jeśli liczysz na to, że na wszystko znajdziesz poradniki które będą prowadziły Cię cały czas za rączkę to się przeliczysz ;)

Trzeba nauczyć korzystać z dokumentacji i trochę samodzielności, bo bez tego daleko nie zajdziesz :)

To na pewno, ale też wskazówki które tu dostanie na pewno mu się przydają ;)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...