if have_command nasm && have_command objdump ; then assemble_shellcode() { if [ -z "$1" ] ; then echo "Usage: $0 " >&2 ; return 1 ; fi local NASM=`command which nasm` local OBJDUMP=`command which objdump` local TMPF=`mktemp` local bytes local byte local format="elf" if [[ "$OSTYPE" == darwin* ]]; then format="macho64" fi $NASM -f $format -o $TMPF $1 $OBJDUMP -M intel -d $TMPF | grep '^ ' | cut -f2 | while read -A bytes ; do for byte in $bytes ; do echo -n "\\\\x$byte" done done echo rm $TMPF } fi