Estoy interesado en ROP en el contexto de Java. Por ahora, no considero el código nativo de la máquina virtual Java.
¿La programación orientada al retorno es aplicable a código Java puro?
Estoy interesado en ROP en el contexto de Java. Por ahora, no considero el código nativo de la máquina virtual Java.
¿La programación orientada al retorno es aplicable a código Java puro?
En "Java puro", no hay desbordamiento de búfer o uso después de doble o doble o nada de eso. De esto se trata la parte "VM" de "JVM". ROP es algo que se usa para aprovechar una ruptura inicial, por lo que logró sobrescribir la "dirección de retorno" para alguna función e indujo a la CPU a saltar a donde desea. Por definición, estas condiciones no pueden surgir en "Java puro", por lo que ROP es irrelevante. No puede suceder.
Por supuesto, si la implementación de JVM tiene un error explotable, o si se invoca un código nativo, entonces todo lo relacionado con los desbordamientos de búfer regresa. Pero entonces, está hablando sobre el uso de ROP en algún código C / C ++ y ya no sobre Java.