<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://update.proggen.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://update.proggen.org/feed.php">
        <title>proggen.org security:memory-corruption:exploitation</title>
        <description></description>
        <link>http://update.proggen.org/</link>
        <image rdf:resource="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico" />
       <dc:date>2026-04-19T15:24:08+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:basic&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:external-buffers&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:nop-sled&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:rop&amp;rev=1663868367"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico">
        <title>proggen.org</title>
        <link>http://update.proggen.org/</link>
        <url>http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico</url>
    </image>
    <item rdf:about="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:basic&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>security:memory-corruption:exploitation:basic</title>
        <link>http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:basic&amp;rev=1663868367</link>
        <description>Basic Concepts of Buffer Overflows

Interacting with memory is part of every non-trivial program. In order to guarantee successful data processing, it is of utmost importance to correctly manage data buffer sizes. Writing more data than the buffer is able to contain, results in a so-called buffer overflow. The memory region following directly afterwards is overwritten in this case. This chapter tries to explain this behavior and its effect in a detailed and practical way.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:external-buffers&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>security:memory-corruption:exploitation:external-buffers</title>
        <link>http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:external-buffers&amp;rev=1663868367</link>
        <description>Environment Variable and Command Line Argument Buffers

Considering a NOP sled and the shellcode, the memory region available for the overall payload might become too small pretty soon. Instead of using only buffers of the application to store the payload, it is also possible to use buffers implicitly included in the application by the operating system. Specifically, parts of the payload can be stored in environment variables or command line arguments</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:nop-sled&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>security:memory-corruption:exploitation:nop-sled</title>
        <link>http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:nop-sled&amp;rev=1663868367</link>
        <description>NOP Sled

To directly transfer control flow to our shellcode, we need to specify its address as the return address of the current function. However, guessing the exact address can be very hard, especially on remote machines without the possibility to use a debugger. Already minor system differences can lead to a different stack layout.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:rop&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>security:memory-corruption:exploitation:rop</title>
        <link>http://update.proggen.org/doku.php?id=security:memory-corruption:exploitation:rop&amp;rev=1663868367</link>
        <description>Return-oriented Programming (ROP)

In the previous chapters the usage of existing functions as well as custom shellcode as execution target were discussed. As using existing functions is rather inflexible and there are several protection mechanisms avoiding the injection of custom executable code, an advanced exploitation approach is required. This chapter focuses on exploitation by returning to existing code which is generally called Return-oriented Programming (ROP). Due to the fact that ROP u…</description>
    </item>
</rdf:RDF>
