Tecnología

Inicio

Cómo escribir el desbordamiento del búfer en Java

James Gosling de Sun Microsystems desarrolló el lenguaje de programación Java en 1995. Es un propósito general C ++ lenguaje derivado usado en muchos sitios web en forma de applets y servlets que amplían la funcionalidad de los servidores web. Un desbordamiento de búfer es un error de programación, no intencional o no, que se pone a escribir a las células de memoria adyacentes, que normalmente será anulado por razones de seguridad. Java es típicamente un poco a salvo de desbordamiento del búfer, ya que tiene "la comprobación de límites", que crea automáticamente excepciones, que se asegura de código no pueden acceder accidentalmente a la memoria adyacente no autorizado. Sin embargo, el acceso administrativo al servidor Java puede forzar Java para ejecutar código externo que puede forzar desbordamiento de búfer.

Instrucciones

1 El acceso de Java Native Interface (JNI) en la máquina virtual de Java que se ejecuta JavaScript. Esta es la única manera de provocar un desbordamiento de memoria en Java, mediante la introducción de código externo, no administrado, como en C ++.

2 Abrir o crear un nuevo guión en la base de datos. Creación de una secuencia de comandos independiente es mejor para aislar la secuencia de comandos de desbordamiento del búfer, por lo que puede deshacer fácilmente el efecto que causa.

3 Pegue esta secuencia de comandos:

auto char buf [64], en [MAX_SIZE];
printf ( "Introduzca los contenidos del búfer: \ n");
leer (0, en, MAX_SIZE-1);
printf ( "bytes a copiar: \ n");
scanf ( "% d", y bytes);
memcpy (buf, en, bytes);

A continuación, ejecutarlo. En el navegador, se le debería pedir "Bytes copiar" e introduzca un número arbitrariamente grande. Este ejemplo de código se basa en la entrada del usuario para provocar el desbordamiento.