Useful Tools: Difference between revisions

From DisNCord Community Wiki
Jump to navigation Jump to search
Kraaabs (talk | contribs)
mNo edit summary
Vmlemon (talk | contribs)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== File System Manipulation ==
== File System Manipulation ==
* [https://github.com/aaru-dps/Aaru Aaru] supports a fairly comprehensive collection of disk image, partition table, and file system formats, and is built with the Microsoft .NET Framework - builds exist, for several operating systems.
* [https://github.com/aaru-dps/Aaru Aaru] supports a fairly comprehensive collection of disk image, partition table, and file system formats, and is built with the Microsoft .NET Framework - builds exist, for several operating systems.
* [https://linux.die.net/man/8/kpartx kpartx] is a fairly standard command to automatically create loop devices for whole disk images (assuming regular partition table types Linux can understand)
* [https://linux.die.net/man/8/kpartx kpartx] is a fairly standard command to automatically create loop devices for whole disk images (assuming regular partition table types Linux can understand).
* [https://osxfuse.github.io/ macFUSE] allows you to use FUSE filesystems on macOS
* [https://osxfuse.github.io/ macFUSE] allows you to use FUSE filesystems on macOS.
* [https://www.vms2linux.de/ods5fs.html OpenVMS ODS-5 file system for Linux] is a kernel module, in source form. A TinyCore Linux VM, with it pre-installed is also available.
 
== FUSE File Systems ==
* [https://llg.cubic.org/tools/cbmfs/ CBMFS] supports various disk image formats (d64, d71, d81, d80, and d82), from 8-bit Commodore systems
* [https://github.com/pcrow/atari_8bit_utils Atari 8-bit Utils] contains ATRFS, which supports Atari DOS 1, Atari DOS 2.0s, Atari DOS 2.5, MyDOS 4.53, SpartaDOS, Atari DOS 3 (read-only), Atari DOS 4 published by Antic (read-only), and LiteDOS volumes, in ATR disk image files.
* [https://gitlab.com/t-m/fuseadf FUSEADF] supports AmigaOS disk images, and requires ADFLib, to compile.
* [https://github.com/realchonk/fuse-ufs FUSE-UFS] supports FreeBSD UFSv2 volumes.
* [https://github.com/0x09/hfsfuse HFS-FUSE] supports Apple HFS+ volumes, including resource forks, and extended attributes.
* [https://www.adsb.co.uk/bbc/linux/ Acorn ADFS, and DFS] implementations, written in Perl. Requires the "Fuse" CPAN module to be installed, to build.
* [https://github.com/jaylogue/retro-fuse RetroFUSE] supports 5th/6th/7th Edition Research UNIX, 2.9BSD, and 2.11BSD file systems
* [https://github.com/FranciscoDA/ps2mcfs PlayStation 2 Memory Card File System] implementation, in FUSE
* [https://github.com/mxmlnkn/ratarmount ratarmount] is a FUSE file system, that can mount various archive formats, and allow random access to files, stored within them


== Archive Manipulation ==  
== Archive Manipulation ==  
* 7-Zip supports the Windows Imaging format (<code>.WIM</code>) disk images, with LZX compression, as used by Windows 8.1
* [https://www.7-zip.org/ 7-Zip] supports the Windows Imaging format (<code>.WIM</code>) disk images, with LZX compression, as used by Windows 8.1.
* [https://github.com/MacPaw/XADMaster XADMaster] supports a fairly comprehensive collection of compression, and archival formats, and can also expand some disk image formats - this seems to be the basis of the "unar" utility, provided for Ubuntu, and some other Linux distributions.
* [https://github.com/MacPaw/XADMaster XADMaster] supports a fairly comprehensive collection of compression, and archival formats, and can also expand some disk image formats - this seems to be the basis of the "unar" utility, provided for Ubuntu, and some other Linux distributions.
* [https://github.com/twogood/unshield unshield] is a CLI tool, for unpacking various flavours of InstallShield archive
* [https://github.com/twogood/unshield unshield] is a CLI tool, for unpacking various flavours of InstallShield archive.
* [https://www.anerty.net/software/file/jSAVF/?lang=en jSAVF] is a Java-based application, for accessing IBM i (AKA OS/400) save files, under Windows, and Linux


== Firmware Image Extraction ==
== Firmware Image Extraction ==
* The [http://marksmods.com/Hack-the-L7/zip/random.zip RandomSHX] utility, for Windows will extract the contents of some Motorola P2K (e.g. A835) "UNIX Generated SuperFile" firmware archives - this requires Windows, and does not work with UNC paths
* The [http://marksmods.com/Hack-the-L7/zip/random.zip RandomSHX] utility, for Windows will extract the contents of some Motorola P2K (e.g. A835) "UNIX Generated SuperFile" firmware archives - this requires Windows, and does not work with UNC paths.
* The <code>srecord</code> package, under Ubuntu contains a utility, that can convert Motorola S-Record files, into plain binaries: (for example <code>srec_cat C139_V1.0.03.E.m0 -Output C139_V1.0.03.E.bin -Binary</code>
* The <code>srecord</code> package, under Ubuntu contains a utility, that can convert Motorola S-Record files, into plain binaries: (for example <code>srec_cat C139_V1.0.03.E.m0 -Output C139_V1.0.03.E.bin -Binary</code>).


* BinWalk is extremely useful, for extracting files, and resources out of firmware images, executables, and file system structures
* BinWalk is extremely useful, for extracting files, and resources out of firmware images, executables, and file system structures.


== Binary reverse engineering ==
== Binary reverse engineering ==
Line 22: Line 35:
== Development tools ==
== Development tools ==
* [https://github.com/davidgiven/ack The Amsterdam Compiler Kit] is one of the few (mostly) C99 compilers around that can still target a PDP-11 Unix v7 target.
* [https://github.com/davidgiven/ack The Amsterdam Compiler Kit] is one of the few (mostly) C99 compilers around that can still target a PDP-11 Unix v7 target.
* [https://github.com/JuliaHubOSS/llvm-cbe llvm-cbe] is the C backend for LLVM -- it can convert LLVM bytecode into C (useful for compiling modern C++ targeting systems that don't have a functional modern C++ compiler, for example)
* [https://github.com/JuliaHubOSS/llvm-cbe llvm-cbe] is the C backend for LLVM -- it can convert LLVM bytecode into C (useful for compiling modern C++ targeting systems that don't have a functional modern C++ compiler, for example).
* [https://www.ibiblio.org/pub/micro/pc-stuff/freedos/gnuish/gnuish_t.htm GNUish Project] is a port of UNIX standard utilities for DOS with family mode support (useful for replacing equivalent utilities that cannot be ran under OS/2).


[[Category:Preservation and Documentation]]
[[Category:Preservation and Documentation]]

Latest revision as of 21:23, 31 October 2024

File System Manipulation

  • Aaru supports a fairly comprehensive collection of disk image, partition table, and file system formats, and is built with the Microsoft .NET Framework - builds exist, for several operating systems.
  • kpartx is a fairly standard command to automatically create loop devices for whole disk images (assuming regular partition table types Linux can understand).
  • macFUSE allows you to use FUSE filesystems on macOS.
  • OpenVMS ODS-5 file system for Linux is a kernel module, in source form. A TinyCore Linux VM, with it pre-installed is also available.

FUSE File Systems

  • CBMFS supports various disk image formats (d64, d71, d81, d80, and d82), from 8-bit Commodore systems
  • Atari 8-bit Utils contains ATRFS, which supports Atari DOS 1, Atari DOS 2.0s, Atari DOS 2.5, MyDOS 4.53, SpartaDOS, Atari DOS 3 (read-only), Atari DOS 4 published by Antic (read-only), and LiteDOS volumes, in ATR disk image files.
  • FUSEADF supports AmigaOS disk images, and requires ADFLib, to compile.
  • FUSE-UFS supports FreeBSD UFSv2 volumes.
  • HFS-FUSE supports Apple HFS+ volumes, including resource forks, and extended attributes.
  • Acorn ADFS, and DFS implementations, written in Perl. Requires the "Fuse" CPAN module to be installed, to build.
  • RetroFUSE supports 5th/6th/7th Edition Research UNIX, 2.9BSD, and 2.11BSD file systems
  • PlayStation 2 Memory Card File System implementation, in FUSE
  • ratarmount is a FUSE file system, that can mount various archive formats, and allow random access to files, stored within them

Archive Manipulation

  • 7-Zip supports the Windows Imaging format (.WIM) disk images, with LZX compression, as used by Windows 8.1.
  • XADMaster supports a fairly comprehensive collection of compression, and archival formats, and can also expand some disk image formats - this seems to be the basis of the "unar" utility, provided for Ubuntu, and some other Linux distributions.
  • unshield is a CLI tool, for unpacking various flavours of InstallShield archive.
  • jSAVF is a Java-based application, for accessing IBM i (AKA OS/400) save files, under Windows, and Linux

Firmware Image Extraction

  • The RandomSHX utility, for Windows will extract the contents of some Motorola P2K (e.g. A835) "UNIX Generated SuperFile" firmware archives - this requires Windows, and does not work with UNC paths.
  • The srecord package, under Ubuntu contains a utility, that can convert Motorola S-Record files, into plain binaries: (for example srec_cat C139_V1.0.03.E.m0 -Output C139_V1.0.03.E.bin -Binary).
  • BinWalk is extremely useful, for extracting files, and resources out of firmware images, executables, and file system structures.

Binary reverse engineering

  • Dependency Walker for understanding Windows program dependencies and what's used by the program, helpful for software archaeology.
  • Ghidra is an open-source set of RE tools, including a set of decompilers and disassemblers for most binary formats.

Development tools

  • The Amsterdam Compiler Kit is one of the few (mostly) C99 compilers around that can still target a PDP-11 Unix v7 target.
  • llvm-cbe is the C backend for LLVM -- it can convert LLVM bytecode into C (useful for compiling modern C++ targeting systems that don't have a functional modern C++ compiler, for example).
  • GNUish Project is a port of UNIX standard utilities for DOS with family mode support (useful for replacing equivalent utilities that cannot be ran under OS/2).