花了点时间写代码来获取shellcode

#!/bin/sh

objdump -d $1 | awk -F ':|xor|mov|int' '{if(NR>7)print $2}' | sed 's/[ |\t]*$//g' | sed 's/\t/ /g' | sed 's/ /\\x/g' | sed 's/^/\"&/g' | sed 's/$/&\"/g'

效果:

[root@localhost shellcode]# ./getmyshellcode.sh getshell
"\x31\xd2"
"\x31\xc9"
"\x31\xdb"
"\xbb\x98\x90\x04\x08"
"\x31\xc0"
"\xb0\x0b"
"\xcd\x80"
"\xb3\x00"
"\xb0\x01"
"\xcd\x80"
[root@localhost shellcode]#

这样,就可以直接复制到C语言中去了。

sed解释:

sed 's/[ |\t]*$//g'

删除行尾的空格

sed 's/^/\"&/g'

在行首增加"

sed 's/$/&\"/g'

在行尾增加"