GithubHelp home page GithubHelp logo

patrickrudolph / fiano Goto Github PK

View Code? Open in Web Editor NEW

This project forked from linuxboot/fiano

0.0 1.0 0.0 6.72 MB

Go-based tools for modifying UEFI firmware

License: BSD 3-Clause "New" or "Revised" License

Go 100.00%

fiano's Introduction

fiano

Go-based tools for modifying UEFI firmware.

CircleCI Go Report Card GoDoc CodeCov License

Fiano

Contributing

For information about contributing, including how we sign off commits, please see CONTRIBUTING.md

UTK: Generic UEFI tool kit meant to handle rom images

Example usage:

# For a comprehensive list of commands
utk -h

# Display the image in a compact table form:
utk winterfell.rom table

# Summarize everything in JSON:
utk winterfell.rom json

# List information about a single file in JSON (using regex):
utk winterfell.rom find Shell

# Dump an EFI file to an ffs
utk winterfell.rom dump DxeCore dxecore.ffs

# Insert an EFI file into an FV near another Dxe
utk winterfell.rom insert_before Shell dxecore.ffs save inserted.rom
utk winterfell.rom insert_after Shell dxecore.ffs save inserted.rom

# Insert an EFI file into an FV at the front or the end
# "Shell" is just a means of specifying the FV that contains Shell
utk winterfell.rom insert_front Shell dxecore.ffs save inserted.rom
utk winterfell.rom insert_end Shell dxecore.ffs save inserted.rom

# Remove a file and pad the firmware volume to maintain offsets for the following files
utk winterfell.rom remove_pad Shell save removed.rom

# Remove two files by their GUID without padding and replace shell with Linux:
utk winterfell.rom \
  remove 12345678-9abc-def0-1234-567890abcdef \
  remove 23830293-3029-3823-0922-328328330939 \
  replace_pe32 Shell linux.efi \
  save winterfell2.rom

# Extract everything into a directory:
utk winterfell.rom extract winterfell/

# Re-assemble the directory into an image:
utk winterfell/ save winterfell2.rom

DXE Cleaner

Delete unnecessary DXEs from your firmware. Free up space, speed up boot times and decrease the attack surface area! See the demo:

asciicast

FMAP: Parses flash maps.

Example usage:

  • fmap checksum [md5|sha1|sha256] FILE
  • fmap extract i FILE
  • fmap jget JSONFILE FILE
  • fmap jput JSONFILE FILE
  • fmap summary FILE
  • fmap usage FILE
  • fmap verify FILE

Installation

# Golang version 1.13 is required:
go version

# For UTK:
go install github.com/linuxboot/fiano/cmds/utk

# For fmap:
go install github.com/linuxboot/fiano/cmds/fmap

The executables are installed in $HOME/go/bin.

Updating Dependencies

# Fiano utilizes Go modules.
Use the following to download the dependencies:
```
go mod download
go mod verify
```

If you desire to update a existing dependency to a newer version:
```
go get path/to/dependency/module@tag
```
Execute this in any directory of fiano repository

fiano's People

Contributors

ganshun avatar rjoleary avatar xaionaro avatar julienvdg avatar orangecms avatar zaolin avatar chrimarme avatar rihter007 avatar rminnich avatar insomniacslk avatar arthurheymans avatar rminnichcodeu avatar akechishiro avatar marcoguerri avatar paulmenzel avatar subhav avatar trynity avatar pallaud avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.