CYFROWY BARON • PROGRAMOWANIE • Zobacz wÄ…tek - HasÅ‚o w programie

Hasło w programie

dział ogólny

Hasło w programie

Nowy postprzez Slynx » poniedziaÅ‚ek, 24 stycznia 2011, 15:21

Potrzebuje mieć w użyciu pewne stałe hasło w programie, które jest potrzebne do wygenerowania pewnych danych. Problem w tym, że takie hasło ustawione jako stały string można dość łatwo wydobyć z programu za pomocą disasemblera lub chyba nawet zwykłego HEX editora. Czy można to jakoś bardziej zabezpieczyć ? Zapisać w jakiejś innej formie czy coś ? Funkcja oczekuje Stringa z hasłem, ale do tego czasu, czyli do konieczności wykorzystania można by je w jakiś sposób ukryć / zaszyfrować / zmienić format, cokolwiek co utrudniłoby wyciągnięcie go z programu. Jakiś pomysł ?
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
PodziÄ™kowaÅ‚ : 11
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: Hasło w programie

Nowy postprzez Cyfrowy Baron » poniedziaÅ‚ek, 24 stycznia 2011, 15:41

Hasło w kodzie programu możesz przecież zaszyfrować, tworzysz np. tablicę typu AnsiString w której umieszczasz wszystkie znaki, a potem tylko pobierasz odpowiednie, np:

KOD text:   •  UKRYJ  •
AnsiString tab[] = {"aAaBcCdD itd..."}
String pass = tab[2] + tab[6] + tab[1] + itd...


W ten sposób nie da się podejrzeć w edytorze Hex'ów hasła, gdyż nie występuje jawnie.

To oczywiście proste rozwiązanie, możesz zastosować bardziej zaawansowane algorytmy.



wydobyć z programu za pomocą disasemblera


Deasembler! To akurat nie jest takie proste, a do c++builder nie ma dobrych Deasembler'ów o ile wogóle jakiś istnieje.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Hasło w programie

Nowy postprzez Slynx » poniedziaÅ‚ek, 24 stycznia 2011, 15:53

W sumie racja, dzięki. Nie przyszło mi to do głowy. Na początek na pewno wystarczy, najwyżej później będę się zastanawiać nad poprawieniem tego.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
PodziÄ™kowaÅ‚ : 11
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox

Re: Hasło w programie

Nowy postprzez Corvis » poniedziaÅ‚ek, 24 stycznia 2011, 23:44

Wrzuciłem tutaj bibliotekę szyfrującą AES256 viewtopic.php?f=5&t=1049. Jak już chcesz trzymać hasło w programie to lepiej je rozrzuć po kodzie i składaj tylko kiedy będzie ci potrzebne.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
PodziÄ™kowaÅ‚ : 80
OtrzymaÅ‚ podziÄ™kowaÅ„: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Hasło w programie

Nowy postprzez Slynx » wtorek, 25 stycznia 2011, 00:43

Ta, i cała masa innych sposobów szyfrowania jest standardowo dostępna w Visualu. Sam sobie sprawdź "gałąź" System::Security::Cryptography. Masz tam wszystko czego potrzeba żeby zabezpieczyć większość "homemade" programów.

A to hasło jak wspomniałem i tak już jest rozdrobnione sposobem Barona, poza tym, to hasło jest jedynie kluczem do wygenerowania właściwego hasła, POZA TYM, trzeba znać też dodatkowo kilka wartości, które są porozrzucane po programie (śmieci, dodatkowy klucz, zastosowany algorytm, liczba szyfrowań hasła), a dopiero potem jak znasz już wszystko możesz wygenerować właściwy klucz, którym to z kolei kodujesz lub dekodujesz dane. + standardowy Hashcode funkcją SHA1. Wątpię by ktoś chciał się w tym babrać ; p Zwłaszcza, że klucze i śmieci (lepiej brzmi "salt") szyfrujące są zbudowane w losowo ciekawy sposób chociaż i tak uważam, że rozkodowanie tego byłoby prostsze niż zrozumienie mojej dziewczyny ; p

Ale i tak dzięki za zainteresowanie. Jak znasz się na sieciach to zapraszam do tematu "HttpWebRequest + Response = logowanie do serwera pocztowego".
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
PodziÄ™kowaÅ‚ : 11
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 16 gości