Was sind die Vorteile der Verwendung von EncodePointer/DecodePointer in Windows?Vorteile der Verwendung von EncodePointer/DecodePointer
MSDN
sagen:
Kodierung global verfügbaren Zeigern hilft ihnen zu schützen ausgenutzt werden. Die Funktion EncodePointer verschleiert den Zeigerwert mit einem Geheimnis, so dass er von einem externen Agenten nicht vorhergesagt werden kann. Das verwendete Geheimnis EncodePointer ist für jeden Prozess unterschiedlich.
Jetzt ist Frage: Wenn der Angreifer außerhalb meines Programms ist, dann ist sein Adressraum anders als mein Adressraum, so dass eine Adresse in meiner App nicht dafür verwendbar ist. und wenn es einen Code in meinem Adressraum ausführen kann, kann es DecodePointer aufrufen und diese Adresse verwenden, um codierten Zeiger aufzurufen.
Also was ist die Verwendung dieser Funktionen und wie helfen sie mir mit erhöhter Sicherheit?
Was ist, wenn der Angreifer * nicht * außerhalb Ihres Programms ist? Wie zum Beispiel ... jeder einzelne Angreifer in der Geschichte? –
@KerrekSB Wenn es in meinem Programm ist ?! Dann kann es einfach ** DecodePointer ** auf meinem Funktionszeiger aufrufen und dann normalerweise aufrufen. Was ist der Vorteil, etwas während der Dekodierung zu kodieren, so einfach wie das Aufrufen einer Funktion ohne Schlüssel oder so? und was macht den Angreifer unfähig, ** DecodePointer ** aufzurufen? –