Softwarefehler, die zu einer Beschädigung des Speichers führen, sind ein häufiges und gefährliches Merkmal von Systemen, die in bestimmten Programmiersprachen entwickelt wurden. Solche Fehler sind Sicherheitslücken, wenn sie von einem Angreifer ausgenutzt werden können, um die Ausführung von bösartigem Code auszulösen. Die Feststellung, ob eine solche Möglichkeit besteht, ist ein zeitraubender Prozess und erfordert technisches Fachwissen in einer Reihe von Bereichen. Oft ist die einzige Möglichkeit, um sicher zu sein, dass ein Fehler tatsächlich von einem Angreifer ausgenutzt werden kann, die Entwicklung eines vollständigen Exploits. Genau diesen Prozess wollen wir automatisieren. Wir stellen einen neuartigen Algorithmus vor, der die Datenflussanalyse und ein Entscheidungsverfahren mit dem Ziel der automatischen Erstellung von Exploits integriert. Die von uns erstellten Exploits sind so konstruiert, dass sie den Kontrollfluss einer Anwendung kapern und ihn zu bösartigem Code umleiten.