Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.222.91.173
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/thread-self/root/proc/self/root/lib64/python2.7/Demo/rpc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/thread-self/root/proc/self/root/lib64/python2.7/Demo/rpc/xdr.py
# Implement (a subset of) Sun XDR -- RFC1014.


try:
    import struct
except ImportError:
    struct = None


Long = type(0L)


class Packer:

    def __init__(self):
        self.reset()

    def reset(self):
        self.buf = ''

    def get_buf(self):
        return self.buf

    def pack_uint(self, x):
        self.buf = self.buf + \
                (chr(int(x>>24 & 0xff)) + chr(int(x>>16 & 0xff)) + \
                 chr(int(x>>8 & 0xff)) + chr(int(x & 0xff)))
    if struct and struct.pack('l', 1) == '\0\0\0\1':
        def pack_uint(self, x):
            if type(x) == Long:
                x = int((x + 0x80000000L) % 0x100000000L \
                           - 0x80000000L)
            self.buf = self.buf + struct.pack('l', x)

    pack_int = pack_uint

    pack_enum = pack_int

    def pack_bool(self, x):
        if x: self.buf = self.buf + '\0\0\0\1'
        else: self.buf = self.buf + '\0\0\0\0'

    def pack_uhyper(self, x):
        self.pack_uint(int(x>>32 & 0xffffffff))
        self.pack_uint(int(x & 0xffffffff))

    pack_hyper = pack_uhyper

    def pack_float(self, x):
        # XXX
        self.buf = self.buf + struct.pack('f', x)

    def pack_double(self, x):
        # XXX
        self.buf = self.buf + struct.pack('d', x)

    def pack_fstring(self, n, s):
        if n < 0:
            raise ValueError, 'fstring size must be nonnegative'
        n = ((n + 3)//4)*4
        data = s[:n]
        data = data + (n - len(data)) * '\0'
        self.buf = self.buf + data

    pack_fopaque = pack_fstring

    def pack_string(self, s):
        n = len(s)
        self.pack_uint(n)
        self.pack_fstring(n, s)

    pack_opaque = pack_string

    def pack_list(self, list, pack_item):
        for item in list:
            self.pack_uint(1)
            pack_item(item)
        self.pack_uint(0)

    def pack_farray(self, n, list, pack_item):
        if len(list) <> n:
            raise ValueError, 'wrong array size'
        for item in list:
            pack_item(item)

    def pack_array(self, list, pack_item):
        n = len(list)
        self.pack_uint(n)
        self.pack_farray(n, list, pack_item)


class Unpacker:

    def __init__(self, data):
        self.reset(data)

    def reset(self, data):
        self.buf = data
        self.pos = 0

    def done(self):
        if self.pos < len(self.buf):
            raise RuntimeError, 'unextracted data remains'

    def unpack_uint(self):
        i = self.pos
        self.pos = j = i+4
        data = self.buf[i:j]
        if len(data) < 4:
            raise EOFError
        x = long(ord(data[0]))<<24 | ord(data[1])<<16 | \
                ord(data[2])<<8 | ord(data[3])
        # Return a Python long only if the value is not representable
        # as a nonnegative Python int
        if x < 0x80000000L: x = int(x)
        return x
    if struct and struct.unpack('l', '\0\0\0\1') == 1:
        def unpack_uint(self):
            i = self.pos
            self.pos = j = i+4
            data = self.buf[i:j]
            if len(data) < 4:
                raise EOFError
            return struct.unpack('l', data)

    def unpack_int(self):
        x = self.unpack_uint()
        if x >= 0x80000000L: x = x - 0x100000000L
        return int(x)

    unpack_enum = unpack_int

    unpack_bool = unpack_int

    def unpack_uhyper(self):
        hi = self.unpack_uint()
        lo = self.unpack_uint()
        return long(hi)<<32 | lo

    def unpack_hyper(self):
        x = self.unpack_uhyper()
        if x >= 0x8000000000000000L: x = x - 0x10000000000000000L
        return x

    def unpack_float(self):
        # XXX
        i = self.pos
        self.pos = j = i+4
        data = self.buf[i:j]
        if len(data) < 4:
            raise EOFError
        return struct.unpack('f', data)[0]

    def unpack_double(self):
        # XXX
        i = self.pos
        self.pos = j = i+8
        data = self.buf[i:j]
        if len(data) < 8:
            raise EOFError
        return struct.unpack('d', data)[0]

    def unpack_fstring(self, n):
        if n < 0:
            raise ValueError, 'fstring size must be nonnegative'
        i = self.pos
        j = i + (n+3)//4*4
        if j > len(self.buf):
            raise EOFError
        self.pos = j
        return self.buf[i:i+n]

    unpack_fopaque = unpack_fstring

    def unpack_string(self):
        n = self.unpack_uint()
        return self.unpack_fstring(n)

    unpack_opaque = unpack_string

    def unpack_list(self, unpack_item):
        list = []
        while 1:
            x = self.unpack_uint()
            if x == 0: break
            if x <> 1:
                raise RuntimeError, '0 or 1 expected, got %r' % (x, )
            item = unpack_item()
            list.append(item)
        return list

    def unpack_farray(self, n, unpack_item):
        list = []
        for i in range(n):
            list.append(unpack_item())
        return list

    def unpack_array(self, unpack_item):
        n = self.unpack_uint()
        return self.unpack_farray(n, unpack_item)

Youez - 2016 - github.com/yon3zu
LinuXploit