Skip to content

Releases: borntohonk/hactool

hactool-1.5.4 - keygen command refactor (23.0.0 supported)

Choose a tag to compare

@borntohonk borntohonk released this 14 Sep 15:44

revert cross-compile of windows binary back to windows os compiled

static links libcapstone

do both x86_64 and arm64 versions of macos

retargets keygen away from old stale boot0 input path to instead take an input folder containing firmware ncas - producing the keyset of the firmware files input

hactool-1.5.3 (23.0.0 support)

Choose a tag to compare

@borntohonk borntohonk released this 10 Sep 07:45

adds support for 23.0.0 firmware
adds support for zbic compressed exefs, also outputs compression status, and which compression algorithm (if compressed) on inspecting .nso0 files

re-release of 1.5.2 latest master

Choose a tag to compare

@borntohonk borntohonk released this 07 Sep 19:12

capstone 5 for linux
minor tweaks and fixes

need to do for 1.5.3:
zbic decompression

hactool-1.5.1

Choose a tag to compare

@borntohonk borntohonk released this 20 Mar 11:20

just embedding key sources for _16 (22.0.0) keyset

hactool-1.5.0 (ai vibe-coded edition)

Choose a tag to compare

@borntohonk borntohonk released this 25 Feb 07:09

Add support for newer bktr formats: credits claude 4.5

edit:

Add support for sorting and organizing firmware files (-t switchfs --outdir=out) - ( used https://github.com/borntohonk/Switch-Ghidra-Guides/blob/master/scripts/organize_firmware_files.py as reference )
Improve upon -t keygen ( used https://github.com/borntohonk/Switch-Ghidra-Guides/blob/master/scripts/crypto.py as reference )

binaries replaced; will become 1.5.1 after completing next implementations;

current todo:

upon evaluation, the steps above already are built into hactool if a keyset is initialized, and my changes to how keygen works accomplishes this.

After most of my other stuff is implemented into hactool:

  • Add functionality to the way hactool handles package1/package2 ( used as reference github.com/borntohonk/Switch-Ghidra-Guides/blob/master/scripts/extract_packages.py ) (this step involves just what extra api commands for data to add - to be able to call for them

  • implement as needed, using this as reference https://github.com/borntohonk/Switch-Ghidra-Guides/blob/master/scripts/process_firmware.py ( this step just combines switchfs and pkg21/pk11 commands, and extracts the specific files from the firmware input

  • proceed to implement, using this as reference https://github.com/borntohonk/Switch-Ghidra-Guides/blob/master/scripts/find_patterns.py

  • Consider adding capstone as requirement, evaluate as needed, since macos builds might not support that.

  • after doing all related to firmware processing, add a failsafe to extract the new master_kek_source, and various other keys, from package1 / package2