Hola, no entiendo por qué intentas almacenar una serie de 0, strcpy copia strings hasta que detecta una terminación null, en este caso el 0 que estás copiando. Yo lo solucionaría con un ROP Gagdet (MASM):
- XOR r32,r32, RET
- PUSH r32, RET
donde r32 debe ser cualquier registro de propósito general, de esta forma con la primera cadena de ROP se deja un registro en 0 y luego con la segunda, se es empujado.
Otra alternativa de ROP Gadget:
- MOV r32,0FFFFFFFFh, RET
- INC r32,RET
- PUSH r32, RET
De esta forma al incrementar el registro, se convertirá en 0. Todavía no me inicio con exploits en linux, pero espero que sea de utilidad, si no lo es. Mis disculpas, saludos.
- XOR r32,r32, RET
- PUSH r32, RET
donde r32 debe ser cualquier registro de propósito general, de esta forma con la primera cadena de ROP se deja un registro en 0 y luego con la segunda, se es empujado.
Otra alternativa de ROP Gadget:
- MOV r32,0FFFFFFFFh, RET
- INC r32,RET
- PUSH r32, RET
De esta forma al incrementar el registro, se convertirá en 0. Todavía no me inicio con exploits en linux, pero espero que sea de utilidad, si no lo es. Mis disculpas, saludos.