Hallo zusammen!
Ich beschäftige mich seit kurzem mit dem Thema des "Stack Smashing".
Vornehmlich natürlich mit dem Klassiker "How to smash the stack for fun and profit" aus dem phrack #49.
Der Artikel stammt aus dem Jahre 1996 und bezieht sich daher auf den gcc2.x, der leider nicht mehr so viel Verwendung findet. Der gcc2.x hat zumindest noch für ein logisches und nachvollziehbares Stack-Layout gesorgt.
Als ich auf einer meiner Boxen mit dem gcc3.x nun Code aus"HTSTSFFAP" (oder auch aus diverser anderer bo-lektüre) nachvollziehen wollte, war ich erstmal ziemlich verdutzt über den Assembly-Output der so alles andere als nachvollziehbar aussah. Dafür hat sich nach etwas Recherche auf Tobias Kleins Seite dann ein spannendes paper gefunden
( http://www.trapkit.de/papers/gcc_stack_layout_v1_20030830.pdf ).
Damit bekommt das Stack-Layout zumindest wieder eine Regelmäßigkeit
Nachdem aber die modernen distris nun den gcc4.x ausliefern, hat sich meine Lage natürlich schon wieder geändert.
Auch da brachte Onkel Google natürlich wieder einiges ans Licht.
(bsp: http://blog.xwings.net/?p=64 & http://gcc.gnu.org/gcc-4.1/changes.html )
Auf einmal heisst es im changelog:
Deshalb frage ich mal in die Runde, ob jemand mehr Information zu dem Thema buffer-overflows speziell auf gcc4.x hat, oder mich in die richtige Richtung stubsen kann. Bis dahin, werde ich meine Babysteps weiter mit dem gcc3.x laufen
so long
nee
Ich beschäftige mich seit kurzem mit dem Thema des "Stack Smashing".
Vornehmlich natürlich mit dem Klassiker "How to smash the stack for fun and profit" aus dem phrack #49.
Der Artikel stammt aus dem Jahre 1996 und bezieht sich daher auf den gcc2.x, der leider nicht mehr so viel Verwendung findet. Der gcc2.x hat zumindest noch für ein logisches und nachvollziehbares Stack-Layout gesorgt.
Als ich auf einer meiner Boxen mit dem gcc3.x nun Code aus"HTSTSFFAP" (oder auch aus diverser anderer bo-lektüre) nachvollziehen wollte, war ich erstmal ziemlich verdutzt über den Assembly-Output der so alles andere als nachvollziehbar aussah. Dafür hat sich nach etwas Recherche auf Tobias Kleins Seite dann ein spannendes paper gefunden
( http://www.trapkit.de/papers/gcc_stack_layout_v1_20030830.pdf ).
Damit bekommt das Stack-Layout zumindest wieder eine Regelmäßigkeit
Nachdem aber die modernen distris nun den gcc4.x ausliefern, hat sich meine Lage natürlich schon wieder geändert.
Auch da brachte Onkel Google natürlich wieder einiges ans Licht.
(bsp: http://blog.xwings.net/?p=64 & http://gcc.gnu.org/gcc-4.1/changes.html )
Auf einmal heisst es im changelog:
Der detection kann man sich größtenteils entziehen (-fno-stack-protector), aber die neuordnung der lokalen Variablen im Stack macht mich kirre. Leider ist da keine Regelmäßigkeit zu erkennen, und docs zu dem Thema wie das nun en detail aussieht, vermisse ich gänzlich (ja, ich kann google bedienen).GCC can now emit code for protecting applications from stack-smashing attacks. The protection is realized by buffer overflow detection and reordering of stack variables to avoid pointer corruption.
Deshalb frage ich mal in die Runde, ob jemand mehr Information zu dem Thema buffer-overflows speziell auf gcc4.x hat, oder mich in die richtige Richtung stubsen kann. Bis dahin, werde ich meine Babysteps weiter mit dem gcc3.x laufen
so long
nee