diff --git a/bin/main.ml b/bin/main.ml index 20ef0f2..74c7195 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -1,6 +1,6 @@ -let hex_dump file = +let query_manifest file = Owee_buf.map_binary file - |> Solo5_elftool.foo + |> Solo5_elftool.query_manifest |> Result.iter (fun mft -> Fmt.pr "%a\n" Solo5_elftool.pp_mft mft) @@ -9,11 +9,11 @@ let file = Cmdliner.Arg.(required & pos 0 (some file) None & info ~doc ~docv:"EXECUTABLE" []) -let hex_dump_cmd = - let doc = "hexdump solo5 manifest" in +let query_manifest_cmd = + let doc = "query solo5 manifest" in Cmdliner.Term.( - pure hex_dump $ file, + pure query_manifest $ file, info ~doc "query-manifest") let () = - ignore (Cmdliner.Term.eval hex_dump_cmd) + ignore (Cmdliner.Term.eval query_manifest_cmd) diff --git a/lib/solo5_elftool.ml b/lib/solo5_elftool.ml index e3ef3ac..0f4fc70 100644 --- a/lib/solo5_elftool.ml +++ b/lib/solo5_elftool.ml @@ -77,7 +77,6 @@ let parse_mft buf = in assert (version = 1l); let buf = Cstruct.shift buf 8 in - Printf.printf "MFT%ld[%ld]\n" version entries; let entries = Array.init (Int32.unsigned_to_int entries |> Option.get (* XXX: assume 64 bit *)) (fun i -> parse_mft_entry (Cstruct.sub buf (i * sizeof_mft_entry) sizeof_mft_entry)) @@ -89,7 +88,7 @@ let ( let* ) = Result.bind let mft_max_entries = 64 let mft1_note_name = "Solo5" -let foo buf = +let query_manifest buf = let _header, sections = Owee_elf.read_elf buf in let* section = Owee_elf.find_section sections ".note.solo5.manifest" @@ -100,7 +99,7 @@ let foo buf = let descsz = Owee_elf_notes.read_desc_size cursor ~expected_owner:mft1_note_name - ~expected_type:0x3154464d + ~expected_type:0x3154464d (* MFT1 *) in let desc = Owee_buf.Read.fixed_string cursor descsz in assert (Owee_buf.at_end cursor);