ࡱ; :  !"#$%&'()*+,-./0123456789<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry  !r\V)䰱 Pr?sentationStarImpress 5.0@Gs5~TSfxDocumentInfo  1L|1 1p 1XlD Info 0 Info 1 Info 2 Info 3 1L|1Bk<44Standard LIBIMBEDDED LIBIMBEDDED1,,,1SBX sb Z Standard StarBASICSBX ARSBX AR SBX AR2c%bqqOh+'0 h t (XOutdevItemPool 1   )     &'()*+,-./06789:;UVWXYZ[\]c !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefd%0&'@qUXX'[@ Gestrichelt 1XX,'F@2 XXXX&X.' @ZRX'@ Arrow ArrowddXXXS'@ ArrowddArrow}}Pfeil}} Linienende 1}} Linienende 2}} Linienende 3}} Linienende 4}} Linienende 5}}  Linienende 6}}  Linienende 7}}  Linienende 8}}  Linienende 9}}  Linienende 10}} Linienende 11}} Linienende 12}} Linienende 13}} Linienende 14}} Linienende 15}} Linienende 16}}XXX_XXX/XyXX XWXXX5XXXX`XXXA'F@* , [XXXXX&X.'F@| , )&XXXX&X.'@ XX'@ X@ X@ X@1 X@O X@m X@ X@ X'@ VXX'b@5 ̙XX X2XD'6@ 22ddX'(@ X'"@BMvv(@@SD@x^SI 0 s\ z 46ZBn8x)1̔.<觔B+̄ ޢ40:prf |q]~+H~|WFMbP@aoCē[ȡz6~U{߃XFXNXVX^XfXnXvX~XXKK@?|XX(L @]MM @sNN @OO @PP @QQ@*XRR@XSS"@Np0XXTT @;UU@[NXXVV@(QXXWW @XX @YY @ZZ @[[ @\\ @]] @'^^ @=__@[Xaa@yXbb@Xcc@Xdd@Xee@Xgg @ hh @!ii @7jj @Mkk @cll @ymm @nn @oo @pp @qq @rr @ss @tt @)uu @?vv @Uww @kxx @yy @"R@"m'"!$ @'' '' '''''''''' '''''''''' ' #"B''''''''''''' ' '''''' '''' '''''' '''' '''''' '''' '''''' '''''''''''''' ''! ''''''''''XXX X&X,X2X8X>XDXVXhXX@XLXRXXXjXpXXXXXXX*XxXXX&X8XJX\XnX@''"'!'$' '@''! '' #' "' B'' !XX X&X,X8XDXPX\XnXtXXXX** @ I"! a$ # " cXXXX X&X,X2X8X>XDXJXP77@I "! \ +;(,,--..//00112233445566$  # " ^ +;(,,--..//XXXX X&X,X2X8XXXXXXHH@!!+'+'"!$`' '  # b'''XXX X,X2X8X>XDXJXVXbXhXnXtXzXff,L@, &JJKKJJKKJJKKQQVVJJKKJJKK JJKKJJKKQQVVJJKK JJ JJ JJKKSSUUVV QQVV JJKKSSUUVV JJKKSSUUVVJJ KKSSUUVVQQVV__aabbccddeeJJ KKSSUUVVJJ JJKKRRJJ KKSSUUVVJJ KKRRJJKKSSUUVVJJKKSSUUVVJJKKSSUUVVJJKKJJKKJJKK"JJ!JJ"JJKKJJ !JJKKSSUUVV QQVV!JJKKSSUUVV"JJKKSSUUVV#JJ KKSSUUVV$QQVV__%JJ KKSSUUVV&JJ KKSSUUVV'JJKKRR(JJ KKRR)JJKKSSUUVV*JJKKSSUUVV+JJKKSSUUVVXX X2XPXbXtXXXXXXXX(XLXpXXXXXX*XNXrXXXXXXXXX&X8X\XXXXXXX4XXX|zz @&8Ow 0 N l  F z  , B X n   4 J ` v &<Rh~.Dl2Pn2H^t"Lbx<Zx "8Ndz*@V8@ x# P(/EditEngineItemPool )6f)0.;R* @** @)** @?*g*@D "2StarBatsN -"2StarBatsN -"2StarBatsN -"` ` 2StarBatsN -" 2StarBatsN -"2StarBatsN -"hh2StarBatsN -"2StarBatsN -"2StarBatsN -"pp2StarBatsN - "X2StarBatsN -"2StarBatsN -"2StarBatsN -"` ` 2StarBatsN -" 2StarBatsN -"2StarBatsN -"hh2StarBatsN -"2StarBatsN -"2StarBatsN -"pp2StarBatsN - "2StarBatsN -"2StarBatsN -"2StarBatsN -"` ` 2StarBatsN -" 2StarBatsN -"2StarBatsN -"hh2StarBatsN -"2StarBatsN -"2StarBatsN -"pp2StarBatsN - Z"|2StarBatsN -"|2StarBatsN -` ` 2StarBatsN K"2StarBatsN -2StarBatsN K"pp2StarBatsN -"  2StarBatsN -" 2StarBatsN -"%%2StarBatsN -"0*0*2StarBatsN -Z r2StarBats -r2StarBats -r2StarBats -r 2StarBats -r2StarBats -r2StarBats -rpp2StarBats -rXX2StarBats -r@@2StarBats -r(#(#2StarBats - "XX2StarBatsi -"2StarBatsi -"2StarBatsi -"` ` 2StarBatsi -" 2StarBatsi -"2StarBatsi -"hh2StarBatsi -"2StarBatsi -"2StarBatsi -XXjXX" X~X @?D@aD9XX@EFddddddx|ddDd8 ddDdddDd dddY ddd YDdddYD dddYD dddYD 8ddd8YD <ddDd \ddDdXdddXYD&dddxxdddxYD!ddd!YDXX!X4XGXZXmXXXXXXXX)XBXUXn<( n@ F    XXXX X&X,X2X8X>XD (x@"H StarBats!"-$ StarBats!r-  StarBatsX!"-#StarBats!?- StarBatsX!"- StarBats!"-XXGXXXX+@'(@JdddddXdddd,dd|d@ddd`  dddhddddddpddd  xddd (#ddd% 'ddd0* dddX &ddddddY|` ddd` YdddYdddYpdddpY ddd Y ddd Y%ddd%Y0*ddd0*YXdddddd`  ` ddd dddh%dddXX!X4XGXZXmXXXXXXXXXX1XJXcX|XXXXXX XX2XEA'@Kddddddddddddd,ddddddXXX&X2X>XJXVXb1'@KdX+'(@K'XXX' @L!'@1LX'h@L LucidabrightTimesTimes LucidabrightXX%X5XE' @ 7MNd 4d d d {d d d hd yd d d id XXX"X,X6X@XJXTX^XhXrX|* @}M'@MDXX'@MX'@MX'@NXX'@&NX'@ENX%' @_NS' @uN"' @N' @N$' @N* @N* @N* @N* @O* @%O* @;O* @QO* @gO* @}O* @O* @O* @O @O@OX@ PFX*@4PX{(@#R!p p[(http://www.dweehler.com/secure-pragrams/!www.dweehler.com/secure-pragrams/W!X!p[(http://www.angelfire.com/sk/stackshield/!www.angelfire.com/sk/stackshield/W!X!p7http://immunix.org/http://immunix.orgW!X!pDhttp://linuxassembly.org/http://linuxassembly.org/W!X!pX#http://phrack.org/show.php?p=49&a=1#http://phrack.org/show.php?p=49&a=1W!X!XX#XXX1X$:P:PzMK!!! " "F""x#####$;$Z$p$$$$$$$ % %6%L%b%x%%%%%%&"&I&P BXg* "2StarBatsN-"2StarBatsN-"2StarBatsN-"` ` 2StarBatsN-" 2StarBatsN-"2StarBatsN-"hh2StarBatsN-"2StarBatsN-"2StarBatsN-"pp2StarBatsN- ( StarSymbol!?-!'' Lucidabright'Od $' ***HG Mincho Light J*Arial Unicode MS*Od *Od lt7C2v +RgStandardStandard#'''''''''''''''+;(,,--..g* (@'A'1'+'!'''''''''Objekt mit PfeilspitzeStandardObjekt mit Pfeilspitze'''''''Objekt mit SchattenStandardObjekt mit Schatten+;(,,--..Objekt ohne FllungStandardObjekt ohne Fllung'TextStandardText'' TextkrperStandard Textkrper'''Textkrper BlocksatzStandardTextkrper Blocksatz''+'Textkrper EinzugStandardTextkrper Einzug''g*@'TitelStandardTitel'''Titel1StandardTitel1 '''+;(,,--..+''Titel2StandardTitel2 ''+;(,,--..g*@'A'+'' berschriftStandard berschrift''A'' berschrift1Standard berschrift1''A''' berschrift2Standard berschrift2''A''''MalinieStandardMalinie'''''''Home~LT~Gliederung 1Home~LT~Gliederung 1''g*@'A'+'!'''''''''Home~LT~Gliederung 2Home~LT~Gliederung 1Home~LT~Gliederung 2@'A'' Home~LT~Gliederung 3Home~LT~Gliederung 2Home~LT~Gliederung 3@'A''Home~LT~Gliederung 4Home~LT~Gliederung 3Home~LT~Gliederung 4@'A'' Home~LT~Gliederung 5Home~LT~Gliederung 4Home~LT~Gliederung 5@'A'' Home~LT~Gliederung 6Home~LT~Gliederung 5Home~LT~Gliederung 6@'A'' Home~LT~Gliederung 7Home~LT~Gliederung 6Home~LT~Gliederung 7@' A'' Home~LT~Gliederung 8Home~LT~Gliederung 7Home~LT~Gliederung 8@' A'' Home~LT~Gliederung 9Home~LT~Gliederung 8Home~LT~Gliederung 9@' A'' Home~LT~Titel Home~LT~Titel''QQg*+'!''' ''''''Home~LT~UntertitelHome~LT~Untertitel''QQg*@' +'!''' ''''''Home~LT~NotizenHome~LT~Notizen ''!'''''''''Home~LT~HintergrundobjekteHome~LT~Hintergrundobjekte+;(,,--..Home~LT~HintergrundHome~LT~Hintergrund''TitelTitel@ Untertitel Untertitel@HintergrundobjekteHintergrundobjekte@ Hintergrund Hintergrund@NotizenNotizen@ Gliederung 1 Gliederung 1@ Gliederung 2 Gliederung 1 Gliederung 2@ Gliederung 3 Gliederung 2 Gliederung 3@ Gliederung 4 Gliederung 3 Gliederung 4@ Gliederung 5 Gliederung 4 Gliederung 5@ Gliederung 6 Gliederung 5 Gliederung 6@ Gliederung 7 Gliederung 6 Gliederung 7@ Gliederung 8 Gliederung 7 Gliederung 8@ Gliederung 9 Gliederung 8 Gliederung 9@~(\Vbb\(Z&  2  . j * f V19@J@aA@ܤy@Gs5DrMdݹ͹JoeMp01b11)h1t ODrLy LAYER_LAYOUTDrLy LAYER_BCKGRNDDrLy LAYER_BACKGRNDOBJDrLyLAYER_CONTROLSDrLy!LAYER_MEASURELINESDrMP'JoeMlVTDrML DrOb<SVDr&y1A&DrOb<SVDr&;LdA&DrOb<SVDr&y.1LDrOb<SVDr&;.LdLDrXXHomegg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrMP$XJoeM`mRDrML DrObSVDr&`mQ'Home~LT~Hintergrund`mQDrOb SVDr& oe! Home~LT~Titel oexV4B1zZ8Klicken Sie, um das Format des Titeltextes zu bearbeiten Home~LT~Titel<( (@'DrObSVDr& oe{J(  Home~LT~Gliederung 16 oe{J xV4B1Z ?Klicken Sie, um die Formate des Gliederungstextes zu bearbeitenHome~LT~Gliederung 1<( (@'Zweite GliederungsebeneHome~LT~Gliederung 2<( (@'Dritte GliederungsebeneHome~LT~Gliederung 3<( (@'Vierte GliederungsebeneHome~LT~Gliederung 4 <( (@'Fnfte GliederungsebeneHome~LT~Gliederung 5 <( (@'Sechste GliederungsebeneHome~LT~Gliederung 6 <( (@'Siebente GliederungsebeneHome~LT~Gliederung 7<( (@'Achte GliederungsebeneHome~LT~Gliederung 8<( (@'Neunte GliederungsebeneHome~LT~Gliederung 9<(  (@' DrXXHomegg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrMP9JoeMVTlDrML DrObSVDr&T C(0! Home~LT~TitelT C(0xV4B1jZ(Klicken Sie, um die Seite zu verschieben Home~LT~Titel<( (@'DrOb SVDr& 3G"]# Home~LT~Notizen 3G"]xV4B1xZ4Klicken Sie, um das Format der Notizen zu bearbeitenHome~LT~Notizen<( (@'DrXXHomegg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgcJoeMlVTDrML8DrMD,DrXX Handoutsgg |Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgyJoeM`mRDrML8DrMD,DrOb'SVDr&$dJ! Home~LT~Titel$dJxV4B1Z.Buffer Overflow for Beginners 19C3 Berlin Home~LT~Titel<( (@' "#DrOb7SVDr& oe|P& Home~LT~Untertitel oe|P xV4B1Z Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'d" .. und konnte Root-Rechte auf dem System erlangen, indem ein Buffer Overflow ausgenutzt wurde ..."Home~LT~Untertitel<( (@'+'dHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+';Hintergrund, Auswirkung und Vermeidung von Buffer OverflowsHome~LT~Untertitel<( (@'+';;Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Dipl.-Inform. Viola BraeuerHome~LT~Untertitel<( (@'+'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgTJoeMVTlDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgBJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&d! Home~LT~TiteldxV4B1ZBuffer OverflowContent Home~LT~Titel<( (@' DrObSVDr& eJ& Home~LT~Untertitel eJ xV4B1yZ Home~LT~Untertitel<( (@'+'Zum Einstieg: Nette BeispieleHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Was ist ein Buffer Overflow?Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'&Wie kann er ausgenutzt werden? ExploitHome~LT~Untertitel<( (@'+'&&Home~LT~Untertitel<( (@'+'Wege zur Vermeidung: Home~LT~Untertitel<( (@'+'"Sicherheitsbewusste ProgrammierungHome~LT~Untertitel<( (@'+'""DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg` JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&d! Home~LT~TiteldxV4B1ZBuffer OverflowExamples Home~LT~Titel<( (@' DrObSVDr& oe|P& Home~LT~Untertitel" oe|P xV4B1Z Home~LT~Untertitel<( (@'+'Stammgast: MS Web-Server IISHome~LT~Untertitel<( (@'+'Code RedHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'1988: fingerd: Internet-Wurm Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Ja, auch unter Unix: Home~LT~Untertitel<( (@'+'Name-Server BIND (named)Home~LT~Untertitel<( (@'+'FTP-Server wu-ftpHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Auch Sicherheits-Software:Home~LT~Untertitel<( (@'+'&Firewall Gauntlet (Network Associates)Home~LT~Untertitel<( (@'+'&&Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z&Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObSVDr& oe|J& Home~LT~Untertitel^ oe|J?xV4B1"ZHome~LT~Untertitel<( (@'+'&Ueberschreiben der Ruecksprungadresse:Home~LT~Untertitel<( (@'+'&&Home~LT~Untertitel<( (@'+'<... auf dem Weg nach Hause die falsche Abzweigung erwischt--Home~LT~Untertitel<( (@'+'<<Und wo GANZ anders gelandet..Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgbJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrOb8SVDr& oe|J& Home~LT~Untertitel oe|JxV4B1ZHome~LT~Untertitel<( (@'+'uUeberschreiben der Ruecksprungadresse durch ueberlange Eingabe so, dass sie auf die Start-Adresse des Mal-Codes zeigtHome~LT~Untertitel<( (@'+'uuHome~LT~Untertitel<( (@'+'2Einfuegen von Mal-Code: Erzeugung einer Root-ShellHome~LT~Untertitel<( (@'+'22Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0 DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg)JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb'SVDr&$dJ! Home~LT~Titel$dJxV4B1Z.Buffer OverflowHow does it work? Funktion Home~LT~Titel<( (@' DrObQSVDr& JoeF& Home~LT~Untertitel JoeFxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrObSVDr&+>' Standard+>'xV4B1oZStandard<( (@'FunctionStandard<( (@'DrOb^SVDr&F'T>Y; StandardF'T>Y;xV4B1ZStandard<( (@'MainStandard<( (@'Standard<( (@'Aufruf FunctionStandard<( (@'DrObSVDr&9)23 Standard 3 3DrObSVDr&u3 Standard(# 3DrObSVDr&[: StandarduY<DrObSVDr&J=$F& Standard+>%E%DrObSVDr&!D$E7 StandardE%E7DrObcSVDr&u !Standard uxV4B1ZStandard<( (@'2Standard<( (@' Sprung inStandard<( (@'Unter-FunktionStandard<( (@'DrObSVDr&=5Ek7 StandardE6}>6DrObiSVDr&H&)e6 "StandardH&)e6xV4B1ZStandard<( (@'4Standard<( (@' Ruecksprung Standard<( (@'zum HauptprogrammStandard<( (@'DrOb+SVDr&s'2 !Standards'2xV4B1ZStandard<( (@'1 Standard<( (@' Start MainStandard<( (@'DrObfSVDr&G\$ #StandardG\$xV4B1ZStandard<( (@'3Standard<( (@' Abarbeitung Standard<( (@'Unter-FunktionStandard<( (@'DrObSVDr&I 6YH !Standard:I 6YHxV4B1ZStandard<( (@'5Standard<( (@' Programm-Standard<( (@' abarbeitungStandard<( (@'MainStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0 DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg=JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&z`m! Home~LT~Titelz`mxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObSVDr& 2oeH& Home~LT~Untertitel 2oeH xV4B1fZ Home~LT~Untertitel<( (@'+'Einfaches Beispiel in C:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'void function(int a, int b) {Home~LT~Untertitel<( (@'+'char buffer[]=ABCABCABCHome~LT~Untertitel<( (@'+'}Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+' void main() {Home~LT~Untertitel<( (@'+'   ...Home~LT~Untertitel<( (@'+'function(3,4);Home~LT~Untertitel<( (@'+'}Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0 DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb%SVDr&"f! Home~LT~Titel"fxV4B1Z,Buffer OverflowHow does it work? Memory Home~LT~Titel<( (@' DrObSVDr& ;oeF& Home~LT~Untertitel ;oeFd xV4B1=Z Home~LT~Untertitel<( (@'+'0Arbeitsspeichers zur Ausfuehrung eines ProgrammsHome~LT~Untertitel<( (@'+'00 wird zur Laufzeit zugewiesen undHome~LT~Untertitel<( (@'+'  Besteht aus drei Teilen:Home~LT~Untertitel<( (@'+'Stack Segment:Home~LT~Untertitel <( (@'+'Zur ParameteruebergabeHome~LT~Untertitel <( (@'+'Daten-Segment (Heap):Home~LT~Untertitel <( (@'+' Fuer Variablen und dynamischen Home~LT~Untertitel <( (@'+'  Speicher: malloc()Home~LT~Untertitel <( (@'+'Code-Segment: Maschienen-CodeHome~LT~Untertitel <( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb%SVDr&$dJ! Home~LT~Titel$dJxV4B1Z,Buffer OverflowHow does it work? Memory Home~LT~Titel<( (@' DrObSVDr& oe|J& Home~LT~Untertitely oe|JZxV4B17ZHome~LT~Untertitel<( (@'+'!Zur Laufzeit des Programms werdenHome~LT~Untertitel<( (@'+'!!Home~LT~Untertitel<( (@'+'Lokale VaribalenHome~LT~Untertitel<( (@'+'"Uebergabeparameter fuer FunktionenHome~LT~Untertitel<( (@'+'""#Ruecksprungadressen fuer FunktionenHome~LT~Untertitel<( (@'+'##Home~LT~Untertitel<( (@'+'.Im Arbeitsspeicher abgelegt (konkret im Stack)Home~LT~Untertitel<( (@'+'..DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg$JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb%SVDr&$dJ! Home~LT~Titel$dJxV4B1Z,Buffer OverflowHow does it work? Memory Home~LT~Titel<( (@' DrObQSVDr& JoeF& Home~LT~Untertitel JoeFxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrOb,SVDr&O6$ StandardO6$xV4B1ZStandard<( (@' Stack-SegmentStandard<( (@'Standard<( (@'DrObSVDr&O=6H StandardO=6HxV4B1sZStandard<( (@' Code-SegmentStandard<( (@'DrObSVDr&s'u3/ !Standards'u3/~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&I 6J= !StandardI 6J=~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&b06= Standardb06=xV4B1tZStandard<( (@' Daten-SegmentStandard<( (@'DrObSVDr&n yB+I !Standardn yB+IxV4B1mZStandard<( (@'0 ByteStandard<( (@'DrObSVDr&#:+'2 $Standardk/"%0%,DrObSVDr&#"j'+ $Standardt%$%"*DrObSVDr&20 %Standard20xV4B1ZStandard<( (@'Zur Laufzeit eines Programms:Standard<( (@'DrObSVDr&NBPB" !StandardNBPB"~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&?9;GZqJ !Standard0?9;GZqJxV4B1ZStandard<( (@'MaschienenprogrammStandard<( (@'schreibgeschuetztStandard<( (@'(Segmentation violation)Standard<( (@'DrOb\SVDr&>9 .i< &Standard>9 .i<xV4B1ZStandard<( (@'*=Heap, fuer globale Daten und Konstanten, Standard<( (@'Platz fuer malloc()Standard<( (@'DrObSVDr&:jD+ 'Standard2:jD+xV4B1ZStandard<( (@'NZwischenspeicher fuer lokale Variablen, Uebergabe-Parameter, ProzessorregisterStandard<( (@'= First in Last Out (FILO) Standard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg     JoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg3{JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObQSVDr& JoeF& Home~LT~Untertitel JoeFxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrOb,SVDr&w9Y$ Standardw9Y$xV4B1ZStandard<( (@' Stack-SegmentStandard<( (@'Standard<( (@'DrObSVDr&w9=ZH Standardw9=ZHxV4B1sZStandard<( (@' Code-SegmentStandard<( (@'DrObSVDr&s'u3/ !Standards'u3/~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&I 6J= !StandardI 6J=~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&90Y= Standard90Y=xV4B1tZStandard<( (@' Daten-SegmentStandard<( (@'DrObSVDr&>\yBdI !Standard>\yBdIxV4B1mZStandard<( (@'0 ByteStandard<( (@'DrObSVDr&J %StandardJxV4B1wZStandard<( (@'Pointer:Standard<( (@'DrObSVDr&NBPB" !StandardNBPB"~xV4B1gZStandard<( (@'Standard<( (@'DrObOSVDr& :>* (Standard :>*xV4B1ZStandard<( (@'Stackpointer (ESP)Standard<( (@'zeigt auf des Ende des Stacks Standard<( (@'DrObSVDr&$";% $Standard{&#>9#DrObSVDr&D:))I )Standard8D:))IxV4B1ZStandard<( (@'Instruction Pointer (EIP)Standard<( (@'zeigt auf naechsten Standard<( (@'auszufuehrenden BefehlStandard<( (@'DrObSVDr&/,=,;E $Standard?-?g9CDrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg;JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb$SVDr&$dJ! Home~LT~Titel$dJxV4B1Z+Buffer OverflowHow does it work? Frame Home~LT~Titel<( (@' DrObSVDr& /oeH& Home~LT~Untertitel /oeH xV4B1^Z Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Frame-Konzept:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Base-Pointer (EBP) Home~LT~Untertitel<( (@'+'*zeigt auf den lokalen Speicher-Bereich derHome~LT~Untertitel<( (@'+'***&aktuellen Unter-Funktion auf dem StackHome~LT~Untertitel<( (@'+'&&&Home~LT~Untertitel<( (@'+'#Offset zur Navigation innerhalb desHome~LT~Untertitel<( (@'+'### FramesHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg_JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z&Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrOb4SVDr& JoeF& Home~LT~Untertitel JoeFxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Beim Beenden der Funktion wird Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'-der Speicher auf dem Stack wieder freigegebenHome~LT~Untertitel <( (@'+'---*Der alte Frame-Pointer wiederhergestelltHome~LT~Untertitel <( (@'+'***ADie gespeicherte Ruecksprungadresse zum Instruktion Pointer (EIP)Home~LT~Untertitel <( (@'+'AAAHome~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg  JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObSVDr&  oebU& Home~LT~Untertitel?  oebU xV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'!Stack-Operationen: PUSHL & POPL: Home~LT~Untertitel<( (@'+'!!Home~LT~Untertitel<( (@'+'PUSHL = auf dem Stack ablegenHome~LT~Untertitel<( (@'+' pushl %ebpHome~LT~Untertitel<( (@'+'  &Ablage des Basepointers auf dem StackHome~LT~Untertitel<( (@'+'&&POPL = vom Stack entfernenHome~LT~Untertitel<( (@'+' popl %eaxHome~LT~Untertitel<( (@'+'  &oberster Stack-Wert nach Register eaxHome~LT~Untertitel<( (@'+'&&Home~LT~Untertitel<( (@'+')Stack arbeitet nach LIFO-Prinzip (Last inHome~LT~Untertitel<( (@'+')) First out)Home~LT~Untertitel<( (@'+'  Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&z`m! Home~LT~Titelz`mxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObSVDr& K oeL& Home~LT~Untertitel\ K oeL= xV4B1Z Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Altes Beispiel in C:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'void function(int a, int b) {Home~LT~Untertitel<( (@'+'char buffer[]=ABCABCABCHome~LT~Untertitel<( (@'+'}Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+' void main() {Home~LT~Untertitel<( (@'+'   Home~LT~Untertitel<( (@'+'function(3,4);Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'}Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgB  JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr& zg! Home~LT~Titel zgxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrOb`SVDr& oeK& Home~LT~Untertitel oeKxV4B1ZHome~LT~Untertitel<( (@'+' ;sieht in Assembler so aus:Home~LT~Untertitel<( (@'+'  ;functionHome~LT~Untertitel<( (@'+'    pushl %ebp Home~LT~Untertitel<( (@'+'    ,; alten BasePointer (FramePointer) auf demHome~LT~Untertitel<( (@'+',,, ,; Stack ablegenHome~LT~Untertitel<( (@'+' movl %esp, %ebpHome~LT~Untertitel<( (@'+' ';alter StackPointer wird FramePointerHome~LT~Untertitel<( (@'+'''' 'subl $10, %espHome~LT~Untertitel<( (@'+' ;Speicher reservierenHome~LT~Untertitel<( (@'+' ..Home~LT~Untertitel<( (@'+' $leave;FramePointer wiederherstellenHome~LT~Untertitel<( (@'+'$$$ $ret;RuecksprungHome~LT~Untertitel<( (@'+' Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg) qJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&z`m! Home~LT~Titelz`mxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObGSVDr& QoeF& Home~LT~Untertitel QoeF xV4B1Z Home~LT~Untertitel<( (@'+' ;AssemblerHome~LT~Untertitel<( (@'+'   ;mainHome~LT~Untertitel<( (@'+' ..Home~LT~Untertitel<( (@'+' (pushl $4; Parameteruebergabe via StackHome~LT~Untertitel<( (@'+'((( (  pushl $3Home~LT~Untertitel<( (@'+' -call function; Aufruf Unterfunktion sichern Home~LT~Untertitel<( (@'+'--- - -; incl. Sicherung des Instruction PointerHome~LT~Untertitel<( (@'+'--- -..Home~LT~Untertitel<( (@'+' Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0!DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z&Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObQSVDr& JoeF& Home~LT~Untertitel JoeFxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrObSVDr&+>' Standard+>'xV4B1oZStandard<( (@'FunctionStandard<( (@'DrOb^SVDr&F'T>Y; StandardF'T>Y;xV4B1ZStandard<( (@'MainStandard<( (@'Standard<( (@'Aufruf FunctionStandard<( (@'DrObSVDr&9)23 Standard 3 3DrObSVDr&u3 Standard(# 3DrObSVDr&[: StandarduY<DrObSVDr&J=$F& Standard+>%E%DrObSVDr&!D$E7 StandardE%E7DrObcSVDr&u !Standard uxV4B1ZStandard<( (@'2Standard<( (@' Sprung inStandard<( (@'Unter-FunktionStandard<( (@'DrObSVDr&=5Ek7 StandardE6}>6DrObiSVDr&H&)e6 "StandardH&)e6xV4B1ZStandard<( (@'4Standard<( (@' Ruecksprung Standard<( (@'zum HauptprogrammStandard<( (@'DrOb+SVDr&s'2 !Standards'2xV4B1ZStandard<( (@'1 Standard<( (@' Start MainStandard<( (@'DrObfSVDr&G\$ #StandardG\$xV4B1ZStandard<( (@'3Standard<( (@' Abarbeitung Standard<( (@'Unter-FunktionStandard<( (@'DrObSVDr&I 6YH !Standard:I 6YHxV4B1ZStandard<( (@'5Standard<( (@' Programm-Standard<( (@' abarbeitungStandard<( (@'MainStandard<( (@'DrObSVDr&s CG !Standards CGxxV4B1cZSoweit, so gut..Standard<( (@''DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0#DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgWJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrOb7SVDr& oe|J& Home~LT~Untertitel oe|JxV4B1ZHome~LT~Untertitel<( (@'+'tUeberschreiben der Ruecksprungadresse durch ueberlange Eingabe, so dass sie auf die Startadresse des Mal-Codes zeigtHome~LT~Untertitel<( (@'+'ttHome~LT~Untertitel<( (@'+'2Einfuegen von Mal-Code: Erzeugung einer Root-ShellHome~LT~Untertitel<( (@'+'22Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0%DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg  JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrObSVDr& |oeK& Home~LT~Untertitel |oeKl xV4B1AZ Home~LT~Untertitel<( (@'+'%Ueberschreiben der RuecksprungadresseHome~LT~Untertitel<( (@'+'%% durch ueberlange Eingabe: strcpyHome~LT~Untertitel<( (@'+'  Home~LT~Untertitel<( (@'+'function(char*a) {Home~LT~Untertitel<( (@'+' char buffer[4];Home~LT~Untertitel<( (@'+' strcpy(buffer,a);Home~LT~Untertitel<( (@'+' }Home~LT~Untertitel<( (@'+' Home~LT~Untertitel<( (@'+' main() {Home~LT~Untertitel<( (@'+' 'function(dieser String ist zu lang);Home~LT~Untertitel<( (@'+''' ''} Home~LT~Untertitel<( (@'+' DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0'DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg}JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrObSVDr& oe|J& Home~LT~UntertitelE oe|J&xV4B1ZHome~LT~Untertitel<( (@'+'Prinzip:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Gezieltes Ueberschreiben derHome~LT~Untertitel<( (@'+'Ruecksprungadresse,Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'(So, dass sie auf den neuen Code zeigt.Home~LT~Untertitel<( (@'+'(( Home~LT~Untertitel<( (@'+' DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0)DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgGJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrOb'SVDr& oeK& Home~LT~Untertitel oeK xV4B1Z Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Gezieltes Ueberschreiben derHome~LT~Untertitel<( (@'+'Ruecksprungadresse:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'?Gesucht: Adresse, an der die Ruecksprungadresse gespeichert istHome~LT~Untertitel<( (@'+'??2Auf dieser die neue Ruecksprungadresse schreibenHome~LT~Untertitel<( (@'+'22Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0+DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg JoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&z`m! Home~LT~Titelz`mxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObSVDr& K oeL& Home~LT~Untertitel\ K oeL= xV4B1Z Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Altes Beispiel in C:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'void function(int a, int b) {Home~LT~Untertitel<( (@'+'char buffer[]=ABCABCABCHome~LT~Untertitel<( (@'+'}Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+' void main() {Home~LT~Untertitel<( (@'+'   Home~LT~Untertitel<( (@'+'function(3,4);Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'}Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0-DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z%Buffer OverflowHow does it work? Home~LT~Titel<( (@' DrObQSVDr& JoeF& Home~LT~Untertitel JoeFxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrObSVDr&%E> Standard%E>~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&s'u3/ !Standards'u3/~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&I3Js: !StandardI3Js:~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&JS  %StandardJS xV4B1uZStandard<( (@'Stack:Standard<( (@'DrObSVDr&NBmPB !StandardNBmPB~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr& :& (Standard :&~xV4B1gZStandard<( (@'Standard<( (@'DrObSVDr&%E" Standard%E!xV4B1uZStandard<( (@'Parameter 2: 4Standard<( (@'DrObuSVDr&%!E( Standard%!E(DrOb?SVDr&%&E)2 Standard%'EX1xV4B1ZStandard<( (@'Instruction Pointer Standard<( (@' (=IP=return)Standard<( (@'DrObSVDr&) <`) *Standard) <`)xV4B1uZStandard<( (@'Parameter 1: 3Standard<( (@'DrOb7SVDr&]%\1EE= Standard]%\1EE=xV4B1ZStandard<( (@'Alter FramePointerStandard<( (@'(=EBP)Standard<( (@'DrObSVDr&%6=E)E Standard%6=E)ExV4B1mZStandard<( (@'bufferStandard<( (@'DrOb1SVDr& 7=\N +Standard 7=\NxV4B1ZStandard<( (@' StackPointerStandard<( (@'=(ESP)Standard<( (@'DrObSVDr&CH'F! $StandardVE%DDrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0/DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrObSVDr& oe|J& Home~LT~Untertitel oe|JcxV4B1@ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Gezieltes Ueberschreiben derHome~LT~Untertitel<( (@'+'Ruecksprungadresse:Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'<Einpacken des Mal-Codes in NOPs (No Operation Anweisungen)Home~LT~Untertitel<( (@'+'<<2--> hoehere Wahrscheinlichkeit Mal-Code zu treffenHome~LT~Untertitel<( (@'+'22--> s. LiteraturHome~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(01DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg1yJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrObYSVDr& oe|J& Home~LT~Untertitel oe|J xV4B1Z Home~LT~Untertitel<( (@'+'$Einfuegen von Mal-Code auf dem StackHome~LT~Untertitel<( (@'+'$$Home~LT~Untertitel<( (@'+''Ueberlanger String beinhaltet Mal-Code:Home~LT~Untertitel<( (@'+'''Erzeugung einer Root-Shell: Home~LT~Untertitel<( (@'+' /bin/shHome~LT~Untertitel<( (@'+'  Home~LT~Untertitel<( (@'+'--->s. LiteraturHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(03DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgdJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z&Buffer OverflowExploit Shell-Code Home~LT~Titel<( (@' DrOb9SVDr& oe{J& Home~LT~Untertitel oe{JxV4B1ZHome~LT~Untertitel<( (@'+'Pchar shellcode[]= \xe8\x3f\x1f\xfd\xb4\x23\x03\xe8\x60\x60\x3c\x61\x0b\x39\x02Home~LT~Untertitel<( (@'+'PP PH \x99\x34\x1a\x3c\x53\x0b\x43\x06\x1a\x20\x20\x08\x01\x34\x16\x03Home~LT~Untertitel<( (@'+'HH HHome~LT~Untertitel<( (@'+' 2 \xe8\xe4\x20\xe0\x08\x96\xd6\x03\xfe/bin/sh";Home~LT~Untertitel<( (@'+'*2 2*002DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(05DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb!SVDr&$dJ! Home~LT~Titel$dJxV4B1Z(Buffer OverflowExploit Auswirkungen Home~LT~Titel<( (@' DrObSVDr& oeK& Home~LT~Untertitelw oeKX xV4B11Z Home~LT~Untertitel<( (@'+'ORoot-Rechte auf dem Rechner (wenn exploitetes Programm mit Root-Rechten laeuft)Home~LT~Untertitel<( (@'+'OOHome~LT~Untertitel<( (@'+' Das Uebliche:Home~LT~Untertitel<( (@'+'  Sammeln von PasswoerternHome~LT~Untertitel<( (@'%+'#Einbau von Hintertueren (Backdoors)Home~LT~Untertitel<( (@'%+'##!Verwischen der Spuren (Root-Kits)Home~LT~Untertitel<( (@'%+'!!Logfiels loeschenHome~LT~Untertitel <( (@'+'Binaries ersetztenHome~LT~Untertitel <( (@'+'#Als Plattform fuer weitere AngriffeHome~LT~Untertitel<( (@'%+'##DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(07DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg+JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z#Buffer OverflowGegenmassnahmen Home~LT~Titel<( (@' DrObSVDr& oe|J& Home~LT~Untertitel oe|JxV4B1\ZHome~LT~Untertitel<( (@'+'Prinzipiell einfach ..Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'$Sicherheitsbewusste Programmierung, Home~LT~Untertitel<( (@'+'$$Erst denken, dann programmierenHome~LT~Untertitel <( (@'+'DWeiterbildung (Eigenheiten der benutzten Programmiersprache, bes. C)Home~LT~Untertitel<( (@'+'DDKampf der FeaturitisHome~LT~Untertitel<( (@'+'Zeit fuers Testen nehmenHome~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(09DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg^JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z#Buffer OverflowGegenmassnahmen Home~LT~Titel<( (@' DrOb1SVDr& oe|J& Home~LT~Untertitel oe|JxV4B1ZHome~LT~Untertitel<( (@'+'Konkrete Programmiersprache:Home~LT~Untertitel<( (@'+' Sprache C: Home~LT~Untertitel<( (@'+'  Hbeim Kopieren von Strings Zeichen begrenzen mit strncpy() statt strcpy()Home~LT~Untertitel<( (@'+'HH09@H!Und andere C-Funktionen (s. Lit.)Home~LT~Untertitel <( (@'+'!!Strcat, sprintf, scanf, gets,..Home~LT~Untertitel<( (@'+'Java benutzen: Home~LT~Untertitel<( (@'+'.Grenzen der Speicherbereiche werden ueberwachtHome~LT~Untertitel<( (@'+'..DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0;DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg;JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1Z#Buffer OverflowGegenmassnahmen Home~LT~Titel<( (@' DrObSVDr& Aoe N& Home~LT~Untertitel Aoe N xV4B1hZ Home~LT~Untertitel<( (@'+'Konkret Returnadresse sichern:Home~LT~Untertitel<( (@'+'LStackShield fuer Linux: Sichert Return-Adresse und korrigiert sie bei BedarfHome~LT~Untertitel<( (@'+'L  LDStackGuard: Wenn Return-Adresse geaendert, Meldung und Programm-StopHome~LT~Untertitel<( (@'+' D DHome~LT~Untertitel<( (@'+'Andere Ansaetze:Home~LT~Untertitel<( (@'+'-Nicht-ausfuehrbare Stack (im Betriebssystem )Home~LT~Untertitel<( (@'+'--Security Enhanced Linux (NSA)Home~LT~Untertitel<( (@'+'Detailierte Rechte-VergabeHome~LT~Untertitel<( (@'%+'...Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0=DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg!iJoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowLiteratur Home~LT~Titel<( (@' DrObBSVDr& oeD& Home~LT~Untertitel oeDxV4B1ZHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'5"Shamshing the stack for fun and profit" Aleph One,4Home~LT~Untertitel<( (@'+'55 *33435&Assemblerprogrammierung unter Linux: Home~LT~Untertitel<( (@'+'&&%&%&-Secure Programming for Linux and Unix HOWTO:Home~LT~Untertitel<( (@'+'--,-,- StackShield:Home~LT~Untertitel<( (@'+'    StackGuard:Home~LT~Untertitel<( (@'+'    Ct 23/2001 S.216 ff.Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0?DrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPg;JoeM`mRDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrObSVDr&d! Home~LT~TiteldxV4B1uZBuffer Overflow Fazit Home~LT~Titel<(@' DrOb&SVDr& oeK& Home~LT~Untertitel oeKxV4B1ZHome~LT~Untertitel<( (@'+'Fazit + These:Home~LT~Untertitel<( (@'+'"Sicherheitsbewusste ProgrammierungHome~LT~Untertitel<( (@'+'""Akzeptanz von Fehlern:Home~LT~Untertitel<( (@'+'j Es ist immer einfacher, ein Loch zu finden, als ein komplexes System zu entwerfen, das sicher sein soll.Home~LT~Untertitel<( (@'+'jjThese:Home~LT~Untertitel<( (@'+'3Alle lebendigen komplexen Systeme sind vulnerable. Home~LT~Untertitel<( (@'+'33Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy BackgroundDrLy!Background objectsDrLyControlsDrLyDimension LinesDrML8DrMD,DrOb<SVDr&T C(0ADrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgVJoeM`mRDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrObSVDr&$dJ! Home~LT~Titel$dJxV4B1ZBuffer OverflowExploit Home~LT~Titel<( (@' DrOb6SVDr& oe|J& Home~LT~Untertitel oe|JxV4B1ZHome~LT~Untertitel<( (@'+'%Einfuegen von Mal-Code - Fallstricke:Home~LT~Untertitel<( (@'+'%% Home~LT~Untertitel<( (@'+'0 beendet strcpy Home~LT~Untertitel<( (@'+'-> Eleminierung von NullenHome~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'Home~LT~Untertitel<( (@'+'DrOb*SVDr&&IMPQ Standard&IMPQxV4B1ZStandard<( (@'.19C3 Berlin 2002 Buffer Overflow Viola BraeuerStandard<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrPgJoeMVTlDrLyLayoutDrLy HintergrundDrLy!HintergrundobjekteDrLyControlsDrLy MalinienDrML8DrMD,DrOb<SVDr&T C(0CDrObSVDr& 3G#]# Home~LT~Notizen 3G#]yxV4B1dZ Notizen durch Klicken hinzufgenHome~LT~Notizen<( (@'DrXXgg Home~LT~Gliederungfile:///A:/bo4b_19c3_06.sddfile:///A:/bo4b_19c3_06.sddDrXXHP LaserJet 4HP LaserJet 4Rt3TNWHP LaserJet 44C 4dXXA4DINU"4:ܜ DrVwV SVDr SVDr:SVDr{{SVDrA LAYER_LAYOUT:SVDr{{SVDr#SVDr SVDr# SVDr0 SVDr1 SVDr3 SVDr4SVDr@SVDr SVDrD SVDrP SVDrQ DrHL DrHL DrHL ~T  Root Entry!r\V)䰱CompObjEOle persist elements" SfxDocumentInfo uBasicManager2 4StarBASICSfxWindowsStandardjSfxStyleSheetsgSummaryInformation( (StarDrawDocument3$;