Commit Graph

44 Commits

Author SHA1 Message Date
c7zero 2fbb7a4eeb Simple EFI firmware white-listing module (#164)
tools.uefi.whitelist is a simple module for EFI firmware that allows modifications done to the firmware executables

The module can generate a list of EFI executables from (U)EFI firmware file or extracted from flash ROM, and then later check firmware image in flash ROM or file against this list of [expected/whitelisted] executables
2017-03-08 21:03:41 -08:00
CHIPSEC 21dc4bbd81 Merge pull request #155 from andrew-furtak/rwe
ReadWrite Everything helper added.
2017-03-08 18:24:49 -08:00
CHIPSEC ad50429b44 Fixed logger bug 2017-03-07 16:40:11 -08:00
c7zero 2aa81afde8 SPI flash descriptor parsing improved (#157)
* Improved parsing of Flash Descriptor

Descriptor format is platform dependent so need to use XML to parse it

* cleanup

* Fixed spi info
2017-03-02 02:09:58 -08:00
johnloucaides 9a3c5a6053 add native functions to access port io & msr on linux (#160)
* add native functions to access port io and msr

* remove debug prints and try modprobe msr when not available

* fixed bug in native_read_io_port

* add attempt to load msr kernel module if not present and update error string
2017-03-02 02:06:12 -08:00
c7zero b3bf192d51 Added SMI count util command (#159)
chipsec_util smi count command returs SMI event count on all logical
processors
2017-03-02 02:05:46 -08:00
abazhaniuk 107de65ce3 fix issues in decompression functionality (#161) 2017-03-02 02:05:21 -08:00
CHIPSEC e5cd522467 Added tools.uefi.uefivar_fuzz to test UEFI Variable firmware interface 2017-02-27 14:28:28 -08:00
c7zero a0943e297a Fixed tools.vmm.pcie_overlap_fuzz 2017-02-25 01:33:53 -08:00
andrew-furtak e1835bb7c9 IGD hal component added. igddma utility command added. (#156)
* IGD hal component added. igddma utility command added.

* Documentation added. Fixed file io for igd

* Deffered graphics device identification. Added check to igd cmd module for enabled device.

* Device 2 device id register renamed. Device id read with pci replaced with read_register
2017-02-24 18:04:08 -08:00
CHIPSEC aebf790ea7 Fixed SPIBAR definition
Was incorrectly truncating SPI base address
2017-02-24 13:10:02 -08:00
CHIPSEC 8edca3af6a Fixed import 2017-02-24 02:05:35 -08:00
CHIPSEC bce48a4f4a Added read_MMIO_BAR to mmio HAL 2017-02-24 02:05:35 -08:00
Andrew Furtak 14904f35e6 RWE helper added. SMRR support check added where required. HyperV workaround for SMRR msrs. 2017-02-22 13:07:36 -08:00
abazhaniuk f12b035458 Ported efi_compressor from uefi-firmware-parser to chipsec_tools (#152)
* Ported efi_compressor from uefi-firmware-parser to chipsec_tools

* moved compression_source_files
2017-02-11 00:05:30 -08:00
Erik Bjorge bb9632fa43 Added missing map_io_space method in UEFI helper code. (#153)
Added the missing map_io_space method to resolve common.bios_wp
failures when executing under the UEFI Shell.
2017-02-10 13:51:38 -08:00
Erik Bjorge a240886c53 Added missing Atom C2000 Processor Family Device IDs (#144) 2017-02-05 16:51:23 -08:00
Thiébaud Weksteen 9fd0ee4729 Call parent Helper __init__ for OSX helper (#146) 2017-02-05 13:04:46 -08:00
c7zero 4af6dab314 Fixed tools.vmm.pcie_fuzzer (#138)
1. Fixed tools.vmm.pcie_fuzzer
2. get_device_bars calculates actual size of MMIO BARs (IO BAR size is
still hardcoded)
2017-01-20 15:32:10 -08:00
abazhaniuk c377a72e28 Deb package (#135)
* merge

* Add Debian packaging

* cleanup

* Removed incorrect info into Copyright.

* One more: removed incorrect info in Copyright.
2017-01-06 12:57:13 -08:00
c7zero 6a85779673 Cosmetic changes (#137)
* Cosmetic changes

- Cosmetic changes in JSON results nad logging of regexp match
- Also fixed returning ModuleResult.PASSED/FAILED instead of True/False
in remap module

* Fix import
2016-12-30 17:16:39 -08:00
andrew-furtak b540df569e Fixed UEFI decode issues (#136) 2016-12-30 12:39:05 -08:00
c7zero 3979328534 UEFI firmware parsing improved (#134)
* UEFI firmware parsing improved

1. Creating EFI modules object tree when parsing UEFI firmware images
2. Added exporting parsed EFI object tree to JSON
3. EFI module seach uses callbacks
4. Added --json command-line option to export chipsec results to JSON
5. Fixed version

* updating ui_string in all sibling leaf sections
2016-12-14 12:09:50 -08:00
c7zero baa6f49eb1 Fixed map_io_space call on Windows 2016-12-06 02:00:53 -08:00
abazhaniuk f2dd9ad515 add DKMS support (#132)
* add DKMS support

* remove unnecessary functions

* moved get_version to defines

* raise an exception
2016-12-06 00:46:12 -08:00
c7zero 9847ed9357 Fixed ctypes 2016-12-05 17:37:26 -08:00
Thiébaud Weksteen 1edfb70c2a Add MemoryMapping and map_io_space to Linux helper (#120) 2016-12-05 15:49:41 -08:00
c7zero 8155afb2f4 Improved EFI binaries search and updated blacklist config (#131)
* Changes in calculating hashes of EFI binaries

Calculating hashes of actual .efi executable files (PE32/TE sections of
EFI binaries) rather than of entire EFI binaries.

There's still an option (WRITE_ALL_HASHES) to calculate hashes of entire
EFI binaries.

* Improved UEFI search and updated blacklist config

1. Updated EFI binaries search - searching only leaf nodes (PE/TE
executable sections)
2. Added exclusion criteria and improved JSON format
3. Changed tools.uefi.blacklist module to return a warning
4. Updated ThinkPwn rules in blacklist.json
- Updated config to match by GUID AND regexp of SmmRuntime protcol GUID
within the binary to skip binaries consuming SmmRuntime protcol
- Added exclusion rules for UEFI update images with patched
SystemSmmRuntimeRt.efi. Config excludes patched binaries from Lenovo and
HP. Tested on Intel, Lenovo, HP and Gigabyte images.
2016-12-05 15:11:51 -08:00
abazhaniuk f9738aeac0 Fix bug when calls compression tools on linux (#130) 2016-12-05 09:30:36 +11:00
Thiébaud Weksteen d670746532 Add native_write_pci_reg to Linux helper (#129)
Also includes two aliases pack1 and unpack1 to easily convert values
in the helpers.
2016-12-01 22:42:06 -08:00
Thiébaud Weksteen a91d28b2e5 Add loading and building for OSX driver (#128) 2016-11-25 19:44:54 -08:00
CHIPSEC 0393d0a7bd Fixed global variables use in uefi and spi_descriptor 2016-11-22 13:44:09 -08:00
c7zero 7a5e8277df Changed to using self.cs.cpu 2016-11-17 23:47:45 -08:00
c7zero 06fcb285ca Fix global functions from uefi_platform 2016-11-17 23:39:26 -08:00
Thiébaud Weksteen 1a284132f8 Use HALBase for all HAL modules (#124) 2016-11-17 23:21:26 -08:00
O Bazhaniuk 7fd8b99d9e remove print_cpu_set_t 2016-11-16 16:51:56 -05:00
c7zero 8ee894b880 More generic handling of chipsec tools (#118)
* More generic handling of chipsec_tools

* file extension fix

* Installing chipsec-manual.pdf
2016-11-04 14:38:06 -07:00
Thiébaud Weksteen 63991da054 Improve build_ext (#115) 2016-11-03 15:27:24 -07:00
timevortex 58b531aef9 Only align to 4KB if WP or RP is set (#117)
Prior to this change, the output was:
[*] BIOS Region: Base = 0x00510000, Limit = 0x00FFFFFF
SPI Protected Ranges
------------------------------------------------------------
PRx (offset) | Value    | Base     | Limit    | WP? | RP?
------------------------------------------------------------
PR0 (74)     | 8FFF0FF0 | 00FF0000 | 00FFFFFF | 1   | 0 
PR1 (78)     | 00000000 | 00000000 | 00000FFF | 0   | 0 
PR2 (7C)     | 00000000 | 00000000 | 00000FFF | 0   | 0 
PR3 (80)     | 00000000 | 00000000 | 00000FFF | 0   | 0 
PR4 (84)     | 00000000 | 00000000 | 00000FFF | 0   | 0 

Now: it is:
[*] BIOS Region: Base = 0x00510000, Limit = 0x00FFFFFF
SPI Protected Ranges
------------------------------------------------------------
PRx (offset) | Value    | Base     | Limit    | WP? | RP?
------------------------------------------------------------
PR0 (74)     | 8FFF0FF0 | 00FF0000 | 00FFFFFF | 1   | 0 
PR1 (78)     | 00000000 | 00000000 | 00000000 | 0   | 0 
PR2 (7C)     | 00000000 | 00000000 | 00000000 | 0   | 0 
PR3 (80)     | 00000000 | 00000000 | 00000000 | 0   | 0 
PR4 (84)     | 00000000 | 00000000 | 00000000 | 0   | 0
2016-10-28 12:16:00 -07:00
c7zero 716e28f70d SPI HAL cleanup to use XML config (#114)
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).
2016-10-27 08:56:42 -07:00
abazhaniuk 9e42ff337d add compression tools to python package (#111) 2016-10-25 14:01:27 -07:00
c7zero 06b1f0dd5f More documentation update
Fixed passing the argv to chipsec_main.main() and chipsec_util.main()
when importing them as packages
2016-10-19 20:06:28 -07:00
CHIPSEC cd3595239b Skylake/Kabylake platform config update 2016-10-19 01:37:46 -07:00
abazhaniuk 94fe7f02f1 change setup.py build driver by default. change root directory of chipsec. move WARNING.txt to chipsec. remove PKG-INFO (#107) 2016-10-18 18:19:42 -07:00