Al configurar los caracteres incorrectos para el código de shell, ¿hay algún inconveniente al suponer que debe marcar \ x00 y \ x0a como incorrectos?
Para shellcode, el único problema potencial son las restricciones de tamaño. Pero suponer que los bytes nulos son malos es un mal hábito. Podría pensar erróneamente que un bloqueo no se puede explotar porque las únicas direcciones de pop pop ret / ROP viables comienzan con un byte nulo.
Determinar los bytes incorrectos exactos no requiere mucho tiempo y siempre recomiendo hacerlo, ya que puede ahorrar tiempo si necesitas solucionar tu Shellcode.
No en general, ya que NULL y Line Feed son siempre caracteres erróneos. Pero el tamaño de tu código aumentará. No automatizaría esto aunque.
Por ejemplo, en el ensamblador IA32 puede reemplazar la instrucción
B8 01000000 MOV EAX,1 // Set the register EAX to 0x000000001
Con
33C0 XOR EAX,EAX // Set the register EAX to 0x000000000
40 INC EAX // Increase EAX to 0x00000001
Esto incluso requiere menos bytes para codificar, pero en general será más tedioso reemplazar los caracteres a medida que aumenta el número de caracteres incorrectos.
Lea otras preguntas en las etiquetas shellcode metasploit