🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #1786

Re: Transpozycja tablicy w C & Asembler

#1786
From: Bogdan (bogdro)
Date: Fri, 11 Apr 2008 15:41
41 lines
2842 bytes
Doleś pisze:
> Witam,
> mam pewien problem z transpozycją tablicy w Asemblerze. Napisałem 
> wszystko oprócz samej transpozycji w C. Ten sam program pod Windowsem 
> napisany w Visual Studio działa, ale pod Linuksem już nie chce. 
> Naturalnie nie próbuję składni MASMa przerzucić na Linuksa :) 
> Przepisałem sobie program na wg składni NASMa i oczywiście po kompilacji 
> i asemblacji oraz linkowaniu mam legendarny, kochany błąd "Segmentation 
> Fault". Próbowałem poradzić sobie samemu w związku z czym zrobiłem 
> przyspieszony kurs obsługi GDB (którego jeszcze do dzisiaj nie 
> potrafiłem obsługiwać) i debugowałem program. Zrobiłem "jump transponuj" 
> i dawałem na przemian "stepi", "print /d $rejestr" oraz "x /10i <adres>" 
> i starałem się kontrolować po kawałku jak się wykonuje program. O dziwo 
> sam algorytm wydawał się poprawny, śledziłem zmienne no i nie było 
> naruszenia ochrony pamięci w pętlach kodu. Problem powstał dopiero po 
> instrukcji RET gdy kod programu poszedł sobie hen, hen daleko poza 
> wstawkę w Asemblerze. Jedyne moje skojarzenie było takie, że gdzieś jest 
> nadpisane EIP, ale analizowałem kod i nie mam pojęcia gdzie. Poza tym, 
> czy gdyby nie było naruszenia stosu to nie wywaliłby komunikat "Smashing 
> stack detectet" ? Bo kiedyś takie coś miałem jak próbowałem techniki 
> przepełnienia bufora na własnym programie.

  To mówi o tym, że adres powrotny jest nieprawidłowy. Nie musi być od 
razu zamazany. Pomyśl przez chwilę nad ostatnimi liniami kodu:

	pop ebp
	mov esp, ebp
	ret

i w przyszłości używaj

	leave
	ret

:) Ponoć szybsze, a i trudniej się pomylić.

-- 
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.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID: <fto0rj$180$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <ftm8vq$bl9$1@nemesis.news.neostrada.pl>

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: Transpozycja tablicy w C & Asembler
Date: Fri, 11 Apr 2008 17:41:37 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 41
Message-ID: <fto0rj$180$1@inews.gazeta.pl>
References: <ftm8vq$bl9$1@nemesis.news.neostrada.pl>
NNTP-Posting-Host: gpftor3.privacyfoundation.de
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1207928501 1280 91.121.102.64 (11 Apr 2008 15:41:41 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Fri, 11 Apr 2008 15:41:41 +0000 (UTC)
X-User: bog.d
In-Reply-To: <ftm8vq$bl9$1@nemesis.news.neostrada.pl>
User-Agent: Thunderbird 2.0.0.12 (X11/20080213)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit