花了点时间写代码来获取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'
在行尾增加"