Commit 704ae358 by devttys0

Merge pull request #172 from sviehb/xz_handle

use internal lzmaextract for xz and 7z as an alternative
parents a450bdf6 b3b8a793
...@@ -20,13 +20,14 @@ ...@@ -20,13 +20,14 @@
# #
# o gzip # o gzip
# o lzma # o lzma
# o xz
# #
####################################################################################################################################### #######################################################################################################################################
# Assumes these utilities are installed in $PATH. # Assumes these utilities are installed in $PATH.
^gzip compressed data:gz:gzip -d -f '%e':0,2 ^gzip compressed data:gz:gzip -d -f '%e':0,2
^lzma compressed data:7z:7z e -y '%e':0,1 ^lzma compressed data:7z:7z e -y '%e':0,1
^xz compressed data:tar:tar xJf '%e' ^xz compressed data:xz:7z e -y '%e':0,1
^bzip2 compressed data:bz2:bzip2 -d '%e' ^bzip2 compressed data:bz2:bzip2 -d '%e'
^compress'd data:Z:gzip -d '%e' ^compress'd data:Z:gzip -d '%e'
^zip archive data:zip:7z x -y '%e' -p '':0,1 ^zip archive data:zip:7z x -y '%e' -p '':0,1
......
...@@ -9,6 +9,9 @@ class LZMAExtractPlugin(binwalk.core.plugin.Plugin): ...@@ -9,6 +9,9 @@ class LZMAExtractPlugin(binwalk.core.plugin.Plugin):
def init(self): def init(self):
try: try:
# lzma package in Python 2.0 decompress() does not handle multiple
# compressed streams, only first stream is extracted.
# backports.lzma package could be used to keep consistent behaviour.
import lzma import lzma
self.decompressor = lzma.decompress self.decompressor = lzma.decompress
...@@ -19,6 +22,10 @@ class LZMAExtractPlugin(binwalk.core.plugin.Plugin): ...@@ -19,6 +22,10 @@ class LZMAExtractPlugin(binwalk.core.plugin.Plugin):
regex="^lzma compressed data", regex="^lzma compressed data",
extension="7z", extension="7z",
cmd=self.extractor) cmd=self.extractor)
self.module.extractor.add_rule(txtrule=None,
regex="^xz compressed data",
extension="xz",
cmd=self.extractor)
except ImportError as e: except ImportError as e:
pass pass
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment