Removed hardcoded offsets from hal.spi when reading FREGx and PRx and
replaced with XML config.
This commit also includes PR #109 (Make sure Limit of SPI Protected
Range is calculated correctly) by @timevortex except bits 11:0 of PRx
limit are also set to FFFh when PRL field is 0 (in this case PRx applies
to the first 4kB of flash).
* Windows helper improvements
- chipsec service management in Windows helper is simplified via
win32serviceutil, better error handling
- fixed issues with chipsec service not being stopped/deleted
- "exists" command-line option is deprecated. If chipsec service is
running we'll connect to it
- removed support of running old modules that don't inherit BaseModule
- bumped chipsec version to 1.2.5
* Fixing return values in service functions
* compile cores.so with linux driver
* Releasing new modules
added memconfig, common.ia32cfg, common.rtclock, common.spi_fdopss, and
tools.cpu.sinkhole
* Correct name and XML cfg for Cherry Trail
Previously did not have XML config and incorrectly listed as "Braswell".
Tested on Compute Stick CS125 with Atom x5-Z8330.
* Braswell & Cherry Trail have same DID
Further inspection shows that both Braswell and Cherry Trail SoCs share
the same DID. Therefore, modifying the names in chipset.py to reflect
either one.
* Added detection of EFI binaries vulnerable to ThinkPwn to tools.uefi.blacklist module config
This commit extends blacklist.json black-list configuration file for
tools.uefi.blacklist module with detection of EFI binaries vulnerable to
vulnerability in SystemSmmRuntimeRt a.k.a. 'ThinkPwn' discovered by
Dmytro Oleksiuk (@d_olex). Reference:
http://blog.cr4.sh/2016/06/exploring-and-exploiting-lenovo.html
The attributes detected are
- GUID of vulnerable UEFI SmmRuntime protocol within contents of EFI
binaries
- 2 names (aka UI strings) 'SystemSmmRuntimeRt.efi' and 'SmmRuntime' and
2 GUIDs of vulnerable EFI binaries found in different systems
* Comments
PR #59 did modifications to OSHelper interface with native helpers
(usage of start_driver and driver_loaded, removing destroy...). OSX
helper didn't pick them up. This commit syncs OSX helper
* BIOS images parsing improved. Minor issues fixed.
* Fixed ValidateFwVolumeHeader. More accurate driver requirements for uefi cmd.
* More relaxed check in ValidateFwVolumeHeader.
* Changes in NVAR UEFI variables parsing proposed by Sebastien Bourdon-Richard
* Issue #81: fixed error in getNVstore_NVAR, returned wrong NV store. Shortened check UD/not UD and fix NVRAM directory creation in traverse_uefi_region.
* fix path error in chipsec_util after install chipsec on the linux system
* Refactored setup.py for use setuptools. Small changes in chipsec_util/chipsec_main for it
* cleanup
* 1) Moved directory drivers from chipsec/source/drivers to chipsec/source/tool
It's necessary for packing driver source code into python package by setup.py
2) In setup.py for Linux version of CHIPSEC:
1. Add driver to the package
2. Add option full_build for build and install CHIPSEC with driver
* Native API mode support
With this change CHIPSEC can operate in two modes:
1. Using CHIPSEC own kernel driver (default mode, --no_driver option was
not specified)
2. Native OS API mode when helper API can be implemented via native OS
API (--no_driver command-line option was specified)
At the moment, most of the helper API are not implemented in native
mode, except get_ACPI_table in Windows helper.
Helpers, HAL components or modules can use use_native_api() function of
the helper to determine which mode to use. Currently, it directly maps
to --no_driver option. Modules can call this function in is_supported()
if they can only run in either of the modes.
Additional changes:
1. Cleaned up destroy/delete/stop mess in the helpers. Removed destroy()
from the helpers
2. Fixed --exists mode when CHIPSEC works with kernel driver which has
already been loaded.
* Fixed missing driver_exists in start() in Linux and EFI helpers
* Updated mock_helper
* use_native_api
- Added use_native_api to cs
- Added use_native_api routing to OSHelper
- Refactred Linux helper to have "native" functions (physical_mem,
pci_reg, mmio, variables)
* Bugfixes
1. Chaged ACPI HAL to use read_physical_mem in native API mode as well
(/dev/mem) and only attempt get_ACPI_table if helper doesn't implement
native_read_physical_mem
2. Fixed set_EFI_variable in Linux helper
3. Fixed exceptions in OSHelper
* Added raising exceptions in native_read/write_physical_mem in win32helper
* Fixed incorrect change
* UEFI variable changes
- Fixed EFIVAR/VAR_set_EFI_variable return status inconsistency
- Added EFI status codes
- clenup
* BIOS images parsing improved. Minor issues fixed.
* Fixed ValidateFwVolumeHeader. More accurate driver requirements for uefi cmd.
* More relaxed check in ValidateFwVolumeHeader.
* add IOCTL_FREE_PHYSMEM
* add allocated_mem_list in order to avoid: double free, freeing memory not allocated through IOCTL_ALLOC_PHYSMEM, memory leak because IOCTL_FREE_PHYSMEM is not called
* Add alpha version of OSX driver
* Fix README
* Add note on support
* Clean up test
* Change type of CR values
* Add handlers for non-implemented methods