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))
def read_by_bin(bin_data): return LSBindUser(bin_num(bin_data[1:5], 4))
def read_by_bin(bin_data): return LSBindProcess( bin_num(bin_data[1:9], 8), is_bit_flagged(bin_data[9], 0b001))
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))
def read_by_bin(bin_data): return LSNetworkRole( bin_num(bin_data[1:3], 2), is_bit_flagged(bin_data[3], 0b001))
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
def read_by_bin(bin_data): return LSBindProcess(bin_num(bin_data[1:9], 8), is_bit_flagged(bin_data[9], 0b001))
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))
def read_by_bin(bin_data): return LSNetworkRole(bin_num(bin_data[1:3], 2), is_bit_flagged(bin_data[3], 0b001))
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))
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