JFFS2 filesystem extraction tool
https://github.com/sviehb/jefferson
A JFFS2 filesystem extraction tool written in python.
Features:
- Big/Little Endian support
- JFFS2_COMPR_ZLIB, JFFS2_COMPR_RTIME, and
JFFS2_COMPR_LZMA compression support
- CRC checks - for now only enforced on hdr_crc
- Extraction of symlinks, directories, files, and device nodes
- Detection/handling of duplicate inode numbers. Occurs if multiple
JFFS2 filesystems are found in one file and causes jefferson
to treat segments as separate filesystems
- Devel package for openSUSE:Factory
-
1
derived packages
- Links to openSUSE:Factory / jefferson
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout devel:tools/jefferson && cd $_
- Create Badge
Refresh
Refresh
Source Files
Filename | Size | Changed |
---|---|---|
_service | 0000000557 557 Bytes | |
_servicedata | 0000000237 237 Bytes | |
jefferson-0.4.1+git.20220705.tar.xz | 0000045720 44.6 KB | |
jefferson.changes | 0000002178 2.13 KB | |
jefferson.spec | 0000002297 2.24 KB |
Revision 3 (latest revision is 4)
Dirk Mueller (dirkmueller)
accepted
request 1010945
from
Martin Hauke (mnhauke)
(revision 3)
- Update to version 0.4.1+git.20220705: * Fix is_safe_path call to use absolute path rather than relative path to execution directory. * Fix extraction of files with size greater than one erase block. * Remove unnecessary log call. * Keep xattr, xref, and summary nodetypes in order to propely identify unknown node types. * Remove handling of xref nodes, xattr nodes, summary nodes. * Use inode indexed dicts for inodes, dirent, and xref entries. * Simplify filesystem structure. * Fix duplicate inodes handling. * Fix support for python 3.10 by pinning python-lzo to 1.14. * Better handling of decompression error + simpler endianness logging. * Memory-mapped file support * Add support for LZO compression. * Revert the symlink path traversal check as it does not present a direct risk to normal end users. Those checks can be implemented by other tools where required. * Fix path traversal security vulnerability by canonicalizing path names of every inodes and discarding inodes with a path pointing outside of the extraction directory. * Autodetect endianness rather than scan the filesystem twice, one for each possible endianness. We make the assumption that a JFFS2 has always a fixed endianness and that nodes won't switch between endianness in the middle of a filesystem. * Add support for JFFS2 old magic signature (0x1984). * pin cstruct version to 2.1 so we don't end up with breaking API changes in the future. Moving to more recent versions should be done manually once it's been tested that jefferson
Comments 0