Hasło cz. 2

0

Witam ponownie.
Gdzie i jak mogę zapisać łańcuch np. z hasłem, żeby nikt swobodnie nie mógł go odczytać ani tymbardziej zmienić. Do szyfrowania napisałem:

#include
#include
#include
#include

void main(void)
{
clrscr();

char szHaslo[] = "r2d2";
int Znak;

ofstream out("data.txt");

for(int I = 0; I

0

Jak robią to firmy produkujące takie oprogramowanie ?

Ciekawe, choć dosyć proste rozwiązanie widziałem Macromedia Dreamweaver.
Mniej więcej na takiej zasadzie, chyba, to działa (pewności nie mam).
Program, który uruchamiamy jest w rzeczywistości tylko formatką z informacjami, że tyle to a tyle dni zostało nam do końca działania wersji testowej. Po naciśnięciu przycisku Try uruchamiany jest drugi plik, który ma zmienione rozszerzenie. Nie jest plikiem exe (nie wiem, czy na czas uruchamiania było zmieniane jego rozszerzenie, czy jakoś inaczej był ładowany do pamięci). Z każdym uruchomieniem program sprawdza oczywiście datę i jeżeli się zmieni, to zapisuje nową. Gdzie? Otóż monitorowałem cały rejestr i pliki w katalogu Windows (wraz z podkatalogami) i... nie znalazłem nic. Przyszło mi do głowy, że w oryginalnym pliku (tym ze zmienioną nazwą) jest jakieś miejsce w pliku (może to być jakiś zasób) w którym jest zapisana data. Być może jest jeszcze jakieś pole do uzupełnienia kontroli parzystości jeżeli takowa jest. Prawdopodobnie jest też gdzieś tam zapisane hasło jakie musi być podane do uruchomienia programu. Oczywiście hasło na pewno musi być zaszyfrowane funkcją jednokierunkową Może to nie być funkcja różnowartościowa (nawet lepiej by było). Dzięki temu program uruchamiający mógłby sprawdzać, czy wpisywane hasło jest poprawne i w razie potrzeby odblokować program oryginalny, zmieniając jego nazwę i usuwając siebie. Oryginalny program nie uruchomiłby się, gdyby np. w rejestrze nie było jakiegoś wpisu, którego dokonuje program uruchamiany. Całkiem fajnym rozwiązaniem byłoby umieszczenie fragmentu kodu oryginalnego programu (np. niektórych niedostępnych funkcji w wersji Trial) w programie uruchamiającym (a raczej w oryginalnym zamazać miejce gdzie taka funkcja ma być jakimiś śmieciami) i przy usuwaniu zabezpieczenia skopiować w oryginalne miejsce.
Zalety rozwiązania:

  • 2 pliki do debugowania
  • funkcja szyfrująca jednostronnie - nie ma możliwości znalezienia oryginalnego hasła na podstawie znajomości zaszyfrowanego
  • trudności w kopiowaniu już programu bez ograniczeń
  • możliwość blokowania funkcji
    Wady:
  • nie ma programu, którego nie da się złamać. Wprawnemu crackerowi nie zajmie wiele czasu złamanie tego (ale może zniechęci)
  • trudności w operowaniu na plikach exe (konieczność znajomości struktury, ograniczenia w dostępie do działająch programów).

1 użytkowników online, w tym zalogowanych: 0, gości: 1