char shellcode[]="\x31\xc0\x31\xdb\xeb\x23\x5b\x6a\x0c\x53\x6a\x01\xb8\x15\x11\x
11\x11"
"\x35\x11\x11\x11\x11\x50\xcd\x80\x83\xc4\x0c\xb8\x12\x11\x11\x11"
"\x35\x13\x11\x11\x11\x50\xcd\x80\xe8\xd8\xff\xff\xff\x48\x65\x6c\x6c"
"\x6f\x20\x77\x6f\x72\x6c\x64\x0a\x00\x90\x55\x89\xe5\x83";

#Program: hello world shellcode for BSD
#Program by: lockdown	(www.lockeddown.net)
#Date: May 19, 2001
#The code below was used to make the shellcode above.

	.text
	.global main
main:	xor %eax, %eax		#zero out the registers
	xor %ebx, %ebx
	jmp bottom
top:	popl %ebx		#pop the string
	pushl $12		#size of string
	pushl %ebx		#register with the string
	pushl $1		#fd
	movl $0x11111115, %eax	#xor to get rid of nulls, result is 4(write)
	xorl $0x11111111, %eax
	pushl %eax
	int $0x80
	add $12,%esp
	movl $0x11111112,%eax   #xor to get rid of nulls, result is 1(exit)
	xorl $0x11111113,%eax
	pushl %eax
	int $0x80
bottom:	call top
	.string "Hello world\n"

