From 9565295780bf9a0ee00b4ce4f7e33613a1c6ed2f Mon Sep 17 00:00:00 2001 From: extremecoders-re Date: Mon, 21 Aug 2023 02:39:38 +0530 Subject: [PATCH] Backport non UTF-8 file name bugfix from pyinstxtractor-ng --- pyinstxtractor.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyinstxtractor.py b/pyinstxtractor.py index a28c00c..5f3d0d7 100644 --- a/pyinstxtractor.py +++ b/pyinstxtractor.py @@ -231,7 +231,12 @@ class PyInstArchive: '!IIIBc{0}s'.format(entrySize - nameLen), \ self.fPtr.read(entrySize - 4)) - name = name.decode('utf-8').rstrip('\0') + try: + name = name.decode("utf-8").rstrip("\0") + except UnicodeDecodeError: + newName = str(uniquename()) + print('[!] Warning: File name {0} contains invalid bytes. Using random name {1}'.format(name, newName)) + name = newName # Prevent writing outside the extraction directory if name.startswith("/"):