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