Article View: pl.comp.lang.asm
Article #2427Re: naruszenie ochrony pamieci - dlaczego
From: "Bogdan (bogdro)
Date: Sun, 12 Jun 2011 12:06
Date: Sun, 12 Jun 2011 12:06
87 lines
2119 bytes
2119 bytes
W dniu 12.06.2011 09:37, panki pisze: > On 11 Cze, 20:19, yesma <ye...@false.pl> wrote: >> panki pisze:> witam - probuje troche oswoic sobie assemblera i nie zabardzo wiem >>> gdzie popelnilem b��d w przykladowym kodzie. Bo po uruchomieniu tego >>> programu wypisuje ten napis i potem pisze naruszenie ochryny pamieci. >> >> [...] >> >>> [code] >>> section .text >> >>> global _start >> >>> _start: >> >>> call pisz >> >> jmp short .end >> ;program sie wykladal bo to ponizej wykonywal jako kod> db "qwerty",0; wypisz zmienna >> >> .end: >>> mov eax,1 >>> int 80h >> >>> pisz: >>> push ebp;ebp na stos >>> mov ebp,esp >>> pushfd >>> push esi >>> push eax >> >>> mov esi,[ebp+4] >> >> add esi,2 ;w esi adres napisu. jmp short=+ajty >> >> >> >> >> >> >> >>> mov [tmp],esi >> >>> mov eax, 4 >>> mov ebx,1 >>> mov ecx, [tmp] >>> mov edx,6 >>> int 80h >> >>> pop eax >>> pop esi >>> popfd >>> pop ebp >> >>> ret >> >>> section .data >> >> tmp dd 0 >> >> -- >> Pozdrawiam - Grzechu >> Linux x86_64 > > dzieki zapodpowiedz podzialalo - tylko nie zabardzo rozumiem czemu > tego skoku nie ma w tym przykladzie :http://www.google.com/url? > sa=D&q=http://rudy.mif.pg.gda.pl/~bogdro/linux/linux08.html Bo nie taki by� zamiar. To procedura "pisz" ma sama "przeskoczy�" sobie o tyle bajt�w w prz�d w kodzie programu, ile wynosi�a d�ugo�� napisu (i tak te� robi w oryginale biblioteki). Tak wi�c kod call pisz db "qwerty",0; wypisz zmienna jest, przy tych za�o�eniach, jak najbardziej prawid�owy. Jedynym minusem mo�e by� to, �e czasem pr�ba nawet odczytania danych z sekcji kodu mo�e spowodowa� zamkni�cie programu. Podane przez Ciebie rejestry k�adzie si� na stos, gdy� s� one modyfikowane wewn�trz procedury. -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Message-ID:
<it233s$dc3$1@inews.gazeta.pl>
Path:
polish.pugleaf.net!archive.newsdeef.eu!mbox2nntp-pl.comp.lang.asm.mbox.zip!g2news2.google.com!news2.google.com!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mail
References:
<9b70ec81-f1ce-4857-b679-c0d1498ae9ee@v8g2000yqb.googlegroups.com> <it0bs2$h1j$1@inews.gazeta.pl> <f34d6a50-7fe4-4e64-9d97-f3fad727ccd0@g12g2000yqd.googlegroups.com>