Пример #1
0
 def read_by_bin(bin_data):
     return LSProcessRole(
         bin_num(bin_data[1:9], 8),
         is_bit_flagged(bin_data[9], 0b1000),
         is_bit_flagged(bin_data[9], 0b0100),
         is_bit_flagged(bin_data[9], 0b0010),
         is_bit_flagged(bin_data[9], 0b0001))
Пример #2
0
 def read_by_bin(bin_data):
     return LSBindUser(bin_num(bin_data[1:5], 4))
Пример #3
0
 def read_by_bin(bin_data):
     return LSBindProcess(
         bin_num(bin_data[1:9], 8),
         is_bit_flagged(bin_data[9], 0b001))
Пример #4
0
 def read_by_bin(bin_data):
     return LSFileRole(
         bin_num(bin_data[1:9], 8),
         not is_bit_flagged(bin_data[9], 0b100),
         not is_bit_flagged(bin_data[9], 0b010),
         not is_bit_flagged(bin_data[9], 0b001))
Пример #5
0
 def read_by_bin(bin_data):
     return LSNetworkRole(
         bin_num(bin_data[1:3], 2),
         is_bit_flagged(bin_data[3], 0b001))
Пример #6
0
 def read_by_bin(bin_data):
     return LSBindUser(bin_num(bin_data[1:5], 4))
Пример #7
0
    def read_by_bin(bin_data):

	if len(bin_data) != 0:
            LSRole.PASSWORD = bin_data[:20]
            offset = 20
	else:
            offset = 0
        roles_list = list()

        while offset < len(bin_data):
            role_name_len = bin_data[offset]
            offset += 1
            role_name = bin_data[
                offset:(offset + role_name_len)
            ].decode('ascii')

            offset += role_name_len

            parent_role_name_len = bin_data[offset]
            offset += 1
            parent_role_name = bin_data[
                offset:(offset + parent_role_name_len)
            ].decode('ascii')

            offset += parent_role_name_len

            attr_count = bin_num(bin_data[offset:(offset + 4)], 4)
            offset += (600 - role_name_len - parent_role_name_len - 2)

            role = LSRole(role_name, parent_role_name=parent_role_name)

            for i in range(attr_count):
                attr_data = bin_data[offset:(offset + 10)]
                offset += 10

                if attr_data[0] == 0x01:
                    role.file_roles.append(
                        LSFileRole.read_by_bin(attr_data))
                elif attr_data[0] == 0x02:
                    role.network_roles.append(
                        LSNetworkRole.read_by_bin(attr_data))
                elif attr_data[0] == 0x03:
                    role.process_roles.append(
                        LSProcessRole.read_by_bin(attr_data))
                elif attr_data[0] == 0xfe:
                    role.bind_processes.append(
                        LSBindProcess.read_by_bin(attr_data))
                elif attr_data[0] == 0xff:
                    role.bind_users.append(
                        LSBindUser.read_by_bin(attr_data))
                else:
                    pass

            roles_list.append(role)

        if len(roles_list) > 0:
            top_role = roles_list[0]
        else:
            top_role = LSRole('default')

        for child in roles_list:
            for parent in roles_list:
                if child.parent_role_name == parent.role_name:
                    child.parent_role = parent
                    parent.child_roles[child.role_name] = child
                    break

        return top_role
Пример #8
0
 def read_by_bin(bin_data):
     return LSBindProcess(bin_num(bin_data[1:9], 8),
                          is_bit_flagged(bin_data[9], 0b001))
Пример #9
0
 def read_by_bin(bin_data):
     return LSProcessRole(bin_num(bin_data[1:9], 8),
                          is_bit_flagged(bin_data[9], 0b1000),
                          is_bit_flagged(bin_data[9], 0b0100),
                          is_bit_flagged(bin_data[9], 0b0010),
                          is_bit_flagged(bin_data[9], 0b0001))
Пример #10
0
 def read_by_bin(bin_data):
     return LSNetworkRole(bin_num(bin_data[1:3], 2),
                          is_bit_flagged(bin_data[3], 0b001))
Пример #11
0
 def read_by_bin(bin_data):
     return LSFileRole(bin_num(bin_data[1:9],
                               8), not is_bit_flagged(bin_data[9], 0b100),
                       not is_bit_flagged(bin_data[9], 0b010),
                       not is_bit_flagged(bin_data[9], 0b001))
Пример #12
0
    def read_by_bin(bin_data):

        if len(bin_data) != 0:
            LSRole.PASSWORD = bin_data[:20]
            offset = 20
        else:
            offset = 0
        roles_list = list()

        while offset < len(bin_data):
            role_name_len = bin_data[offset]
            offset += 1
            role_name = bin_data[offset:(offset +
                                         role_name_len)].decode('ascii')

            offset += role_name_len

            parent_role_name_len = bin_data[offset]
            offset += 1
            parent_role_name = bin_data[offset:(
                offset + parent_role_name_len)].decode('ascii')

            offset += parent_role_name_len

            attr_count = bin_num(bin_data[offset:(offset + 4)], 4)
            offset += (600 - role_name_len - parent_role_name_len - 2)

            role = LSRole(role_name, parent_role_name=parent_role_name)

            for i in range(attr_count):
                attr_data = bin_data[offset:(offset + 10)]
                offset += 10

                if attr_data[0] == 0x01:
                    role.file_roles.append(LSFileRole.read_by_bin(attr_data))
                elif attr_data[0] == 0x02:
                    role.network_roles.append(
                        LSNetworkRole.read_by_bin(attr_data))
                elif attr_data[0] == 0x03:
                    role.process_roles.append(
                        LSProcessRole.read_by_bin(attr_data))
                elif attr_data[0] == 0xfe:
                    role.bind_processes.append(
                        LSBindProcess.read_by_bin(attr_data))
                elif attr_data[0] == 0xff:
                    role.bind_users.append(LSBindUser.read_by_bin(attr_data))
                else:
                    pass

            roles_list.append(role)

        if len(roles_list) > 0:
            top_role = roles_list[0]
        else:
            top_role = LSRole('default')

        for child in roles_list:
            for parent in roles_list:
                if child.parent_role_name == parent.role_name:
                    child.parent_role = parent
                    parent.child_roles[child.role_name] = child
                    break

        return top_role