Witam,
nie znam się na exploitach, crackingu itd. Napisałem prosty program konsolowy, do którego trzeba wpisać hasło, które jest zapisane w zmiennej typu string, czy jest jakaś możliwość obejścia tego hasła? (wiem że jest, ale jaka?)
Witam,
nie znam się na exploitach, crackingu itd. Napisałem prosty program konsolowy, do którego trzeba wpisać hasło, które jest zapisane w zmiennej typu string, czy jest jakaś możliwość obejścia tego hasła? (wiem że jest, ale jaka?)
Oczywiście że jest
Sprawdź gdzie po sprawdzeniu warunku skacze program do dalszej części i zmień skok warunkowy na bezwarunkowy z poziomu asemblera (tudzież języka pośredniego binarki)
No chyba że użyłeś packera lub innych zabaw, ale skoro sam napisałeś, będziesz mógł odwrócić swoje działanie (np wiesz czym rozpakować binarkę czy odszyfrować ją, jakiego loadera użyć etc).
Jeśli nie będziesz mieć pod górke, nigdy nie dojdziesz na szczyt.
Zmienna typu string jest niczym innym jak obszarem w pamięci, więc należy odczytać zawartość tego obszaru, lub nadpisać własną wartością, tak naprawdę hasło powinno być przechowywane jako hash, algorytm hash-ujący zaimplementowany w programie. Zapytanie bardziej pasuje do działu cracking, dla mnie czarna magia, ale strasznie intryguje mnie demo scena, mozna powiedzieć ze prawdziwe kung-fu.
Jak zrobisz EDIT na pliku i wyszukasz to hasło to powinien je znaleźć. Dlatego hasła przechowuje się np: w osobnym pliku w postaci zaszyfrowanej (tzw hash). Algorytm kodujący jak nie jest znany to może być poznany przez experta (pocieszenie, że jest ich niewielu) więc cała siła tkwi w tym jaki zastosujesz.
Hasła łamie się tak, że kodujesz algorytmem potencjalne hasła i porównujesz z haszem. Obecne algorytmy kodujące są na tyle silne, że potrzebują botnetu bo pojedynczy PC nie da sobie rady w rozsądnym czasie - chyba, że będzie to komp kwantowy, ale na chwilę obecną homo sapiens jeszcze nie ogarnia tej technologii do końca xD
Extraterrestrial plant