Projekt badawczy Polska-Namibia 2010

W celu przepełnienia stosu polecam zrobić funkcję rekurencyjną bez warunku wyjścia i ja wywołać.
Tylko nie wiem po co, ale to inna sprawa.
m.
--
http://panoramix.ift.uni.wroc.pl/~maq/
Real_Noname, glupoty tym razem napisales :) tzn, stos macierzy w GLu nie ma zadnego zwiazku ze stosem aplikacji i nic by sie nie stalo, OpenGL jedynie w przypadku przepelnienia ustawia flage bledu GL_STACK_OVERFLOW i tyle ;>
A jezeli chodzi o stackoverflow to ty nawet czarami go w windowsie nie wywolasz ( a nawet jezeli to nie bedziesz wiedzial bo windows takich niesamowitych informacji nie raczy pokazywac userowi). Jakbys zaluwazyl to pamiec wirtualna procesu w windows zaczyna sie ok. 3 GiB. Wiec stos prawdopodobnie jest ponizej czyli górna granica stosu to 3GiB ( stos liczony jest od góry ). Sorki ze dopiero teraz ale musialem wziac dziecko na łąki coby sobie na myszki polne popolowalo :].
A teraz do rzeczy : Tobie sie chyba pomylilo o czym my tu w ogole rozmawiamy :). Forst of all - pentium 32bit jest w stanie adresowac do 4GB na stos. Second - rozmiar stosu przydzielony aplikacji != rozmiar maksymalny. Wiec z czym do ludzi ?. Zamiast sie puszyc kodem (BTW - nie ty jeden takie rzeczy piszesz :) ) wystarczy zerknac na spec np kompilatora CL microsoftu. Zobaczysz ze domyslnby commit dla stosu to 1MB. Przekroczenie go wywola wyjatek przepelnienia stosu. Tak jak AoD (alias marcepanowy czopek) powiedzial - wystarczy zwykla rekurencja zeby wywalic program :).
Samples : (sory za tyle ale nie mam za duzo czasu sie bawic z Wami :) ) :
http://www.bf2engine.com/kse/stack.png
I o tym caly czas prawimy a ty zes wyskoczyl jak filip z konopii :P
EDIT :
I nie chodzi o przerwanie 12 - blad stosu - ale o przepelnienie stosu. **O TYM MOWIMY W POSCIE ** (tez dalem Ci w gwiazdkach zebys zobaczyl).
Użytkownik st3tc edytował ten post 30 czerwiec 2005, 20:57
Borland... Bez urazy ale 10 razy mądrzejsi ode mnie go krytykują. Baw się dalej...
Co do błędu to jest to przepełnienie stosu. To, że masz sporo metod nic nie znaczy bo metoda jest "na klasę" a nie na obiekt klasy. No ale skoro swoje 600 wektorów trzymasz na stosie... Zacznij trzymać je na stercie. Powodzenia z zarządzaniem pamięcią :D
HINT: uzyj std::vector albo możesz zwiększyć rozmiar stosu. Tylko że wtedy będzie chodzić u Ciebie a u innych już niekoniecznie. Nie pytaj mnie jak zwiększyć ten rozmiar bo nie pamiętam, ale da sie owszem.
tiaaa
co do borlanda to probowalem kilku kompilatorow i tylko borland mi przypadl do gustu...
co do stosu to nie wiem jak jest zaimplementowana klasa vector czy jest to stos czy stosik czy Mt.Everest. nie za bardzo rozumiem uzyj std::vector - przeciez uzywam klasy vector??
Ale najbardziej interesuje mnie rozwiazanie tego.
Krytyczna luka w SKYPE
SKYPE nie trzeba nikomu przedstawiać. Usługa, która wraz z naśladowcami rewolucjonizuje telefonię, nie jest jednak pozbawiona wad typowych dla programów sieciowych, zwłaszcza w zakresie bezpieczeństwa. Otóż producent poinformował o odkryciu wysoce krytycznej luki, która pozwala - po nakłonieniu użytkownika do wizyty na odpowiednio spreparowanej witrynie - na zdalne wywołanie przepełnienia stosu i włamanie do systemu.
Jest już nowa wersja, oznaczona numerem 1.0.0.100, do której zaleca się uaktualnienie aplikacji. Znajdziecie ją
http://www.skype.com.../skype/windows/
Borland... Bez urazy ale 10 razy mądrzejsi ode mnie go krytykują. Baw się dalej...
Co do błędu to jest to przepełnienie stosu. To, że masz sporo metod nic nie znaczy bo metoda jest "na klasę" a nie na obiekt klasy. No ale skoro swoje 600 wektorów trzymasz na stosie... Zacznij trzymać je na stercie. Powodzenia z zarządzaniem pamięcią :D
HINT: uzyj std::vector albo możesz zwiększyć rozmiar stosu. Tylko że wtedy będzie chodzić u Ciebie a u innych już niekoniecznie. Nie pytaj mnie jak zwiększyć ten rozmiar bo nie pamiętam, ale da sie owszem.
Czesc ludziska
nikt nikgo na siłę do niczego zmuszał nie będzie ani do przynależności do odziału ani do uczestnictwa w spotach i bardzo to sobie cenimy... tą wolność wyboru :)
Ano. Mamy jednego klubowicza z Dolnego Slaska, ktory nie nalezy do Oddzialu. Tak wiec jak napisal Kamil - faktycznie przymusu nie ma i mozna wybrac dowolny Oddzial. Jest skad czerpac wzorce :)
Baranku, temat wysylania SMSow wczoraj skutecznie zwalczylem. Mam tylko problem z wyciekiem pamieci - po 3-4 SMSach procesor zalicza przepelnienie stosu i watchdog robi mu reset. Coz, do czego to doszlo... Dzisiaj bede rozrysowywal skoki miedzy blokami kodu dla procesora jednoukladowego... Ostatni raz robilem takie cos jak pisalem program dla prawdziwego komputera :)
I szczerze mowiac jestem wdzieczny Magdzie, ze nie zalozyla mi jeszcze sprawy rozwodowej za niedziele, ktora przesiedzialem przy klawiaturze :)
Pozdrawiam serdecznie
krawetko bardzo ładnie rozwalil ten problemik
do {
cout << "Wprowadz a i b tak, aby ich suma byla wieksza od zera:\n";
cin >> a;
cin >> b;
} while (a+b <= 0);
PelzaK - zadnej podchwytliwosci - z ciekawosci pytalem.
Czy stos jest w RAMie? Wątpię - jak rozpoczynałem pożar patrzyłem na zużycie pamięci RAM - ledwo 1MB wchłonęło a tu przepełnienie :)
Nie będzie żadnego przepełnienia stosu, bo ta rekurencja jest ogonowa i nie używa stosu ;) Zajdzie przepelnienie stosu. Zaden kompilator C/C++ domyslnie nie optymalizuje rekurencji ogonowej. To o czym piszesz oczywiscie mozna osiagnac, lecz po przez kompilacje kodu z odpowiednimi parametrami, pozwalajacymi kompilatorowi na optymalizacje, na co nie zawsze mozna sobie pozwolic.
Iście przedwojenne gcc, więc niekoniecznie miarodajne. Ogólnie powinno być tak: operatorowi >> nie udaje się wczytać liczby, więc ustawia failbit. Każde kolejne odwołanie do tego strumienia powinno się nie udać - dopóki nie wyczyścimy owego failbit. Jeżeli gcc 2.95 robi inaczej, to widać pora przesiąść się na 3.4 albo 4.0 Oczywiscie jest tak jak napisales, cin ustawia failbit, ale zauwaz ze wtedy zmienna pozostaje niezainicjalizowana. W konsekwencji zawiera w sobie jakies smieci i to czy spelni if'a i nie dojdzie do przepelnienia stosu zalezy juz od tego jakie smieci w niej beda.
Użytkownik krawetko edytował ten post 10 grudzień 2008 - 22:46