1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-11-26 04:02:11 +00:00
Commit graph

622 commits

Author SHA1 Message Date
Pablo Curiel
a427759dd1 BKTR rewrite part 3: finish BucketTreeVisitor.
Also fixed lots of storage table read bugs.

bktrReadIndirectStorage() is still incomplete -- check TODOs.
2022-07-03 00:37:13 +02:00
Pablo Curiel
7c38b6847d BKTR rewrite part 2: partially implement BucketTreeVisitor. 2022-07-02 16:07:08 +02:00
Pablo Curiel
29e5af2064 BKTR rewrite: part 1.
This is a mess. It won't build, so don't bother trying.
2022-07-02 12:09:49 +02:00
Pablo Curiel
e372b97131 nca: parse CompressionInfo struct. 2022-06-30 23:04:54 +02:00
Pablo Curiel
8d81528619 Add support for sparse NCAs. 2022-06-30 18:46:45 +02:00
Pablo Curiel
8b0ed76011 Fix bugs + improve bktr interface.
* Check for sparse layers in nsp_dumper and xml_generator PoCs before attempting to initialize content-type-specific contexts.

* system_title_dumper now builds.

* gamecardCloseStorageArea() no longer returns prematurely on application exit.

* Fix section size for sparse sections in ncaInitializeFsSectionContext().

* Fix ncaFsSectionValidateHashDataBoundaries().

* Implement bktrInitializeIndirectStorage() and bktrInitializeAesCtrExStorage().
2022-06-29 14:41:58 +02:00
Pablo Curiel
4507af9e34 Add missing sparse layer checks to pfs/romfs. 2022-06-29 10:41:23 +02:00
Pablo Curiel
590495d012 bktr: added ID offset and title version checks. 2022-06-29 09:55:46 +02:00
Pablo Curiel
c1e3dc719f More NCA changes.
* Made ncaGenerateEncryptedFsSectionBlock() entirely private. There's no point in keeping it public.

* Moved NCA FS section context initialization into its own function, ncaInitializeFsSectionContext().

* Hash data boundaries are now checked while initializing each NCA FS section context, using ncaFsSectionValidateHashDataBoundaries(). Both ncaValidateHierarchicalSha256Offsets() and ncaValidateHierarchicalIntegrityOffsets() have been removed.

* Improved hash region access detection in _ncaReadFsSection() by implementing ncaFsSectionCheckHashRegionAccess().

* ncaGetFsSectionHashTargetProperties() is now used in pfs.c, romfs.c and bktr.c to retrieve the properties from the target hash layer.

* Updated sanity checks in pfsInitializeContext(), romfsInitializeContext() and bktrInitializeContext().
2022-06-29 08:55:35 +02:00
Pablo Curiel
d722683a77 Create merged nsp_dumper PoC. 2022-06-27 04:58:03 +02:00
Pablo Curiel
9054f89984 Update FatFs to latest patch. 2022-06-26 03:49:56 +02:00
Pablo Curiel
ce4034852c Remove support for NPDM patching. 2022-06-26 03:34:31 +02:00
Pablo Curiel
d3b007d9af Fix SHA3 calculation. 2022-06-26 00:20:38 +02:00
Pablo Curiel
f50071cf45 I swear to god I'm dumber than usual today. 2022-06-25 21:30:31 +02:00
Pablo Curiel
1bc1a05f96 Add SHA3 support. 2022-06-25 21:28:31 +02:00
Pablo Curiel
4b2cd46785 nca: fix bugs in plaintext hash layer reading.
SHA3-256 support is still missing.
2022-06-25 09:22:09 +02:00
Pablo Curiel
2c4ddac4c6 nca: skip hash layer crypto operations if needed.
ncaInitializeContext(), _ncaReadFsSection() and ncaGenerateHashDataPatch() were all updated to reflect this change.

SHA3-256 support is still missing.
2022-06-25 08:03:27 +02:00
Pablo Curiel
8ce253d13d More NCA changes. 2022-06-24 19:39:15 +02:00
Pablo Curiel
9e337a5d0a Update default dump options. 2022-06-24 03:44:16 +02:00
Pablo Curiel
bd2bf2c8f4 Fix NCA context initialization for NCAs that hold a single sparse FS section. 2022-06-24 03:38:58 +02:00
Pablo Curiel
37b63aee60 More NCA parsing changes. 2022-06-24 02:22:01 +02:00
Pablo Curiel
b8992d1fdc Follow latest Switchbrew changes. 2022-04-18 23:59:25 +02:00
Pablo Curiel
215b677f02 keys: use __getline() to parse keys file.
* keysGetKeyAndValueFromFile() is now thread-safe -- may be useful for people reusing code from nxdumptool. The dynamic buffer allocated by __getline() must be freed by the caller. Furthermore, this fixes an out-of-bounds issue while writing data to the static array that was being used with fgets().
* Empty lines are now considered failures.
* keysGetKeyAndValueFromFile() now validates the value string and converts it to lowercase as well.
* Adjusted the example regex in the description for keysGetKeyAndValueFromFile() to accurately match what the function actually does.
* Added helper macros to keysReadKeysFromFile().
2022-04-18 23:38:18 +02:00
enderghast13
4a512db93c
nxdt_host.py: update license (#108) 2022-03-31 04:37:23 +02:00
Kookies
fcf0fcbedb
Add comments to build script (#107) 2022-03-22 20:55:06 +01:00
Pablo Curiel
77fa25e0e0 HOS 14.0.0 shenanigans. 2022-03-22 02:20:09 +01:00
Pablo Curiel
e0cf57d8a5 nca: SparseInfo support (part 2).
Handle the has_sparse_flag wherever needed.
2022-03-21 03:19:39 +01:00
Pablo Curiel
8d8f19b229 nca: SparseInfo support (part 1).
Proper CTR IV and context are generated to decrypt the SparseInfo IndirectBucket. More to come at a later time.
2022-03-21 02:49:54 +01:00
Pablo Curiel
b51dd1674c gamecard: remove references to boot partition. 2022-03-18 20:23:11 +01:00
Pablo Curiel
2b59f7b65c gc_dumper: add back option to append key area.
Turned on by default. This is a measure to avoid hac2l warnings.
2022-03-18 18:23:56 +01:00
Pablo Curiel
7189943680 More changes.
* gc_dumper: fixed Card ID Set dumping.

* nacp: updated structs and enums to match latest changes (big thanks to @0Liam !), added helper macros.

* cnmt: added helper macros.

* program_info: added helper macros.

* exception_handler: added helper macros.

* nxdt_utils: only create output directories if the app isn't a PoC build.

* todo: changed task priority order. Sparse/compressed section support is mandatory and must be implemented ASAP.
2022-03-18 17:48:16 +01:00
Pablo Curiel
9604b5923d romfs_dumper: get latest patch from linked list. 2022-03-17 20:29:44 +01:00
Pablo Curiel
2fa61dc228 Update copyright year. 2022-03-17 13:58:40 +01:00
Pablo Curiel
278cb5c72a Some changes.
* nxdt_includes: renamed VersionType1 to Version and tweaked it to add the application_version struct, renamed VersionType2 to SdkAddOnVersion.

* gc_dumper: use utilsGeneratePath() to truncate generated filenames to safe filesystem limits. Thanks to n0tw0rk for reporting the issue and testing the changes!

* nxdt_host.py: fixed a string formatting issue that made it impossible to unpack data from the SendFileProperties command block under certain circumstances.

* gamecard: modified GameCardKeySource to add a value field, added GameCardFlags_HasCa10Certificate flag.

* utils: utilsGeneratePath() no longer adds a dot on its own if it's not part of the provided extension string.
2022-03-17 13:37:24 +01:00
Pablo Curiel
b9018a7df0 gc_dumper: fix gamecard detection.
I'm dumb, sorry.
2022-03-04 13:25:12 +01:00
Pablo Curiel
f9eb335a70 libs: update libusbhsfs. 2022-03-04 13:24:28 +01:00
Pablo Curiel
fabb15bbe4 Fix home button exit on all PoCs. 2022-02-19 06:03:06 +01:00
Pablo Curiel
c99f6776a7 keys: use dev.keys instead of prod.keys under dev units. 2022-02-10 19:05:07 +01:00
Pablo Curiel
ffe327b868 Merge branch 'rewrite' of https://github.com/DarkMatterCore/nxdumptool into rewrite 2022-02-09 05:53:53 +01:00
Pablo Curiel
24c2bfe775 Update FUNDING.yml 2022-02-09 05:53:38 +01:00
Whovian9369
3d5187dd1f
Add working github workflow to rewrite branch, builds libusbhsfs + nxdt rewrite (#106)
* Add working github workflow to branch, builds libusbhsfs + nxdt rewrite

* Fix build to actually work with dkp-toolchain-vars from mirror site

* Update `build.sh` so Github Actions properly finishes the build process for the Rewrite

* Update dkp-toolchain-vars - v1.0.0-2 link to Wayback mirror
2022-02-09 05:52:04 +01:00
Pablo Curiel
376199b5cb keys: don't look up a key entry if it's not mandatory. 2022-02-09 05:38:13 +01:00
Pablo Curiel
f6d133d793 gc_dumper: change info TXT layout. 2022-02-07 01:32:39 +01:00
Pablo Curiel
3999e48c43 Update gc_dumper.c 2022-02-06 03:33:03 +01:00
Pablo Curiel
fea5f8803d gc_dumper: generate text file with dump info. 2022-02-06 03:30:42 +01:00
Pablo Curiel
7bec356181 Forgot this one.
It hasn't been an easy road.
2022-02-04 21:18:35 +01:00
Pablo Curiel
8c312ca636 Add SD card + Card ID Set support to gamecard PoC. 2022-02-04 03:04:43 +01:00
Pablo Curiel
8168a5ac84 gamecard: cache LAFW blob during interface initialization.
Other changes include:

* Codestyle fixes.
* Remove references to GameCardKeyArea in the usb_gc_dumper PoC.
* Remove option to append key area to output XCI dumps in usb_gc_dumper PoC.
2022-02-03 04:39:54 +01:00
Johnson
e79b03afeb
Add support for dumping full GameCardSecurityInformation (#105)
* Add support for dumping full GameCardSecurityInformation

* Add support for dumping LAFW

* Clear out ASIC session hash data

Co-authored-by: Pablo Curiel <pabloacurielz@gmail.com>
2022-02-03 02:22:57 +01:00
Pablo Curiel
4929330e32 gamecard: support ID set dumping. 2022-02-03 02:13:20 +01:00