From b79d6151ce18bdc572699ef9d0299fc20d8a8963 Mon Sep 17 00:00:00 2001 From: Jean-Marie 'Histausse' Mineau Date: Wed, 11 Feb 2026 15:50:55 +0100 Subject: [PATCH] improve html layout --- androscalpel/src/map_dex_file.rs | 24 ++++++++++++++++--- .../src/file_reader/mod.rs | 6 ++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/androscalpel/src/map_dex_file.rs b/androscalpel/src/map_dex_file.rs index 9302c53..2473db8 100644 --- a/androscalpel/src/map_dex_file.rs +++ b/androscalpel/src/map_dex_file.rs @@ -62,7 +62,7 @@ impl DexFile { )); } current_line.push(format!( - "{:02x}", + "{:02x}", classes.join(" "), raw[i as usize] )); @@ -80,6 +80,7 @@ impl DexFile { let table = lines.join("\n"); let mut chunk_style_lines = vec![]; let mut data_lines = vec![]; + let mut unreferenced_lines = vec![]; for (off, size, dscr) in &self.layout_map { let classname = format!("chunk_{off}_{size}"); chunk_style_lines.push(format!( @@ -89,11 +90,27 @@ impl DexFile { "html:has(.{classname}:hover) .dscr_{classname} {{ display: block; }}" )); data_lines.push(format!( - "
{dscr}
" - )) + "
0x{off:08x}: {dscr}
" + )); + if dscr == "Unreferenced Data" { + unreferenced_lines.push(format!( + "
  • offset: 0x{off:08x}, size: 0x{size:x}
  • " + )); + } } let chunk_style = chunk_style_lines.join("\n "); let data = data_lines.join("\n "); + let unreferenced = unreferenced_lines.join("\n "); + let unreferenced = if !unreferenced_lines.empty() { + format!( + "

    Unreferenced Data:

    + " + ) + } else { + "".into() + }; format!( " @@ -105,6 +122,7 @@ impl DexFile { +{unreferenced} {table}
    diff --git a/androscalpel_serializer/src/file_reader/mod.rs b/androscalpel_serializer/src/file_reader/mod.rs index db0e55e..fd8f075 100644 --- a/androscalpel_serializer/src/file_reader/mod.rs +++ b/androscalpel_serializer/src/file_reader/mod.rs @@ -71,7 +71,7 @@ impl<'a> DexFileReader<'a> { .expect("Failed to acquire mutex lock on layout_map") .insert( (0, tmp_file.header.size()), - format!("{:x?}", tmp_file.header), + format!("{:#x?}", tmp_file.header), ); if tmp_file.header.map_off != 0 { tmp_file.map_list = tmp_file.get_struct_at_offset(tmp_file.header.map_off)?; @@ -433,7 +433,7 @@ impl<'a> DexFileReader<'a> { .lock() .expect("Failed to acquire mutex lock on layout_map") .entry((pos as u32, size)) - .or_insert_with(|| format!("{item:x?}")); + .or_insert_with(|| format!("{item:#x?}")); } } Ok(list) @@ -479,7 +479,7 @@ impl<'a> DexFileReader<'a> { .lock() .expect("Failed to acquire mutex lock on layout_map") .entry((offset, size)) - .or_insert_with(|| format!("{r:x?}")); + .or_insert_with(|| format!("{r:#x?}")); } r }