Shellcode Execution C++
Esta es la forma más simple de ejecutar shellcode en memoria, los pasos para lograr esto son los siguientes:
Almacenar el shellcode en una variable
Crear un espacio de memoria para este shellcode
Ejecutarlo
*exec es un puntero a la dirección que nos retornará VirtualAlloc. Esta dirección tendrá el espacio del shellcode y permisos de lectura, escritura y ejecución.
Con memcpy copiaremos el contenido del shellcode hacia la dirección *exec.
((void(*)()) exec)(); Esto lo que hace es, como en exec tenemos definido nuestro shellcode, es castear este bytearray a un function pointer con void(*)() exec, se hace esto por que al llamar a esta función (sin argumentos por que así se la definió) ejecutara los bytes, ya que el compilador los interpretará como código máquina. Esto se hace con el paréntesis del final, es decir ejecutamos la función.
Otra forma
Last updated