91 Commits (master)

Author SHA1 Message Date
Hamish Coleman 0b9f59014a Add partial support for p15g2 2 years ago
Hamish Coleman 1b1ff90d06 Add extractor for p15, and some misc docs 2 years ago
Hamish Coleman 3e25aaf1c6 Dont try to read zero byte patch files 2 years ago
leecher1337 260830bbf6 Adding support for Thinkpad E330 2 years ago
Hamish Coleman 6d92dc2b08 Allow inserting images found via the PFH - all the older prefix_ff images turned out to also have a PFH, so the lack of updating the checksum is clearly not fatal 4 years ago
Hamish Coleman 084a8f94f4 Add support for extracting firmware from l440 firmware files (Using an FL1 EFI capsule and some magic) 4 years ago
Hamish Coleman ab7efa33a5 Fix parser description 4 years ago
Hamish Coleman 54580e05fc Detect capsule headers and parse them 4 years ago
Hamish Coleman b0ac2c3e76 Record the parsed PFH directory entries as we see them 4 years ago
Hamish Coleman dedf794e99 Improve documentation for the FL2 extractor magic numbers 4 years ago
Hamish Coleman c7f0eeec99 Gate invalid PFH data by version number 4 years ago
Hamish Coleman 408b3af824 Add filesize for l440 firmware 4 years ago
Hamish Coleman 21264858f7 Allow PFH header to be found at an 8byte aligned address instead of just 16byte aligned 4 years ago
Hamish Coleman c46715c332 Convert logger to use printf format string 4 years ago
Hamish Coleman e9a967e848 Add logging to all failed signature/header checks 4 years ago
Hamish Coleman b03489352a Add a simple log to help debug why a FL2 file contents are not recognised 4 years ago
Hamish Coleman efc0249958 Add ability to have multiple offset/size pairs for prefix 0xff style images (currently unused) 5 years ago
Hamish Coleman 850767750f Add extractor debugging output to show all header fields 5 years ago
Hamish Coleman 944c63b013 Add _EC field definitions gleaned from https://www.blackhat.com/us-19/briefings/schedule/#breaking-through-another-side-bypassing-firmware-security-boundaries-from-embedded-controller-15902 5 years ago
Hamish Coleman 55e0f0d0a3 Ensure that hexpatch emits an error if we are configured to use a patch and dont have it 5 years ago
Hamish Coleman 50c66dd878 Ensure that config changes cause the output to be rebuilt 5 years ago
Hamish Coleman c5ceb033c3 Simplify the way target dependancies are generated 5 years ago
Hamish Coleman 7dff574346 Cover some more rm on exit cases in the hexpatch script 5 years ago
Hamish Coleman 7f9800d203 Add a rudimentary config file - this (finally) removes the need to ever build in a dirty checkout, which makes the build strings and debuging clearer 5 years ago
Hamish Coleman 1f2ce9a1aa Clarify output message to look less scary 5 years ago
Hamish Coleman f89f7578af Re-arrange the order of checks in the FL2_copyIMG to prioritise those checks with good signatures or checksums 5 years ago
Hamish Coleman 046597de6f Make the build process somewhat quieter - there is still room for improvements here though 5 years ago
Hamish Coleman ea767e935d Add support to the FL2_copyIMG script to search for the NAPI header, thus allowing x61 FL2 images to be supported 5 years ago
Hamish Coleman d417ce260a Attempt to fix bad bootsectors
Some (recent) ISO images have started having a zero byte as the first
byte of the MBR boot code embedded in the hard disk image.

When the original Lenovo ISO is booted, nobody has reported any issues,
however when a patched IMG file is created from that, it just hangs
- which does match with having bad bootcode data.

I was unable to reproduce the issue when running the images in qemu,
which is even more confusing.

Since every working image has the same first byte (a "CLI" instruction)
we attempt to repair things by simply changing it back to that byte.
5 years ago
Hamish Coleman 78e6203a7b Add a generic extractor for x60 era FL2 files 5 years ago
Hamish Coleman ea4e9da2ac Rename the _EC header detector to be more specific 5 years ago
Hamish Coleman 875e43cfbc Add some details for X60 firmware - Just a Description entry and updates to the FL2_copyIMG script - this is a firmware update package that is not structured the way the rest of the process expects 5 years ago
Hamish Coleman c7e7502201 Make the location of the known all 0xff block variable 5 years ago
Hamish Coleman a6a46828d7 Throw the known data block around by reference, rather than looking it up on use 5 years ago
Hamish Coleman ceb2aa01f0 Bail out immediately if we have no matching known signature 5 years ago
Hamish Coleman 9c6e3df503 Note where this signature came from 5 years ago
Hamish Coleman ee69775ebc Update Copyright notices for a new year 5 years ago
Hamish Coleman eb2ba3eb0b Notice that another year has gone past and update the copyright headers 6 years ago
Hamish Coleman dfbd7e8127 Provide slightly more details when a patch fails 6 years ago
Hamish Coleman d5e4cb161d Add some guesses to FL2_copyIMG for older X200 extraction.
The FL2_copyIMG tool uses some heuristics to work out how to extract the
EC firmware image from inside the FL2 container.  Many of these are simply
guesses, so there are checks to try to only match files that "look" right.

Add some matches for the 7XHT21WW and 7XHT22WW firmware (See #104)
6 years ago
Hamish Coleman b9ae23d169 Consistantly call perl the same way each time 6 years ago
Hamish Coleman 23232fb0d6 Address shellcheck issues with script - ensuring it is plain shell with no extensions 6 years ago
Hamish Coleman 4cae4d7745 Address shellcheck issues and convert to standard shell 6 years ago
Hamish Coleman f9029928ad Script doesnt need bash extensions, simply convert it 6 years ago
Hamish Coleman 8ddbbe7559 Address shellcheck issue with describe script 6 years ago
Hamish Coleman 0e4f08e6df Skip over deps lines with tagging errors - but warn about it 6 years ago
Hamish Coleman b3a51d5b4e Actually return failure when scripts/FL2_copyIMG has failed 6 years ago
Hamish Coleman 09b2a27abb dont show the output of the mtools install test 6 years ago
Hamish Coleman 24d4072bd2 Add a sanity check to try and ensure that we have the right tools installed 6 years ago
Hamish Coleman 867d3860af Improve error outputs from FL2 extraction/guessing to remind me that there might be a whitelist change needed 6 years ago