Code Monkey home page Code Monkey logo

jefferson's People

Contributors

ddcc avatar federicobozzini avatar gorgiaxx avatar jameshilliard avatar qkaiser avatar ronwellman avatar sviehb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jefferson's Issues

ImportError: No module named lzma

When running jefferson I get the error ImportError: No module named lzma and when I try installing lzma with sudo pip install lzma I get:

Downloading/unpacking lzma
  Could not find any downloads that satisfy the requirement lzma
Cleaning up...
No distributions at all found for lzma
Storing debug log for failure in /home/galih/.pip/pip.log

I'm on python 2.7 how do I fix that?

'bytes' object has no attribute 'encode'

The following line is not python3 friendly:

print(node_data.encode("hex")[:20])

It generates the following error:

Traceback (most recent call last):
  File "./jefferson", line 513, in <module>
    main()
  File "./jefferson", line 484, in main
    fs_list = list(scan_fs(content, cstruct.BIG_ENDIAN, verbose=args.verbose))
  File "./jefferson", line 328, in scan_fs
    inode.unpack(content[0 + offset :])
  File "./jefferson", line 216, in unpack
    print(node_data.encode("hex")[:20])
AttributeError: 'bytes' object has no attribute 'encode'

This line can be converted to using binascii or just removed altogether since it's a debugging print.

Nodes version ordering during filesystem scan

Excuse me if I am an idiot, but I believe JFFS2 nodes need to be sorted by the 'version' field before being applied (lowest first), and I do not see this in the code..?
Doesn't this mean garbled output when a filesystem has been in use for a while?

Can you create tools to extract information detail of a jffs2 filesystem?

First of all, sorry to create this issue, because i dont know how to contact you. Your jefferson project is awesome, i can extract the jffs2 file system even in my Android phone. But i got difficulty on Recreating the jffs2 filesystem, i dont know what parameters needed to recreate it so the linux system can flash it and run/parse it normally.
When i try to create it, the linux system seems to flash it normally but it is writting NULL bytes at 0x2000 until 0x3000 bytes and some other, so the file in the partition is corrupt. Here is the sample:

FlashingFailed

The only thing i can use is from the original backup of the partition, it flash normally and not writting NULL bytes. I'm still curious is it because a fault on recreating the jffs2 filesystem or there is protection on the linux system.

Here is the Original partition backup that can be use:

m4.zip

mtdinfo only shows the erase block size, it is 64kb, but using -e 0x1000 or -e 64 still not work.

Thanks for your time reading my problem, i hope you can give me some solution. Thanks.,

jefferson does not work with cstruct 1.4

It looks like there were some internal API changes in cstruct, and, as a result, jefferson no longer works with the latest version:


[wd]>c:\python27\python.exe c:\Python27\Scripts\jefferson D04.jffs2 -d root
Traceback (most recent call last):
  File "c:\Python27\Scripts\jefferson", line 498, in <module>
    main()
  File "c:\Python27\Scripts\jefferson", line 470, in main
    fs_list = scan_fs(content, cstruct.BIG_ENDIAN, verbose=args.verbose)
  File "c:\Python27\Scripts\jefferson", line 290, in scan_fs
    unknown_node = Jffs2_unknown_node()
  File "c:\python27\lib\site-packages\cstruct\__init__.py", line 298, in __init__
    self.unpack(string)
  File "c:\Python27\Scripts\jefferson", line 71, in unpack
    cstruct.CStruct.unpack(self, data[:self.size])
TypeError: 'NoneType' object has no attribute '__getitem__'

I've reproduced the same behavior in Windows and in Ubuntu.

It starts working if I manually install cstruct 1.0.

Can't run it on Macos 10.13.2

➜ jefferson (master) ✗ jefferson
Traceback (most recent call last):
File "/usr/local/bin/jefferson", line 11, in
from jefferson import jffs2_lzma, rtime
File "/Library/Python/2.7/site-packages/jefferson/jffs2_lzma.py", line 3, in
import lzma
ImportError: dlopen(/Library/Python/2.7/site-packages/lzma.so, 2): Symbol not found: _lzma_alone_encoder
Referenced from: /Library/Python/2.7/site-packages/lzma.so
Expected in: flat namespace
in /Library/Python/2.7/site-packages/lzma.so

TypeError: Error while decompressing: 1

Hi,

Running master (v0.3 tag) I get this while trying to decompress a big-endian JFFS2 filesystem from a mips_24kc architecture. Debian 10 on x64.

$ jefferson 3A0000.jffs2
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
Traceback (most recent call last):
  File "/usr/local/bin/jefferson", line 513, in <module>
    main()
  File "/usr/local/bin/jefferson", line 484, in main
    fs_list = list(scan_fs(content, cstruct.BIG_ENDIAN, verbose=args.verbose))
  File "/usr/local/bin/jefferson", line 328, in scan_fs
    inode.unpack(content[0 + offset :])
  File "/usr/local/bin/jefferson", line 213, in unpack
    self.data = jffs2_lzma.decompress(node_data, self.dsize)
  File "/usr/local/lib/python3.7/dist-packages/jefferson/jffs2_lzma.py", line 20, in decompress
    decompressed = pylzma.decompress(lzma_data)
TypeError: Error while decompressing: 1
$ binwalk 3A0000.jffs2 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JFFS2 filesystem, big endian
$ python3 --version
Python 3.7.3
$ pip3 list|egrep 'cstruct|pylzma'
cstruct          1.8           
pylzma           0.5.0

jefferson not run

Hello
I have a bug, after install, I try jefferson and I have this :

'/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py:122: PkgResourcesDeprecationWarning: 1.16.0-unknown is an invalid version and will not be supported in a future release
warnings.warn(
/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py:122: PkgResourcesDeprecationWarning: 1.12.1-git20200711.33e2d80-dfsg1-0.6 is an invalid version and will not be supported in a future release
warnings.warn(
Traceback (most recent call last):
File "/usr/bin/jefferson", line 4, in
import('pkg_resources').run_script('jefferson==0.3', 'jefferson')
File "/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py", line 3247, in
def _initialize_master_working_set():
File "/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py", line 3221, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py", line 3259, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py", line 579, in _build_master
ws.require(requires)
File "/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py", line 897, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python3.9/dist-packages/pkg_resources/init.py", line 783, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'jefferson==0.3' distribution was not found and is required by the application
'

Updated cstruct does not successfully extract the firmware

I noticed with the updated cstruct 2.1 ( As on October 2021 ) , jefferson fails to extract the firmware. The workaround I found so far is forcing to use cstruct==1.0

Update requirements.txt with the old cstruct version 
cstruct==1.0

OverflowError: can't convert negative number to unsigned long

$ jefferson -v -f XXX.jffs2

writing XXX/YYY
Traceback (most recent call last):
  File "/usr/local/bin/jefferson", line 500, in <module>
    main()
  File "/usr/local/bin/jefferson", line 495, in main
    dump_fs(fs, dest_path_fs)
  File "/usr/local/bin/jefferson", line 429, in dump_fs
    os.mknod(target_path, inode.mode, get_device(inode))
OverflowError: can't convert negative number to unsigned long

Solution:
I checked out the arguments but I couldn't find negative numbers on inode properties.
So I just commented out line number 429 in /usr/local/bin/jefferson

# os.mknod(target_path, inode.mode, get_device(inode))

zlib.error: Error -5 while decompressing data: incomplete or truncated stream

Exctraction interrupts with an exception:

duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
Traceback (most recent call last):
  File "/home/user/.local/bin/jefferson", line 501, in <module>
    main()
  File "/home/user/.local/bin/jefferson", line 473, in main
    fs_list = scan_fs(content, cstruct.BIG_ENDIAN, verbose=args.verbose)
  File "/home/user/.local/bin/jefferson", line 325, in scan_fs
    inode.unpack(content[0 + offset:])
  File "/home/user/.local/bin/jefferson", line 209, in unpack
    self.data = zlib.decompress(node_data)
zlib.error: Error -5 while decompressing data: incomplete or truncated stream

The result is empty directory, nothing gets extracted

If I add a try/except like this:

diff --git a/src/scripts/jefferson b/src/scripts/jefferson
index 891d0cc..42a7e7d 100755
--- a/src/scripts/jefferson
+++ b/src/scripts/jefferson
@@ -205,7 +205,11 @@ class Jffs2_raw_inode(cstruct.CStruct):
         elif self.compr == JFFS2_COMPR_ZERO:
             self.data = '\x00' * self.dsize
         elif self.compr == JFFS2_COMPR_ZLIB:
-            self.data = zlib.decompress(node_data)
+            try:
+                self.data = zlib.decompress(node_data)
+            except:
+                print 'zlib.decompress failed'
+                self.data = ""
         elif self.compr == JFFS2_COMPR_RTIME:
             self.data = rtime.decompress(node_data, self.dsize)
         elif self.compr == JFFS2_COMPR_LZMA:

I'm able to get at least partial results extracted

Setup.py distutils.core no module

user@computer:~/git/jefferson$ sudo python3 setup.py install
Traceback (most recent call last):
File "setup.py", line 4, in
from distutils.core import setup
ModuleNotFoundError: No module named 'distutils.core'

Successfully ran pip3 install -r requirements.txt but the setup.py spat out this error for this module. Shouldn't it try to install it from the requirements.txt as well?

Unhandled OSError : “OS error(20): Not a directory"

When I run the command jefferson /usr/local/sxb/_r.bin.extracted/12EF8.jffs2 -d /usr/local/sxb/_r.bin.extracted/12EF8 --force, I obtain the following output:

writing S_ISREG etc_rw/wifi/qrcode_multi_ssid_wifikey.png
OS error(20): Not a directory
Jffs2_raw_inode(magic=6533, nodetype=57346, totlen=370, hdr_crc=1282750039, ino=1106, version=2, mode=33188, uid=0, gid=0, isize=308, atime=562884431, mtime=562884431, ctime=562884431, offset=0, csize=302, dsize=308, compr=8, usercompr=0, flags=212, data_crc=206954311, node_crc=2935843019)
Jffs2_raw_dirent(magic=6533, nodetype=57345, totlen=69, hdr_crc=2799693526, pino=43, version=614, ino=1106, mctime=562884431, nsize=29, type=8, unused=[0, 0], node_crc=3064406978, name_crc=1949020392, name=b'qrcode_multi_ssid_wifikey.png', node_offset=15330252)

How can I solve it?

Question

jefferson use for unpack jeffs2 image so have any utility for repack image ?

Getting "KeyError: 'endianness'" when extracting a firmware

I have an openwrt firmware file and I want to extract it, binwalk looks like this:
http://s28.postimg.org/ftopm9t4d/image.png
This is the error log, it's very long:

[galih@x openwrt]$ jefferson zz.bin -d halo/
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
duplicate inode use detected!!!
dumping fs #1 to /tmp/openwrt/halo/fs_1
Jffs2_raw_dirent count: 2
Jffs2_raw_inode count: 59
Jffs2_raw_summary count: 1
Jffs2_raw_xattr count: 0
Jffs2_raw_xref count: 0
Endianness: Big
writing S_ISLNK tmp
writing S_ISREG sms_gatewayDyTiRQ
----------
dumping fs #2 to /tmp/openwrt/halo/fs_2
Jffs2_raw_xattr count: 0
Jffs2_raw_dirent count: 2
Jffs2_raw_inode count: 6
Jffs2_raw_summary count: 0
Jffs2_raw_xref count: 0
Traceback (most recent call last):
  File "/usr/bin/jefferson", line 494, in <module>
    main()
  File "/usr/bin/jefferson", line 489, in main
    dump_fs(fs, dest_path_fs)
  File "/usr/bin/jefferson", line 371, in dump_fs
    set_endianness(fs["endianness"])
KeyError: 'endianness'

How do I fix it?

Why is jefferson so slow?

I'm trying to unpack a ~100 MB file system on a Ryzen 9 3950X but jefferson seems to process only a guesstimated 30 inodes per second (judging by -v output). I left it running for maybe 10 minutes and it didn't finish. Is this slow speed expected?

Python2 EOL

Python2.7 has reached EOL. Pip will drop support for python2.7 on 2021-01-01. This project will be significantly more difficult to install without pip

TypeError: ord() expected string of length 1, but int found

Hi

After writing the script to working in python 3.5.0, I ended up with this error:

$ binwalk -e 100AAJX10D0.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
131072        0x20000         JFFS2 filesystem, big endian

wittrup@desktop MINGW64 /c/Users/wittrup/Downloads/cpe-zyxel-p8702n/_100AAJX10D0.bin.extracted
$ jefferson 20000.jffs2
Traceback (most recent call last):
  File "C:/Users/wittrup/AppData/Local/Programs/Python/Python35-32/Scripts/jefferson", line 450, in <module>
    main()
  File "C:/Users/wittrup/AppData/Local/Programs/Python/Python35-32/Scripts/jefferson", line 429, in main
    fs_list = scan_fs(content, cstruct.BIG_ENDIAN, verbose=args.verbose)
  File "C:/Users/wittrup/AppData/Local/Programs/Python/Python35-32/Scripts/jefferson", line 304, in scan_fs
    inode.unpack(content[0 + offset:])
  File "C:/Users/wittrup/AppData/Local/Programs/Python/Python35-32/Scripts/jefferson", line 208, in unpack
    self.data = rtime.decompress(node_data, self.dsize)
  File "C:\Users\wittrup\AppData\Local\Programs\Python\Python35-32\lib\site-packages\jefferson\rtime.py", line 7, in decompress
    value = ord(data_in[pos])
TypeError: ord() expected string of length 1, but int found

Any clues?

Add verbosity option

Some users would like to have an option to control jefferson's verbosity level with a -v or --verbose option.

OSX Support

I may update this project myself (since it is dead and I will need it).

So, python-lzma does not exist for OSX. It can be potentially replaced with pylzma (pip install pylzma).
CStruct is (sudo pip install cstruct).

Pip support drops for Python 2.7 in January 2020. If I pick up the project, I am making sure it works for Python 3 (and will not support Python 2).

I see no further complaints, but I don't have a functional jefferson yet. I can get the help output, but no successful extraction. I also only changed import lzma to import pylzma to test the import. I have other projects I have to finish first, so I cannot work on this one atm.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.