Nicolas Iooss 36ca6fa5a7 Make defines.is_printable support bytes
`uefi_search.py` calls `is_printable` with bytes, in:

    m = re.compile(bytes(rule['regexp'], 'utf-8')).search(efi.Image)
    if m:
        match_result |= MATCH_REGEXP
        _str = m.group(0)
        hexver = binascii.hexlify(_str)
        printver = f" ('{_str}')" if defines.is_printable(_str) else ''

... because `_str` has actually type `bytes`, not `str`.

When `is_printable` is called with bytes, it always return `False`,
because in

    set(seq).issubset(set(string.printable))

`set(seq)` is a set of integers and `set(string.printable)` is a set of
strings.

Fix this by always converting the parameter to string, using
`bytestostring`. This is not the most efficient way of doing this (a
more efficient would be `set(seq).issubset(set(string.printable.encode()))`
with some caching of the second set) but it is simple and makes caller
less likely to use the function in an unsupported way.

Signed-off-by: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
2023-06-05 16:45:19 -07:00
2023-05-08 09:27:49 -07:00
2022-05-18 13:14:24 -07:00
2023-05-31 09:40:42 -07:00
2016-06-30 15:34:21 -07:00
2014-03-06 13:57:11 -08:00
2022-07-25 17:05:40 -07:00
2022-02-09 16:38:01 -08:00
2023-05-10 16:38:26 -07:00

CHIPSEC: Platform Security Assessment Framework

Build Status

CHIPSEC is a framework for analyzing the security of PC platforms including hardware, system firmware (BIOS/UEFI), and platform components. It includes a security test suite, tools for accessing various low level interfaces, and forensic capabilities. It can be run on Windows, Linux, Mac OS X and UEFI shell. Instructions for installing and using CHIPSEC can be found in the manual.

NOTE: This software is for security testing purposes. Use at your own risk. Read WARNING.txt before using.

First version of CHIPSEC was released in March 2014: Announcement at CanSecWest 2014

Recent presentation on how to use CHIPSEC to find vulnerabilities in firmware, hypervisors and hardware configuration, explore low level system assets and even detect firmware implants: Exploring Your System Deeper

Release Convention

  • CHIPSEC uses a major.minor.patch release version number
  • Changes to the arguments or calling conventions will be held for a minor version update

Projects That Include CHIPSEC

Contact Us

For any questions or suggestions please contact us at: chipsec@intel.com

Mailing list:

Twitter:

For AMD related questions or suggestions please contact Gabriel Kerneis at: Gabriel.Kerneis@ssi.gouv.fr

S
Description
Automated archival mirror of github.com/chipsec/chipsec
Readme GPL-2.0 130 MiB
Languages
Python 90.6%
C 7.6%
Assembly 1.6%
Batchfile 0.1%