Hi,
I cant help much with malzilla, but I will explain how I do it.
First thing to do is clean up the shellcode, removing quotes (hex 0x27 and 0x22) and plus signs:
$ perl -i -pe 's/[\x27\x22\+]//g' shellcode
Now convert it to its character representation:
$ cat shellcode | perl -pe 's/\%u(..)(..)/chr(hex($2)).chr(hex($1))/ge' > shellcode2
At this step I usually take a look at its hexdump, and would notice it might be xored.
There is an excellent program by Didier Stevens called XORSearch, which lets you search for a string to find the XOR key.
Get it at
http://blog.didierstevens.com/programs/xorsearch/So we are simply searching for the string 'http':
$ ./xorsearch shellcode2 http
Found XOR BD position 03A3: http://xin254536.3322.org:89/x8.exe
You can now either use the -s switch of xorsearch to save an 'unxored' copy to disk, or use perl again
$ cat shellcode2 | perl -pe 's/(.)/chr(ord($1)^0xBD)/ge' > shellcode3
All this is possible on windows too.
Regards,
Philipp