Ich schreibe einen PDF-Viewer, der verschiedene in C geschriebene Bibliotheken verwendet. Dieser C-Code ist möglicherweise leicht auszunutzen. Und es gibt einfach zu viele Zeilen, um es zu überprüfen. Ich muss davon ausgehen, dass dieser Code möglicherweise ausnutzbare Fehler enthält.Erstellen eines bombensicheren Worker-Prozesses (unter Windows)
Die Sache ist, dass der C-Code ziemlich einfach ist. Ein Stream von Bytes geht an einem Ende ein und eine Bitmap (auch ein Stream von Bytes) kommt am anderen Ende heraus.
Inspiriert von Google Chrome, denke ich, einen separaten Prozess zu erstellen, der die Decodierung und das Seitenrendering durchführt. Idealerweise sollte dies in einem Prozess ausgeführt werden, der absolut keine Rechte hat, irgendetwas zu tun, außer das Lesen des einen Eingabestroms, den es hat, und das Ausgeben in einen Strom von Bytes (einige nicht komprimierte Bitmap) am anderen Ende.
Was ich der Prozess denken soll, ist nicht in der Lage sein zu tun:
- jeden Plattenzugriff
- offene Steckdosen
- begrenzte Menge an Speicher zu verwenden
- Zugriff Shared Memory mit anderen Prozessen
- laden andere dll's
- ... noch etwas?
Ist das möglich? Ist das irgendwo beschrieben?
mögliches Duplikat von [Gibt es eine leichte, programmierbare Sandbox-API für die Windows-Plattform?] (Http://stackoverflow.com/questions/2016731/is-there-a-lightweight-programmable-sandbox-api-for- the-windows-platform) –