74 Commits (55234e8585653bb0a85bb65172cfddfae30d3381)

Author SHA1 Message Date
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
Hamish Coleman d8adcb5a11 Add x280 EC image extraction 6 years ago
Hamish Coleman d16e339a51 Allow keeping files with bad checksums, for investigation 6 years ago
Hamish Coleman 8580e64b9a Add support for perl versions older than 5.12 by removing unimplmented elipsis (ref #63) 7 years ago
Hamish Coleman ceb0fe1728 Ignore case in checksum comparisons 7 years ago
Hamish Coleman cadeaf302e Add a quick way to generate a directory list of any iso firware file 7 years ago
Hamish Coleman da2da763e9 Remember to cite skochinsky as the original contributor of the PFH header details 7 years ago
Hamish Coleman c1f42903d9 Add support for extracting firmware images from FL1 files with PFH headers embedded in the file 7 years ago
Hamish Coleman 844a6d1ad6 Remvoe trailing spaces from scripts 7 years ago
Hamish Coleman 361e37003d Support sha256 checksums 7 years ago
Hamish Coleman e57d26dc05 Check for at least one type of syntax error in the Descriptions file 7 years ago
Hamish Coleman 615f87dd2b Remove the last manually maintained list from the Makefile - all lists of rules are now generated from the Descriptions.txt 7 years ago
Hamish Coleman c0b2178942 Remove most of the variables from the autoexec.bat template
Instead use a *.report file for each component and add data as we
go, culminating in the built image simply catting the report to the
screen to show the user what is about to occur.

This is on the path towards removing all variables from the autoexec
template - which would make it simpler to reuse the same template for
other commands (e.g the x200 series does not use dosflash.exe)
7 years ago
Hamish Coleman 409f88c75c Rename the FL2 copy script to make it clear that it deals with ISO files - and use the same naming as the IMG copy script 7 years ago
Hamish Coleman 73d58f4211 Allow the .bat file to be generated only on the insert phase, and remove the dep where it is not known how to make a full build 7 years ago
Hamish Coleman b9b1e2977f use the Descriptions file to generate most of the static rules 7 years ago
Hamish Coleman 96485bb94d Enhance the format of the descriptions file - allowing more data to be added.
Changing the "generator" field to be tagged with its contents will allow the
use of alternate checksum types and also will allow for the additional
information needed to generate some of the make rules automatically.
7 years ago
Hamish Coleman ae52989189 Remove the last set of the *.slice files and replace them with a script that can generically extract all currently known firmware images from their FL2 files 7 years ago