Hard disk/memory images are huge
β code efficiency!
Images may contain malicious code exploiting potential code vulnerabilities
β memory safety
Is the Rust ecosystem suitable for forensic tool development?
Method: Case study: Development of a GNU-strings alternative with multi-byte-encoding support
(UTF-16LE encoded)
Very limited multi-byte-encoding support
The setup_group function in
bfd/elf.c
inlibbfd
in GNU binutils 2.24 and earlier allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via crafted section group headers in an ELF file.
Design
Combine UTF-16 Little-Endian and Big-Endian scanning and prevent false positives:
cat /dev/sda2 | ./stringsext -ci -tx \
-e UTF-16be,16,U+0..U+007f \
-e UTF-16be,30,U+20..U+2f,U+400..U+07ff \
-e UTF-16le,10,U+0..U+007f \
-e UTF-16le,30,U+20..U+2f,U+400..U+07ff \
β Rust meets the requirements of forensic tool development