<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code Security</title><link>https://www.dotnetzone.gr:443/cs/forums/139/ShowForum.aspx</link><description>Περιοχή που συζητάμε για το το code security - ένα θέμα που πρέπει να απασχολεί κάθε προγραμματιστή.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Ξεπερνώντας το DEP με Stack Buffer Overflow</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37215.aspx</link><pubDate>Sun, 11 Nov 2007 22:23:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37215</guid><dc:creator>Thiseas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37215.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=139&amp;PostID=37215</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Νατάσα Μανουσοπούλου:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Αν θέλεις να μάθεις περισσότερα για το DEP μπορείς να ανατρέξεις στις σχετικές σελίδες του MSDN και της KB, που μπορείς να βρεις πολύ εύκολα και γρήγορα με μια αναζήτηση.Over and out.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Thanks Νατάσα.... θα τις έχω υπ όψη μου...!!!&lt;BR&gt;... την επομένη φορά που θα βγάλει η μαμά&amp;nbsp;θα βγάλει κάτι εξίσου "secure".&lt;/P&gt;
&lt;P&gt;PS: Μιας και μιλήσαμε για "διάβασμα", δεν θα πείραζε να κάνω κι εγώ μια παραίνεση: Ρίξε μια ματιά στις αναφορές που έχω (ειδικα τα 4,8). Θα μάθεις αρκετά πράγματα.&lt;/P&gt;
&lt;P&gt;bye bye&lt;/P&gt;</description></item><item><title>Απ: Ξεπερνώντας το DEP με Stack Buffer Overflow</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37213.aspx</link><pubDate>Sun, 11 Nov 2007 22:15:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37213</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37213.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=139&amp;PostID=37213</wfw:commentRss><description>&lt;P&gt;Το Data Execution Prevention σε εμποδίζει να κάνεις jump/call/whatever IP change σε σελίδες μαρκαρισμένες από τον memory manager σαν data, ώστε να ελαχιστοποιούνται οι συνέπειες όταν μια εφαρμογή είναι ευπαθής σε buffer overflow. Το παράδειγμα που έδωσες ΔΕΝ κάνει κάτι τέτοιο. Κάνει ένα παλιό καλό buffer overflow, που έχει περιγραφεί πάρα πολλές φορές και δεν αποτελεί τίποτα καινούργιο. Το να κάνεις overwrite τον BP, ναι, είναι έμμεσο jump (ret για την ακρίβεια) κάπου αλλού, &lt;U&gt;που όμως εξακολουθεί να ζει σε executable pages&lt;/U&gt;.&lt;/P&gt;
&lt;P&gt;Αν θέλεις να μάθεις περισσότερα για το DEP μπορείς να ανατρέξεις στις σχετικές σελίδες του MSDN και της KB, που μπορείς να βρεις πολύ εύκολα και γρήγορα με μια αναζήτηση.&lt;/P&gt;
&lt;P&gt;Over and out.&lt;/P&gt;</description></item><item><title>Απ: Ξεπερνώντας το DEP με Stack Buffer Overflow</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37210.aspx</link><pubDate>Sun, 11 Nov 2007 21:57:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37210</guid><dc:creator>Thiseas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37210.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=139&amp;PostID=37210</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Νατάσα Μανουσοπούλου:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt; 
&lt;P&gt;...&amp;nbsp;αλλά δεν έχει καμία σχέση με το DEP, καθότι το DEP εμποδίζει την εκτέλεση από data pages, και εσύ έκανες jump μέσα στα pages του kernel32.dll που είναι μια χαρά εκτελέσιμα. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Δύο ερωτήσεις...&lt;BR&gt;1. Έκανα μόνο Jump Νατάσα?? R u sure? Εδώ έκανα overwrite τον BP!! Δεν το είδες? Δεν είναι απλό jump. Overflow είναι...&lt;BR&gt;2. Που είναι το περήφιμο cooky&amp;nbsp;checker? οεο ?? [http://research.microsoft.com/users/jpincus/mitigations.pdf]&lt;/P&gt;
&lt;P&gt;Επίσης...: Δεν είπα οτι κάνω Break το DEP, αλλα bypass!! Άλλοστε αυτο μου μετράει είναι το αποτέλεσμα... &lt;/P&gt;
&lt;P&gt;Νατάσα, εκτελώ όποιο&amp;nbsp;πρόγραμμα θέλω... Καταλαβαίνεις τι σημαίνει αυτό....&lt;BR&gt;&lt;BR&gt;To DEP βγήκε για να προστατέψει κάποιον να φτάσει στο αποτελέσμα (ας πούμε) Χ μέσω ενός 3ου προγράμματος θεωριτικά άσχετου.&lt;BR&gt;Εγώ μέσω αυτού,... έφτασα στο Χ.... [bye bye DEP]&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;What it counts is the result.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Ξεπερνώντας το DEP με Stack Buffer Overflow</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37208.aspx</link><pubDate>Sun, 11 Nov 2007 21:20:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37208</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37208.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=139&amp;PostID=37208</wfw:commentRss><description>&lt;P&gt;Αυτό που μόλις περιέγραψες είναι ένα πολύ καλό μάθημα σε buffer overflows, αλλά δεν έχει καμία σχέση με το DEP, καθότι το DEP εμποδίζει την εκτέλεση από data pages, και εσύ έκανες jump μέσα στα pages του kernel32.dll που είναι μια χαρά εκτελέσιμα. Επιπλέον, σε Vista με το address space&amp;nbsp;layout&amp;nbsp;randomization δεν έχει και πολλές&amp;nbsp;ελπίδες.&lt;/P&gt;</description></item><item><title>Ξεπερνώντας το DEP με Stack Buffer Overflow</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37206.aspx</link><pubDate>Sun, 11 Nov 2007 20:52:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37206</guid><dc:creator>Thiseas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37206.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=139&amp;PostID=37206</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ξεπερνώντας το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;~~~~~~~~~~~~~~~~~~&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Η micro$oft σε μια προσπάθεια να εμποδίσει το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;buffer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;εφάρμοσε μια «νέα» τεχνική (της 10ετίας του 70) για να προστατέψει τους χρήστες από την εκτέλεση μη εξουσιοδωτημένου κώδικα.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Δεν θα αναλύσω με λεπτομέριες την μεθοδολογία του &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt; (για περισσότερες λεπτομέριες δείτε [1],[2]) εδώ παρά μόνο θα αναφέρω το εξής:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Αυτό που έκανε η &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Micro&lt;/SPAN&gt;$&lt;SPAN style="mso-ansi-language:EN-US;"&gt;oft&lt;/SPAN&gt; ήτανε να απαγορέυσει να εκτελείται κώδικας στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;stack&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;segment&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;ή καλύτερα στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;segment&lt;/SPAN&gt;, όπως επίσης και να ελέγχει αν έχει γίνει &lt;SPAN style="mso-ansi-language:EN-US;"&gt;buffer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow&lt;/SPAN&gt; του &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;χρησιμοποιόντας ένα «&lt;SPAN style="mso-ansi-language:EN-US;"&gt;cookie&lt;/SPAN&gt;» ή αλλιώς μια υπογραφή στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;stack&lt;/SPAN&gt; που την ελέγχει κατά την προσπέλαση του.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Με αυτόν τον τρόπο θεώρησε οτι θα μπορούσε να αποτρέψει κάποιον που κάνει ένα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;buffer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;να «πάρει» κάποιο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;box&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Για να δείτε αν την έχετε ενεργοποιημένη αυτην την δυνατότητα στα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;XP&lt;/SPAN&gt; πατήστε δεξί &lt;SPAN style="mso-ansi-language:EN-US;"&gt;click&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;MyComputer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;μετά &lt;SPAN style="mso-ansi-language:EN-US;"&gt;properties&lt;/SPAN&gt;. Μετά πατήστε το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;TA&lt;/SPAN&gt;Β &lt;SPAN style="mso-ansi-language:EN-US;"&gt;advanced&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;και εκεί που λέει &lt;SPAN style="mso-ansi-language:EN-US;"&gt;performance&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;πατήστε το&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;button&lt;/SPAN&gt; [&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Settings&lt;/SPAN&gt;]. Μόλις&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;ανοίξει&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;το&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Performance Options &lt;/SPAN&gt;πατήστε&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;το&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;TAB “Data Execution Prevention”&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;...&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;X&lt;/SPAN&gt;ειρότερο μέρος δεν είχανε να το κρύψουνε?? Τεσπα... Τι να πω!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Το παράδειγμα που θα σας δείξω πραγματοποιεί ένα ελεγχόμενο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;buffer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;και μέσα από αυτό τρέχει ένα πρόγραμμα του λειτουργικού συστήματος.... ας πούμε το... &lt;SPAN style="mso-ansi-language:EN-US;"&gt;windows&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;explorer&lt;/SPAN&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Το «καλό» της υπόθεσης είναι οτι η τεχνική λειτουργεί είτε έχουμε ενεργοποιημένο το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;!! είτε όχι.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Πρέπει να πούμε βέβαια οτι το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;έχει δύο είδη. &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Hardware DEP &lt;/SPAN&gt;και&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Software DEP. &lt;/SPAN&gt;Το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;hardware&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;δεν υποστηρίζετε από τον επεξεργαστή &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Pentium&lt;/SPAN&gt; 4, παρά μόνο από της τελευταίας γενιάς των &lt;SPAN style="mso-ansi-language:EN-US;"&gt;AMD&lt;/SPAN&gt;, &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Intel&lt;/SPAN&gt;. &lt;SPAN style="mso-ansi-language:EN-US;"&gt;H&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;Δοκιμή έγινε σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Win&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;XP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Pro&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;με &lt;SPAN style="mso-ansi-language:EN-US;"&gt;SP&lt;/SPAN&gt;2 σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Pentium&lt;/SPAN&gt; 4, οπότε το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;bypassing&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;έγινε σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;software&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;scheme&lt;/SPAN&gt; ;-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Βέβαια όσοι μπορούν και έχουν πρόσβαση σε επεξεργαστές που υποστησίζουν &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Hardware&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;θα ήταν πολύ χρήσιμο να μας πούνε τις «εντυπώσεις» του...&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ένα ευπαθές (&lt;SPAN style="mso-ansi-language:EN-US;"&gt;vulnerable&lt;/SPAN&gt;) πρόγραμμα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ας κατασκευάσουμε ένα ευπαθές πρόγραμμα σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;buffer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow&lt;/SPAN&gt;. Χρησιμοποίησα&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;τη&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Micro$oft C++ (Visual Studio 2005).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Σημείωση: Για να μπορέσει να λειτουργήσει η δοκιμή μας (για την δοκιμή) σετάρουμε τις εξής &lt;SPAN style="mso-ansi-language:EN-US;"&gt;flags&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;του &lt;SPAN style="mso-ansi-language:EN-US;"&gt;compiler&lt;/SPAN&gt;:&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;Basic Runtime Checks: Default&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;Buffer Security Check: No (GS-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Για &lt;SPAN style="mso-ansi-language:EN-US;"&gt;command line lovers: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;/Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Yu"stdafx.h" /Fp"Debug\BufferOverflow_Attack.pch" /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W3 /nologo /c /Wp64 /ZI /TP /errorReport:prompt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Επίσης να ξεκαθαρίσω πως οτιδήποτε πω και αναφέρετε σε μεγέθοι αφορά στον στον 32μπιτο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Pentium&lt;/SPAN&gt; 4 και όλους τους όμοιους του ;-) π.χ. &lt;SPAN style="mso-ansi-language:EN-US;"&gt;AMD&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;κλπ.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ας έρθω επιτέλους στο πρόγραμμα:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;/*&lt;BR&gt;A vulnerable Program.&lt;BR&gt;(c) by Thiseas 2007&lt;BR&gt;*/&lt;/SPAN&gt;&lt;BR&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR&gt;#include &amp;lt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt;.h&amp;gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; main(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; argc, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;char&lt;/SPAN&gt; *argv[])&lt;BR&gt;{&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;char&lt;/SPAN&gt; s[06];&lt;BR&gt;&lt;BR&gt;strcpy(s,argv[1]);&lt;BR&gt;printf(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"The string is %s\n"&lt;/SPAN&gt;,s);&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; 0;&lt;BR&gt;}&lt;/SPAN&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;** Μη μου πει κανείς οτι δεν χρησιμοποιούμε πια την strcpy!! Δεν είναι αυτός ο στόχος εδώ. Το πρόγραμμα είναι καθαρά εκπαιδευτικό για να διευκολύνει την διαδικασία!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Απ’ ότι βλέπουμε η μεταβλητή &lt;SPAN style="mso-ansi-language:EN-US;"&gt;s&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;καταχωρεί ότι δώθηκε σαν πρώτο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;command&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;line&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;argument&lt;/SPAN&gt;. Έχει&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;μήκος&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; 8 &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;bytes. &lt;/SPAN&gt;Έτσι&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;αν&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;δώσουμε&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;&lt;FONT color=#9acd32&gt;C:&amp;gt; vuln hello!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;&lt;FONT color=#9acd32&gt;The string is hello!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Τι θα γίνει όμως αν δώσουμε κάτι μεγαλύτερο από 8 &lt;SPAN style="mso-ansi-language:EN-US;"&gt;bytes&lt;/SPAN&gt;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ας δούμε...&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#9acd32&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;C&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;:&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;vuln&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#9acd32&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;The string is aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Unhandled exception at 0x61616161 in vuln.exe: 0xC0000005: Access violation reading location 0x61616161.&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Χμ... έσκασε. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ξέρετε τι είναι το 0&lt;SPAN style="mso-ansi-language:EN-US;"&gt;x&lt;/SPAN&gt;61616161?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Είναι η τιμή του καταχωρητή (&lt;SPAN style="mso-ansi-language:EN-US;"&gt;register&lt;/SPAN&gt;) &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP&lt;/SPAN&gt; (&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Extended&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Instruction&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Pointer&lt;/SPAN&gt;) ο οποίος δείχνει την επόμενη πρός εκτέλεση εντολή. Αυτός χωράει 4 &lt;SPAN style="mso-ansi-language:EN-US;"&gt;bytes&lt;/SPAN&gt;. Δηλαδή είναι 61 61 61 61. Το 61 είναι ένας 16δικός αριθμός που αναπαριστά τον χαρακτήρα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;a&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Μα βέβαια τον &lt;SPAN style="mso-ansi-language:EN-US;"&gt;a&lt;/SPAN&gt;!! Θυμάστε..! δώσαμε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;/SPAN&gt;. Οπότε καταφέραμε να γραψουμε επάνω στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP!! &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Σε&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;ποιά&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;θέση&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;όμως&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;της&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;σειράς&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;SPAN&gt;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &lt;/SPAN&gt;&lt;/SPAN&gt;έγινε&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;/SPAN&gt;το&lt;SPAN style="mso-ansi-language:EN-US;"&gt; &lt;SPAN&gt;overflow?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Κάποιος θα έλεγε στην 7η, δηλαδή στην αμέσως επόμενη από αυτήν που ορίζει το μήκος της μεταβλητής μας (&lt;SPAN style="mso-ansi-language:EN-US;"&gt;s&lt;/SPAN&gt;). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Nice&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;try&lt;/SPAN&gt;... δεν είναι όμως έτσι.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Υπάρχουνε 2 τρόποι να βρούμε την ακριβή διεύθυνση:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ο θεωρητικός και ο πρακτικός.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Έστω οτι δεν γνωρίζουμε θεωρία και ας πάμε με την γνωστή μέθοδο “&lt;SPAN style="mso-ansi-language:EN-US;"&gt;blind&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;attack&lt;/SPAN&gt;”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Αυτό που πρέπει να ξέρουμε είναι οτι (στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;stack&lt;/SPAN&gt;) &lt;SPAN style="mso-ansi-language:EN-US;"&gt;o&lt;/SPAN&gt;ι μεταβλητές μας αποθηκεύονται σε θέσεις των 4ων &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Bytes&lt;/SPAN&gt;. Για να βρούμε που ακριβώς σκάει το πρόγραμμα θα κανουμε ένα κόλπο. Θα&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;δώσουμε&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#9acd32&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;C&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;:&amp;gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;vuln&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;xxxxyyyyzzzzaaaabbbbcccc&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#9acd32&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;The string is xxxxyyyyzzzzaaaabbbbcccc&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#9acd32&gt;&lt;FONT style="BACKGROUND-COLOR:#000000;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Unhandled exception at 0x61616161 in vuln.exe: 0xC0000005: Access violation reading location 0x61616161.&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Πάλι 61!! Δηλαδή το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;aaaa&lt;/SPAN&gt; στις θέσεις 13-16 (4 θέσεις!). Τι είναι εκεί? Μα η διεύθυνση που δείχνει ο καταχωτητής της επόμενης προς εκτέλεση εντολής (ο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP&lt;/SPAN&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Άρα!!!!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Άν σε αυτές τις θέσεις βάλω μια «δική» μου διεύθυνση τότε το πρόγραμμα θα συνεχίσει την εκτέλεση του από εκεί που θα του πω εγώ!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Και λίγη θεωρία&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;~~~~~~~~~~~~~~~&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Γιατι ο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;IP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;«κοιτά» στην θεση 13?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;stack&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;που καταχωρούνται οι τιμές που δίνουμε είναι ως εξής:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;xxxx &amp;lt;- s[4]&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;yyyy &amp;lt;- s[2]&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;zzzz &amp;lt;- EBP&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;aaaa&lt;/SPAN&gt; &amp;lt;- &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP&lt;/SPAN&gt; !!!!!!! Εδώ γίνεται το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;bbbb&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;cccc&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Μπορεί την μεταβλητή &lt;SPAN style="mso-ansi-language:EN-US;"&gt;s&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;να την έχουμε δηλώσει σαν μέγεθος 6 αλλά στην πραγματικότητα τα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;bytes&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;που θα «κρατηθούν» στην μνήμη θα είναι πολλαπλάσια του 4, δηλαδή στην περίπτωση μας 8. &lt;SPAN style="mso-ansi-language:EN-US;"&gt;T&lt;/SPAN&gt;α πρώτα 8 &lt;SPAN style="mso-ansi-language:EN-US;"&gt;byte&lt;/SPAN&gt;ς, λοιπόν, φυλάχθηκαν για να κρατήσουν τα δεδομένα της μεταβλητής &lt;SPAN style="mso-ansi-language:EN-US;"&gt;s&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Τα επόμενα 4 κρατούνται για τον καταχωρητή &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Base&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Pointer&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;[7]. Τέλος, τα επόμενα 4 &lt;SPAN style="mso-ansi-language:EN-US;"&gt;bytes&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;κρατούνται από τον καταχωρητή &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP&lt;/SPAN&gt;. Δηλαδή αυτόν που μας ενδιαφέρει!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Επίθεση!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;~~~~~~~~&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Για την επίθεση θα χρησιμοποιήσουμε την εξής τεχνική:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Θα κάνουμε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;redirection&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;τον &lt;SPAN style="mso-ansi-language:EN-US;"&gt;EIP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;σε μια διεύθυνση που δείχνει σε μια &lt;SPAN style="mso-ansi-language:EN-US;"&gt;api&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;function&lt;/SPAN&gt; (την &lt;SPAN style="mso-ansi-language:EN-US;"&gt;WinExec&lt;/SPAN&gt;) μέσα στην &lt;SPAN style="mso-ansi-language:EN-US;"&gt;system&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;dll&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;kernel&lt;/SPAN&gt;32.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;dll&lt;/SPAN&gt;. Αυτήν την &lt;SPAN style="mso-ansi-language:EN-US;"&gt;dll&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;την «βλέπουνε» όλα τα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;executables&lt;/SPAN&gt;. Με αυτόν τον τρόπο δεν θα μπορέσει το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;να καταλάβει αν το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;redirection&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;έγινε από άλλο πρόγραμμα με «κακό» σκοπό ή από το ίδιο το πρόγραμμα «θύμα» μέσω μιας κανονικής κλήσης που αποτελούσε μέρος της κανονικής ροής του προγράμματος.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Αυτό που μας λείπει τώρα είναι η διεύθυνση της &lt;SPAN style="mso-ansi-language:EN-US;"&gt;WinExec&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Για να την βρούμε θα χρησιμοποιήσουμε ένα μικρό αλλά πολύ χρήσιμο προγραμματάκι. Το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;depends&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;exe&lt;/SPAN&gt; (μπορούμε να το κατεβάσουμε από το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;site&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;της &lt;SPAN style="mso-ansi-language:EN-US;"&gt;micro&lt;/SPAN&gt;$&lt;SPAN style="mso-ansi-language:EN-US;"&gt;oft&lt;/SPAN&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Ξεκινάμε&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;το&lt;SPAN style="mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;πρόγραμμα&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;. &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;Πατάμε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Open&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;και επιλέγουμε το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;vuln&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;exe&lt;/SPAN&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Η οθόνη του προγράμματος χωρίζετε σε 5 μέρη:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;12&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;13&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;44&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;55&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Επιλέχτε&lt;SPAN style="mso-ansi-language:EN-US;"&gt; Kernel32.DLL στο &lt;/SPAN&gt;μέρος &lt;SPAN style="mso-ansi-language:EN-US;"&gt;1.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Μετά, επιλέχτε (στο μέρος 3) την &lt;SPAN style="mso-ansi-language:EN-US;"&gt;WinExec&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;function&lt;/SPAN&gt;. Κρατήστε την διεύθυνση της &lt;SPAN style="mso-ansi-language:EN-US;"&gt;WinExec&lt;/SPAN&gt;. Ας την ονομάσουμε [&lt;SPAN style="mso-ansi-language:EN-US;"&gt;FA&lt;/SPAN&gt;] – (&lt;SPAN style="mso-ansi-language:EN-US;"&gt;function&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;address&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Τωρα, κρατήστε ένα ακόμα πράγμα:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;entry&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;point&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;address&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;της &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Kernel&lt;/SPAN&gt;32.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;που είναι η στήλη “&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Preffered&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Base&lt;/SPAN&gt;” στο κομμάτι 5. Ας την ονομάσουμε [&lt;SPAN style="mso-ansi-language:EN-US;"&gt;KBA&lt;/SPAN&gt;] - (&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Kernel&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Base&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Address&lt;/SPAN&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Η διεύθυνση που μας ενδιφέρει βρίσκεται από τον τύπο:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[&lt;SPAN style="mso-ansi-language:EN-US;"&gt;KBA&lt;/SPAN&gt;]+[&lt;SPAN style="mso-ansi-language:EN-US;"&gt;FA&lt;/SPAN&gt;]&lt;SPAN style="mso-ansi-language:EN-US;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;box&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;μου αυτή η διεύθυνση είναι η 0&lt;SPAN style="mso-ansi-language:EN-US;"&gt;x&lt;/SPAN&gt;7&lt;SPAN style="mso-ansi-language:EN-US;"&gt;c&lt;/SPAN&gt;86136&lt;SPAN style="mso-ansi-language:EN-US;"&gt;d&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Αυτό που μένει τώρα είναι να κάνουμε την επίθεση.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Εδώ (κλασικά) θα χρησιμοποιήσουμε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Perl&lt;/SPAN&gt;. Ο λόγος είναι οτι δεν μπορούμε με ποιο έυκολο τρόπο να περάσουμε στην &lt;SPAN style="mso-ansi-language:EN-US;"&gt;command&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;line&lt;/SPAN&gt; του &lt;SPAN style="mso-ansi-language:EN-US;"&gt;vuln&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;exe&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;την 16δική διεύθυνση 0&lt;SPAN style="mso-ansi-language:EN-US;"&gt;x&lt;/SPAN&gt;7&lt;SPAN style="mso-ansi-language:EN-US;"&gt;c&lt;/SPAN&gt;86136&lt;SPAN style="mso-ansi-language:EN-US;"&gt;d&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;παρά μόνο αν το καλέσουμε μέσα από ένα άλλο πρόγραμμα (αυτό της &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Perl&lt;/SPAN&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Φτιάχνουμε, λοιπόν, το εξής γελοίο πρόγραμμα σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;perl&lt;/SPAN&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;# c:\perl\bin\perl attack.perl&lt;BR&gt;#&lt;BR&gt;# Buffer overflow using Command line attach.&lt;BR&gt;# (c) by Thiseas 2007&lt;BR&gt;# &lt;BR&gt;$prg = "vuln xxxxyyyyzzzz\x6d\x13\x86\x7c explorer.exe";&lt;BR&gt;system($prg);&lt;/SPAN&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Δώστε βάση στην διεύθυνση που περνάμε ... είναι με την ανάποδη σειρά από αυτήν που βρήκαμε... Αυτό δεν θα το εξηγήσω, βρήτε και κάτι μόνοι σας, εκτός από αυτούς που ήδη το γνωρίζουν, στους οποίους ζητώ συγγνώμη για τον... «εξυπνακισμό» μου!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Το παραπάνω προγραμματάκι με &lt;SPAN style="mso-ansi-language:EN-US;"&gt;overflow&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;καλεί τον &lt;SPAN style="mso-ansi-language:EN-US;"&gt;windows&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;explorer&lt;/SPAN&gt;.. ;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Θα δούμε οτι «παίζει» ανεξάρτητα από το αν έχουμε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;activate&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DEP&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;ή οχι.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Παίζοντας με το παραπάνω παράδειγμα μπορούμε να βγάλουμε και άλλα χρήσιμα συμπεράσματα όπως επίσης και κάποια... παράδοξα. Δεν θα τα πω όλα εδώ όμως... άλλοστε αυτό το αρθράκι σκοπεύει στην περαιτέρω &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;μελέτη από εσάς μιας και ο στόχος είναι η γνώση που αποκτιέται από την προσωπική αφιέρωση και κόπο, γιατί μόνο τότε αξίζει πραγματικά.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Happy Programming&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;Bye By Thiseas&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;Αναφορές&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[1]. &lt;/FONT&gt;&lt;A href="http://support.microsoft.com/kb/875352"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://support.microsoft.com/kb/875352&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[2]. &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa366553.aspx"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://msdn2.microsoft.com/en-us/library/aa366553.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[3]. &lt;/FONT&gt;&lt;A href="http://www.uninformed.org/?v=2&amp;amp;a=4"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://www.uninformed.org/?v=2&amp;amp;a=4&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[4]. &lt;/FONT&gt;&lt;A href="http://www.nextgenss.com/papers/defeating-w2k3-stack-protection.pdf"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://www.nextgenss.com/papers/defeating-w2k3-stack-protection.pdf&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[5]. &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/X86_assembly_language"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://en.wikipedia.org/wiki/X86_assembly_language&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Courier New"&gt;[6.]. &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/Processor_register"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://en.wikipedia.org/wiki/Processor_register&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;[7]. &lt;/FONT&gt;&lt;A href="http://www.cs.miami.edu/~burt/journal/NT/basepointer.html"&gt;&lt;FONT face="Courier New" color=#800080&gt;http://www.cs.miami.edu/~burt/journal/NT/basepointer.html&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT face="Courier New"&gt;[8.]. &lt;/FONT&gt;&lt;A href="http://www.maxpatrol.com/defeating-xpsp2-heap-protection.pdf"&gt;&lt;FONT face="Courier New"&gt;http://www.maxpatrol.com/defeating-xpsp2-heap-protection.pdf&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item></channel></rss>