diff --git a/.gitignore b/.gitignore index 39b344f..7872f09 100644 --- a/.gitignore +++ b/.gitignore @@ -228,3 +228,4 @@ pip-log.txt #exec *.exe *.db +/.vs/slnx.sqlite diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..acb3db8 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,9 @@ +{ + "ExpandedNodes": [ + "", + "\\ctrtool", + "\\makerom" + ], + "SelectedNode": "\\makerom\\keyset.c", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/ctrtool/ctrtool b/ctrtool/ctrtool new file mode 100644 index 0000000..441e0dd Binary files /dev/null and b/ctrtool/ctrtool differ diff --git a/ctrtool/keyset.cpp b/ctrtool/keyset.cpp index 609b7d7..dd79300 100644 --- a/ctrtool/keyset.cpp +++ b/ctrtool/keyset.cpp @@ -301,7 +301,7 @@ void keyset_parse_seeddb(keyset* keys, char* path) seeddb_header hdr; fread(&hdr, sizeof(seeddb_header), 1, fp); - u32 n_entries = getle32(hdr.n_entries); + keys->seed_num = getle32(hdr.n_entries); for (u32 i = 0; i < 0xC; i++) { if (hdr.padding[i] != 0x00) @@ -311,8 +311,8 @@ void keyset_parse_seeddb(keyset* keys, char* path) } } - keys->seed_db = (seeddb_entry*)calloc(n_entries, sizeof(seeddb_entry)); - fread(keys->seed_db, n_entries * sizeof(seeddb_entry), 1, fp); + keys->seed_db = (seeddb_entry*)calloc(keys->seed_num, sizeof(seeddb_entry)); + fread(keys->seed_db, keys->seed_num * sizeof(seeddb_entry), 1, fp); } void keyset_dump_rsakey(rsakey2048* key, const char* keytitle) diff --git a/ctrtool/seeddb.bin b/ctrtool/seeddb.bin new file mode 100644 index 0000000..4bf2190 Binary files /dev/null and b/ctrtool/seeddb.bin differ diff --git a/makerom/makerom b/makerom/makerom new file mode 100644 index 0000000..e2ff712 Binary files /dev/null and b/makerom/makerom differ