Ukrywanie danych w programie

0

Witam
Czy zna ktoś dobry sposób na ukrycie danych w programie? Chciałbym na przykład zapisać w programie login i hasło do serwera FTP i nie wiem jak uchronić je przed ewentualnymi wścibskimi niepowołanymi osobami ;p Normalnie zapisane dane można odczytać wprost z pliku binarnego, a to potrafią zrobić nawet średnio-zaawansowani użytkownicy komputera...

0

"dobrych sposobów" jest cała masa :D
Ciocia Wiki coś o tym wie ;)
http://pl.wikipedia.org/wiki/Szyfrowanie

0

OK, zaszyfruje sobie te dane ale i tak muszę klucz umieścić w programie... Na dodatek po rozszyfrowaniu dane w pamięci programu będą widoczne gołym okiem ;/ Myślałem, że istnieje lepszy sposób :P

0

Na jaki sposób liczyłeś skoro i tak musisz wysłać odszyfrowany login i hasło do FTP?

0

Gdzieś obiło mi się o uszy coś takiego jak anty-deasemblacja programów ale nic nie mogę wgooglować... W sumie to CyberKid masz rację, i tak nawet jak zaszyfruję te hasła to będę musiał je rozszyfrować, a to praktycznie daje taki sam efekt jakbym nie szyfrował haseł ;/

0

a to potrafią zrobić nawet średnio-zaawansowani użytkownicy komputera

Niekoniecznie .
Proste rozwiązanie to exe pakery (UPX , Aspack , itp) .
Można nimi spakować zarówno .exe jak i biblioteki z których korzysta program .
( Nie chroni to danych jeśli użyjemy np. zrzutu programu z pamięci ).
W pliku binarnym natomiast nie będzie ich widać .

Możesz dane które chcesz ukryć i operacje przesyłania przenieść do oddzielnej biblioteki
umieszczonej w katalogu innym niż program . Deszyfrować dane tylko na czas
wykonania operacji przez bibliotekę ( lub nie , jeśli nie chronisz biblioteki ) .
W takim przypadku dane które chcesz ukryć nie znajdują się już w .exe .
To utrudni ( nie tylko napisanie programu ) wymaga śledzenia
takiej aplikacji pod debugerem (asembler) aby coś z niej wyciągnąć .
Zapewniam że średnio-zaawansowani użytkownicy nie będą mieli ochoty aby spędzić
masy czasu na grzebaniu się w kodzie o ile zorjentują się gdzie on w ogóle jest .
Dodam jeszcze że biblioteka ładowana przez program wcale nie musi nazywać się
jakaśtam.dll ( o ile chodzi o Win ) może się nazywać np. 'opis.pdf' ;-) .
Ciekawym rozwiązaniem stosowanym przez niektóre instalatory (wymagające podania numeru
rejstracyjnego ) jest np. tworzenie biblioteki w sposób tymczasowy wypakowywanej
z .exe w czasie działania instalatora ( np.do temp ) . W niej następuje rozpoznanie poprawności
klucza i dalsza instalacja . Następnie jest ona usuwana .
Tak samo twój program może zawierać spakowany kod który jest umieszczany w innym
pliku po odpaleniu programu i uruchamiany , a w samym exe może nie być nic więcej ciekawego.
Takie rozwiązanie komplikuje napisanie Cracka do instalatora i to poważnie [green] .
Jasne że nie istnieją idealne rozwiązania , sposobem na wścibskich są rozwiązania nietypowe
różne od oklepanych typu .exe klucz hasło lub adres zaszyfrowane w pliku.
Co nie zmienia faktu że wymyśleć coś oryginalnego jest trudno .

ale i tak muszę klucz umieścić w programie

Nie musisz .

0

Co do UPX to jest to słabe rozwiązanie. Po pierwsze jest on otwarty a po drugie umożliwia rozpakowanie pliku w bardzo prosty sposób ;/. Natomiast tymczasowa biblioteka deszyfrująca... hmm... bardzo ciekawy sposób muszę przyznać ;)

0

nie ma dobrego sposobu na zapisanie danych w programie w taki sposob aby nie mozna ich bylo odczytac, pod warunkiem, ze taki program mialby sie normalnie uruchamiac np na innych komputerach, najprostszym sposobem, jest zaszyfrowanie kodu lub samych danych (login&pass) i np deszyfrowanie ich przu uruchamianiu appsa, w tym wypadku potrzebny jest klucz do odszyfrowania, problem: jak ktos juz go raz odzyska, np przez twoja nieuwage, to przepadles. Rozwiazanie: stworzenie czegos w rodzaju license managera. A tak btw. na co ci sie zda przechowywanie takich danych w programie, nie latwiej umiescic ich gdzies na serwerze..?!

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