[C++] Czy takie zabezpieczenie hasłem jest skuteczne?


(pawelek5) #1

Witam,

Czy wprowadzając do programu taki kod zabezpieczę skutecznie "moje dzieło" hasłem?

#include 

#include 

#include 

#include 


void main()

{

	std::cout << "Prosz\251 wprowadzi\206 has\210o programu..." << std::endl;

	std::string strHaslo;

	std::cin >> strHaslo;

	if (strHaslo == "program")

		{

		std::cout << "Dzi\251kuj\251." << std::endl;

		PoHasle();

		}

	else

		{

		std::cout << "Wprowadzone haslo nie jest prawidlowe! Nastapi przerwanie pracy programu." << std::endl;

		}

system("pause");

}

Nie ma możliwości, by jakimś innym sposobem mój program uruchomić niż wpisanie hasła "program"?


(@luke) #2

OllyDBG + podstawowe umiejętności z zakresu obłsugi tego programu => spokojnie ktoś to hasło wyciągnie.

Już lepiej by było wstawić tam nie czysty tekst, tylko np jego hash md5. Chociaż to też się da ominąć, prawdopodobnie nawet zwykłą instrukcją jmp z asm'a... ale fakt faktem będzie to już trudniejsze do zrobienia.


(pawelek5) #3

Chodziło mi o to, czy nie podglądną jakoś tego notatnikiem lub czy nie ma możliwości (jakiegoś triku), która pozwoli ominąć sprawdzanie tego hasła w programie. Jakiegoś zbugowania programu tak jak w sytuacji, gdy program chce liczbę, a ja mu podam literę...

Może nie będą aż tacy ciekawi hasła, żeby je rozszyfrowywać, ale mimo to lepiej by było z tym hashem md5...

Jak wprowadzić taki zaszyfrowany ciąg znaków do kodu C++?


#4

OllyDBG i wszystko ominiesz. Jeśli nawet dasz MD5 - to co za problem zatrzymać program w miejscu podawania hasła i skoczyć tam gdzie powinno być one poprawne?

Tak się robi cracki, a jak widać po świecie gier - wszystko jest do złamania :wink:


(pain3hp) #5

Ciekawy temat. Zobacz

to chyba przykład :slight_smile:

Mam pytanie jak wygląda sprawa przez HTTP np. w skryptach PHP?

Tutaj nas zabezpiecza technologia, serwer www np. Apache, który nie udostępnia źródła skryptu a jedynie zwraca wynik tekstowy, np. HTML. Jest to chyba przewaga aplikacji internetowych nad desktopami, zresztą mało się słyszy by udało się zrobić crack na jakąś grę czy usługę premium działającą w przeglądarce. Mamy za to innego zagrożenia jak np. przechwytywanie sesji.

Twórcy gier już poszli w zabezpieczenia online, gdzie grając musimy się logować na zdalny serwer, jakoś nie słyszałem, że Starcraft II został złamany? Oczywiście na trybie battle.net


(kostek135) #6

@pawelek5

Nie jest. W trakcie procesu kompilacji jeden z jego etapów polega na zbieraniu statycznych stringów do tzw. text segmentu. Można to bez problemu podejrzeć. Dlatego między innymi nie zaleca się tworzyć aplikacji działających na Bazach Danych bez Middleware'a.