Article View: pl.comp.lang.asm
Article #2478Re: naruszenie ochrony pamieci - dlaczego
From: Bogdan (bogdro)
Date: Sun, 12 Jun 2011 10:06
Date: Sun, 12 Jun 2011 10:06
86 lines
3206 bytes
3206 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==2bajty >> >> >> >> >> >> >> >>> 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
Technical Details
Message-ID:
<it233s$dc3$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<9b70ec81-f1ce-4857-b679-c0d1498ae9ee@v8g2000yqb.googlegroups.com> <it0bs2$h1j$1@inews.gazeta.pl> <f34d6a50-7fe4-4e64-9d97-f3fad727ccd0@g12g2000yqd.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: naruszenie ochrony pamieci - dlaczego Date: Sun, 12 Jun 2011 12:06:48 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 86 Message-ID: <it233s$dc3$1@inews.gazeta.pl> References: <9b70ec81-f1ce-4857-b679-c0d1498ae9ee@v8g2000yqb.googlegroups.com> <it0bs2$h1j$1@inews.gazeta.pl> <f34d6a50-7fe4-4e64-9d97-f3fad727ccd0@g12g2000yqd.googlegroups.com> NNTP-Posting-Host: rudy.mif.pg.gda.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1307873212 13699 153.19.42.16 (12 Jun 2011 10:06:52 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Sun, 12 Jun 2011 10:06:52 +0000 (UTC) X-User: bog.d In-Reply-To: <f34d6a50-7fe4-4e64-9d97-f3fad727ccd0@g12g2000yqd.googlegroups.com> User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit