예제 #1
0
파일: uefi.py 프로젝트: Jaysenli/chipsec
def print_efi_variable(offset, efi_var_buf, EFI_var_header, efi_var_name,
                       efi_var_data, efi_var_guid, efi_var_attributes):
    logger().log('\n--------------------------------')
    logger().log('EFI Variable (offset = 0x{:X}):'.format(offset))
    logger().log('--------------------------------')

    # Print Variable Name
    logger().log(u'Name      : {}'.format(efi_var_name))
    # Print Variable GUID
    logger().log('Guid      : {}'.format(efi_var_guid))

    # Print Variable State
    if EFI_var_header:
        if 'State' in EFI_var_header._fields:
            state = getattr(EFI_var_header, 'State')
            state_str = 'State     :'
            if uefi_platform.IS_VARIABLE_STATE(
                    state, uefi_platform.VAR_IN_DELETED_TRANSITION):
                state_str = state_str + ' IN_DELETED_TRANSITION +'
            if uefi_platform.IS_VARIABLE_STATE(state,
                                               uefi_platform.VAR_DELETED):
                state_str = state_str + ' DELETED +'
            if uefi_platform.IS_VARIABLE_STATE(state, uefi_platform.VAR_ADDED):
                state_str = state_str + ' ADDED +'
            logger().log(state_str)

        # Print Variable Complete Header
        if logger().VERBOSE:
            if EFI_var_header.__str__:
                logger().log(EFI_var_header)
            else:
                logger().log('Decoded Header ({}):'.format(
                    uefi_platform.EFI_VAR_DICT[
                        uefi_platform.FWType.EFI_FW_TYPE_UEFI]['name']))
                for attr in EFI_var_header._fields:
                    logger().log('{} = {:X}'.format(
                        '{0:<16}'.format(attr), getattr(EFI_var_header, attr)))

    attr_str = ('Attributes: 0x{:X} ( {} )'.format(
        efi_var_attributes, get_attr_string(efi_var_attributes)))
    logger().log(attr_str)

    # Print Variable Data
    logger().log('Data:')
    print_buffer(bytestostring(efi_var_data))

    # Print Variable Full Contents
    if logger().VERBOSE:
        logger().log('Full Contents:')
        if not efi_var_buf is None:
            print_buffer(bytestostring(efi_var_buf))
예제 #2
0
def print_efi_variable(offset, efi_var_buf, EFI_var_header, efi_var_name,
                       efi_var_data, efi_var_guid, efi_var_attributes):
    logger().log('\n--------------------------------')
    logger().log('EFI Variable (offset = 0x%x):' % offset)
    logger().log('--------------------------------')

    # Print Variable Name
    logger().log('Name      : %s' % efi_var_name)
    # Print Variable GUID
    logger().log('Guid      : %s' % efi_var_guid)

    # Print Variable State
    if EFI_var_header:
        if 'State' in EFI_var_header._fields:
            state = getattr(EFI_var_header, 'State')
            state_str = 'State     :'
            if uefi_platform.IS_VARIABLE_STATE(
                    state, uefi_platform.VAR_IN_DELETED_TRANSITION):
                state_str = state_str + ' IN_DELETED_TRANSITION +'
            if uefi_platform.IS_VARIABLE_STATE(state,
                                               uefi_platform.VAR_DELETED):
                state_str = state_str + ' DELETED +'
            if uefi_platform.IS_VARIABLE_STATE(state, uefi_platform.VAR_ADDED):
                state_str = state_str + ' ADDED +'
            logger().log(state_str)

        # Print Variable Complete Header
        if logger().VERBOSE:
            if EFI_var_header.__str__:
                logger().log(EFI_var_header)
            else:
                logger().log('Decoded Header (%s):' %
                             uefi_platform.EFI_VAR_DICT[self._FWType]['name'])
                for attr in EFI_var_header._fields:
                    logger().log('%s = %X' % ('{0:<16}'.format(attr),
                                              getattr(EFI_var_header, attr)))

    attr_str = ('Attributes: 0x%X ( ' % efi_var_attributes
                ) + get_attr_string(efi_var_attributes) + ' )'
    logger().log(attr_str)

    # Print Variable Data
    logger().log('Data:')
    print_buffer(efi_var_data)

    # Print Variable Full Contents
    if logger().VERBOSE:
        logger().log('Full Contents:')
        print_buffer(efi_var_buf)