Visual C# — zabezpieczenie programu

Visual C# — zabezpieczenie programu
Razem głosów: 15 co stanowi: 92% całości.

imgres

 

Jak obiecałem tak też zaczynamy kontynuować szybie poradniki, sztuczki i kruczki  w naszym Visual C#. Tym razem zajmiemy się problemem upilnowania naszej wersji programu. Zwykle gdy napiszemy program chcemy by działał jakiś czas i umożliwiał odblokowanie go kodem. I tym właśnie zajmiemy się w tym wpisie.

Napiszemy więc prosty programik wyświetlający cokolwiek bo do celu prezentacji nic więcej nam nie potrzeba. Nasz testowy program nie robi w sumie nic a wygląda tak:

Przechwytywanie

Jak widać nic szczególnego. Sensem jest zabezpieczenie czyli plik dll, który powstał na tą okazję. Nasza biblioteka w której zawarłem algorytm ma za zadanie zabezpieczyć nasz program w taki sposób by :

  • Program informował o działaniu w trybie testowym  i namawiał  na wpisanie  klucza:

Przechwytywanie

 

Kliknięcie na NIE  spowoduje uruchomienie programu i jego działanie bez                            przeszkód, ale ponowne uruchomienie spowoduje informację  j/w, a licznik dni                    będzie codziennie  zmniejszany o jeden .  Kliknięcie na TAK spowoduje przejście do  okna wpisywania KLUCZA, którego podanie spowoduje wyłączenie komunikatów.

Przechwytywanie

 

Oczywiście kliknięcie OK potwierdza klucz, a Anuluj przechodzi do trybu normalnego.

Jednak program zabezpieczający polegający na czasowej aktywacji musi być odporny na cofanie daty co też jest w bibliotece zaimplementowane i wykrycie takiego faktu powoduje wyświetlenie komunikatu o wygaśnięciu programu i konieczności wpisania klucza:

Przechwytywanie

 

W tym wypadku możemy tylko podać klucz aktywujący, a jeśli go nie mamy to program nawet po przywróceniu daty nie zostanie już uruchomiony.

Zabezpieczenie to jest stosunkowo proste i bazuje na jednorazowych kluczach ustalanych dla kopi programu odrębnie. Niema też żadnej kontroli numerów kluczy, który może być dowolnym ciągiem znaków jak:

  • 1111-2222-3333-4444
  • alamakotakotmaprzechlapane

czyli cokolwiek wymyślicie sobie. Bibliotekę tą możecie pobrać z załącznika do tego textu, ale zajmijmy się teraz jej używaniem we własnych programach. Jest to banalnie proste, pamiętacie nasz program nic nie robiący z początku wpisu ?? Przechodzimy do niego i dodajemy refefencje naszej biblioteki:

Przechwytywanie

Co czynimy przez kliknięcie prawym klawiszem na  folderze References , a następnie wybieramy  Add References  i w oknie wybieramy naszą bibliotekę:

Przechwytywanie

 

i klikamy OK. Od tej chwili nasza biblioteka jest dołączana do programu i możemy używać zawartych w niej funkcji.

W tym celu otwieramy plik Program.cs który wygląda następująco:

gdzie dodajemy :

Dzięki czemu mamy dostęp do funkcji zawartych w pliku SunSPTC.dll, a następnie :

 

przed uruchomieniem naszego programu jak widać nie ma tu nic specjalnego :)

String abc = jest pomocniczy do generowania klucza przez funkcję Secure() możecie  go zmieniać jak wam pasuje :)

Nasz kod odblokowujący natomiast jest wpisany w zmiennej typu bool o nazwie logic, którym jest w tym wypadku do testów ciąg :  1111-2222-3333-4444  wynik operacji na obu stringach jeśli jest prawdziwy spowoduje odblokowanie programu, jeśli nie  dostaniemy monit z rejestru o jego nieprawidłowości pobierany z MS.core.

Tak żeby nie było nasz plik  Program.cs  powinien w całości wyglądać tak:

I w zasadzie to już wszystko, jest to banalne rozwiązanie ograniczające działanie programu przez 15 dni z możliwością wyłączenia blokady. Mam nadzieję że się przyda komuś ot tak dla hecy w sumie gdyż w celach innych, polecam stosowanie własnych algorytmów szyfrujących lub rozwiązań z generatorami kodów firm, które się w tym specjalizują. To tylko zabawa i myślę że złamanie kodu nie stanowiło by problemu jednak w celach poznawczych jak najbardziej może być stosowane:)

Miłego zabezpieczania  :)

 

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay