summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/jsbeautifier/unpackers
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.11/site-packages/jsbeautifier/unpackers')
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__init__.py73
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/__init__.cpython-311.pycbin3804 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/evalbased.cpython-311.pycbin1742 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/javascriptobfuscator.cpython-311.pycbin2301 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/myobfuscate.cpython-311.pycbin3081 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/packer.cpython-311.pycbin7508 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/urlencode.cpython-311.pycbin1003 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/evalbased.py44
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/javascriptobfuscator.py61
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/myobfuscate.py90
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/packer.py161
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__init__.py2
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/__init__.cpython-311.pycbin212 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testjavascriptobfuscator.cpython-311.pycbin3519 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testmyobfuscate.cpython-311.pycbin3075 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testpacker.cpython-311.pycbin5054 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testurlencode.cpython-311.pycbin2480 -> 0 bytes
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testjavascriptobfuscator.py59
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testmyobfuscate.py48
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testpacker.py73
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testurlencode.py46
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py36
22 files changed, 0 insertions, 693 deletions
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__init__.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__init__.py
deleted file mode 100644
index 01c254f..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__init__.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# General code for JSBeautifier unpackers infrastructure. See README.specs
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-
-"""General code for JSBeautifier unpackers infrastructure."""
-
-import pkgutil
-import re
-from jsbeautifier.unpackers import evalbased
-
-# NOTE: AT THE MOMENT, IT IS DEACTIVATED FOR YOUR SECURITY: it runs js!
-BLACKLIST = ["jsbeautifier.unpackers.evalbased"]
-
-
-class UnpackingError(Exception):
- """Badly packed source or general error. Argument is a
- meaningful description."""
-
- pass
-
-
-def getunpackers():
- """Scans the unpackers dir, finds unpackers and add them to UNPACKERS list.
- An unpacker will be loaded only if it is a valid python module (name must
- adhere to naming conventions) and it is not blacklisted (i.e. inserted
- into BLACKLIST."""
- path = __path__
- prefix = __name__ + "."
- unpackers = []
- interface = ["unpack", "detect", "PRIORITY"]
- for _importer, modname, _ispkg in pkgutil.iter_modules(path, prefix):
- if "tests" not in modname and modname not in BLACKLIST:
- try:
- module = __import__(modname, fromlist=interface)
- except ImportError:
- raise UnpackingError("Bad unpacker: %s" % modname)
- else:
- unpackers.append(module)
-
- return sorted(unpackers, key=lambda mod: mod.PRIORITY)
-
-
-UNPACKERS = getunpackers()
-
-
-def run(source, evalcode=False):
- """Runs the applicable unpackers and return unpacked source as a string."""
- for unpacker in [mod for mod in UNPACKERS if mod.detect(source)]:
- source = unpacker.unpack(source)
- if evalcode and evalbased.detect(source):
- source = evalbased.unpack(source)
- return source
-
-
-def filtercomments(source):
- """NOT USED: strips trailing comments and put them at the top."""
- trailing_comments = []
- comment = True
-
- while comment:
- if re.search(r"^\s*\/\*", source):
- comment = source[0, source.index("*/") + 2]
- elif re.search(r"^\s*\/\/", source):
- comment = re.search(r"^\s*\/\/", source).group(0)
- else:
- comment = None
-
- if comment:
- source = re.sub(r"^\s+", "", source[len(comment) :])
- trailing_comments.append(comment)
-
- return "\n".join(trailing_comments) + source
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/__init__.cpython-311.pyc
deleted file mode 100644
index 824dc1c..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/__init__.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/evalbased.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/evalbased.cpython-311.pyc
deleted file mode 100644
index 38644e1..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/evalbased.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/javascriptobfuscator.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/javascriptobfuscator.cpython-311.pyc
deleted file mode 100644
index 8ee047d..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/javascriptobfuscator.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/myobfuscate.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/myobfuscate.cpython-311.pyc
deleted file mode 100644
index cf2948e..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/myobfuscate.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/packer.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/packer.cpython-311.pyc
deleted file mode 100644
index c0abc98..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/packer.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/urlencode.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/urlencode.cpython-311.pyc
deleted file mode 100644
index ba90614..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/__pycache__/urlencode.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/evalbased.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/evalbased.py
deleted file mode 100644
index 74f1f0f..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/evalbased.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Unpacker for eval() based packers, a part of javascript beautifier
-# by Einar Lielmanis <einar@beautifier.io>
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-# usage:
-#
-# if detect(some_string):
-# unpacked = unpack(some_string)
-#
-
-"""Unpacker for eval() based packers: runs JS code and returns result.
-Works only if a JS interpreter (e.g. Mozilla's Rhino) is installed and
-properly set up on host."""
-
-from subprocess import PIPE, Popen
-
-PRIORITY = 3
-
-
-def detect(source):
- """Detects if source is likely to be eval() packed."""
- return source.strip().lower().startswith("eval(function(")
-
-
-def unpack(source):
- """Runs source and return resulting code."""
- return jseval("print %s;" % source[4:]) if detect(source) else source
-
-
-# In case of failure, we'll just return the original, without crashing on user.
-
-
-def jseval(script):
- """Run code in the JS interpreter and return output."""
- try:
- interpreter = Popen(["js"], stdin=PIPE, stdout=PIPE)
- except OSError:
- return script
- result, errors = interpreter.communicate(script)
- if interpreter.poll() or errors:
- return script
- return result
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/javascriptobfuscator.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/javascriptobfuscator.py
deleted file mode 100644
index bd3a331..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/javascriptobfuscator.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# simple unpacker/deobfuscator for scripts messed up with
-# javascriptobfuscator.com
-#
-# written by Einar Lielmanis <einar@beautifier.io>
-# rewritten in Python by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-# Will always return valid javascript: if `detect()` is false, `code` is
-# returned, unmodified.
-#
-# usage:
-#
-# if javascriptobfuscator.detect(some_string):
-# some_string = javascriptobfuscator.unpack(some_string)
-#
-
-"""deobfuscator for scripts messed up with JavascriptObfuscator.com"""
-
-import re
-
-PRIORITY = 1
-
-
-def smartsplit(code):
- """Split `code` at " symbol, only if it is not escaped."""
- strings = []
- pos = 0
- while pos < len(code):
- if code[pos] == '"':
- word = "" # new word
- pos += 1
- while pos < len(code):
- if code[pos] == '"':
- break
- if code[pos] == "\\":
- word += "\\"
- pos += 1
- word += code[pos]
- pos += 1
- strings.append('"%s"' % word)
- pos += 1
- return strings
-
-
-def detect(code):
- """Detects if `code` is JavascriptObfuscator.com packed."""
- # prefer `is not` idiom, so that a true boolean is returned
- return re.search(r"^var _0x[a-f0-9]+ ?\= ?\[", code) is not None
-
-
-def unpack(code):
- """Unpacks JavascriptObfuscator.com packed code."""
- if detect(code):
- matches = re.search(r"var (_0x[a-f\d]+) ?\= ?\[(.*?)\];", code)
- if matches:
- variable = matches.group(1)
- dictionary = smartsplit(matches.group(2))
- code = code[len(matches.group(0)) :]
- for key, value in enumerate(dictionary):
- code = code.replace(r"%s[%s]" % (variable, key), value)
- return code
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/myobfuscate.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/myobfuscate.py
deleted file mode 100644
index 0cbc7f8..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/myobfuscate.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# deobfuscator for scripts messed up with myobfuscate.com
-# by Einar Lielmanis <einar@beautifier.io>
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-# usage:
-#
-# if detect(some_string):
-# unpacked = unpack(some_string)
-#
-
-# CAVEAT by Einar Lielmanis
-
-#
-# You really don't want to obfuscate your scripts there: they're tracking
-# your unpackings, your script gets turned into something like this,
-# as of 2011-08-26:
-#
-# var _escape = 'your_script_escaped';
-# var _111 = document.createElement('script');
-# _111.src = 'http://api.www.myobfuscate.com/?getsrc=ok' +
-# '&ref=' + encodeURIComponent(document.referrer) +
-# '&url=' + encodeURIComponent(document.URL);
-# var 000 = document.getElementsByTagName('head')[0];
-# 000.appendChild(_111);
-# document.write(unescape(_escape));
-#
-
-"""Deobfuscator for scripts messed up with MyObfuscate.com"""
-
-import re
-import base64
-
-# Python 2 retrocompatibility
-# pylint: disable=F0401
-# pylint: disable=E0611
-try:
- from urllib import unquote
-except ImportError:
- from urllib.parse import unquote
-
-from jsbeautifier.unpackers import UnpackingError
-
-PRIORITY = 1
-
-CAVEAT = """//
-// Unpacker warning: be careful when using myobfuscate.com for your projects:
-// scripts obfuscated by the free online version call back home.
-//
-
-"""
-
-SIGNATURE = (
- r'["\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4A\x4B\x4C\x4D\x4E\x4F'
- r"\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5A\x61\x62\x63\x64\x65"
- r"\x66\x67\x68\x69\x6A\x6B\x6C\x6D\x6E\x6F\x70\x71\x72\x73\x74\x75"
- r"\x76\x77\x78\x79\x7A\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2B"
- r'\x2F\x3D","","\x63\x68\x61\x72\x41\x74","\x69\x6E\x64\x65\x78'
- r'\x4F\x66","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65","'
- r'\x6C\x65\x6E\x67\x74\x68"]'
-)
-
-
-def detect(source):
- """Detects MyObfuscate.com packer."""
- return SIGNATURE in source
-
-
-def unpack(source):
- """Unpacks js code packed with MyObfuscate.com"""
- if not detect(source):
- return source
- payload = unquote(_filter(source))
- match = re.search(r"^var _escape\='<script>(.*)<\/script>'", payload, re.DOTALL)
- polished = match.group(1) if match else source
- return CAVEAT + polished
-
-
-def _filter(source):
- """Extracts and decode payload (original file) from `source`"""
- try:
- varname = re.search(r"eval\(\w+\(\w+\((\w+)\)\)\);", source).group(1)
- reverse = re.search(r"var +%s *\= *'(.*)';" % varname, source).group(1)
- except AttributeError:
- raise UnpackingError("Malformed MyObfuscate data.")
- try:
- return base64.b64decode(reverse[::-1].encode("utf8")).decode("utf8")
- except TypeError:
- raise UnpackingError("MyObfuscate payload is not base64-encoded.")
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/packer.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/packer.py
deleted file mode 100644
index 117ff58..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/packer.py
+++ /dev/null
@@ -1,161 +0,0 @@
-#
-# Unpacker for Dean Edward's p.a.c.k.e.r, a part of javascript beautifier
-# by Einar Lielmanis <einar@beautifier.io>
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-# usage:
-#
-# if detect(some_string):
-# unpacked = unpack(some_string)
-#
-
-"""Unpacker for Dean Edward's p.a.c.k.e.r"""
-
-import re
-import string
-import sys
-from jsbeautifier.unpackers import UnpackingError
-
-PRIORITY = 1
-
-
-def detect(source):
- global beginstr
- global endstr
- beginstr = ""
- endstr = ""
- begin_offset = -1
- """Detects whether `source` is P.A.C.K.E.R. coded."""
- mystr = re.search(
- r"eval[ ]*\([ ]*function[ ]*\([ ]*p[ ]*,[ ]*a[ ]*,[ ]*c["
- " ]*,[ ]*k[ ]*,[ ]*e[ ]*,[ ]*",
- source,
- )
- if mystr:
- begin_offset = mystr.start()
- beginstr = source[:begin_offset]
- if begin_offset != -1:
- """Find endstr"""
- source_end = source[begin_offset:]
- if source_end.split("')))", 1)[0] == source_end:
- try:
- endstr = source_end.split("}))", 1)[1]
- except IndexError:
- endstr = ""
- else:
- endstr = source_end.split("')))", 1)[1]
- return mystr is not None
-
-
-def unpack(source):
- """Unpacks P.A.C.K.E.R. packed js code."""
- payload, symtab, radix, count = _filterargs(source)
-
- if count != len(symtab):
- raise UnpackingError("Malformed p.a.c.k.e.r. symtab.")
-
- try:
- unbase = Unbaser(radix)
- except TypeError:
- raise UnpackingError("Unknown p.a.c.k.e.r. encoding.")
-
- def lookup(match):
- """Look up symbols in the synthetic symtab."""
- word = match.group(0)
- return symtab[unbase(word)] or word
-
- payload = payload.replace("\\\\", "\\").replace("\\'", "'")
- if sys.version_info.major == 2:
- source = re.sub(r"\b\w+\b", lookup, payload)
- else:
- source = re.sub(r"\b\w+\b", lookup, payload, flags=re.ASCII)
- return _replacestrings(source)
-
-
-def _filterargs(source):
- """Juice from a source file the four args needed by decoder."""
- juicers = [
- (r"}\('(.*)', *(\d+|\[\]), *(\d+), *'(.*)'\.split\('\|'\), *(\d+), *(.*)\)\)"),
- (r"}\('(.*)', *(\d+|\[\]), *(\d+), *'(.*)'\.split\('\|'\)"),
- ]
- for juicer in juicers:
- args = re.search(juicer, source, re.DOTALL)
- if args:
- a = args.groups()
- if a[1] == "[]":
- a = list(a)
- a[1] = 62
- a = tuple(a)
- try:
- return a[0], a[3].split("|"), int(a[1]), int(a[2])
- except ValueError:
- raise UnpackingError("Corrupted p.a.c.k.e.r. data.")
-
- # could not find a satisfying regex
- raise UnpackingError(
- "Could not make sense of p.a.c.k.e.r data (unexpected code structure)"
- )
-
-
-def _replacestrings(source):
- global beginstr
- global endstr
- """Strip string lookup table (list) and replace values in source."""
- match = re.search(r'var *(_\w+)\=\["(.*?)"\];', source, re.DOTALL)
-
- if match:
- varname, strings = match.groups()
- startpoint = len(match.group(0))
- lookup = strings.split('","')
- variable = "%s[%%d]" % varname
- for index, value in enumerate(lookup):
- source = source.replace(variable % index, '"%s"' % value)
- return source[startpoint:]
- return beginstr + source + endstr
-
-
-class Unbaser(object):
- """Functor for a given base. Will efficiently convert
- strings to natural numbers."""
-
- ALPHABET = {
- 62: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
- 95: (
- " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
- ),
- }
-
- def __init__(self, base):
- self.base = base
-
- # fill elements 37...61, if necessary
- if 36 < base < 62:
- if not hasattr(self.ALPHABET, self.ALPHABET[62][:base]):
- self.ALPHABET[base] = self.ALPHABET[62][:base]
- # attrs = self.ALPHABET
- # print ', '.join("%s: %s" % item for item in attrs.items())
- # If base can be handled by int() builtin, let it do it for us
- if 2 <= base <= 36:
- self.unbase = lambda string: int(string, base)
- else:
- # Build conversion dictionary cache
- try:
- self.dictionary = dict(
- (cipher, index) for index, cipher in enumerate(self.ALPHABET[base])
- )
- except KeyError:
- raise TypeError("Unsupported base encoding.")
-
- self.unbase = self._dictunbaser
-
- def __call__(self, string):
- return self.unbase(string)
-
- def _dictunbaser(self, string):
- """Decodes a value to an integer."""
- ret = 0
- for index, cipher in enumerate(string[::-1]):
- ret += (self.base**index) * self.dictionary[cipher]
- return ret
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__init__.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__init__.py
deleted file mode 100644
index dfe67ba..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# Empty file :)
-# pylint: disable=C0111
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/__init__.cpython-311.pyc
deleted file mode 100644
index 612fa57..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/__init__.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testjavascriptobfuscator.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testjavascriptobfuscator.cpython-311.pyc
deleted file mode 100644
index 6c1abb8..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testjavascriptobfuscator.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testmyobfuscate.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testmyobfuscate.cpython-311.pyc
deleted file mode 100644
index c62db76..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testmyobfuscate.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testpacker.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testpacker.cpython-311.pyc
deleted file mode 100644
index 86d19bf..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testpacker.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testurlencode.cpython-311.pyc b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testurlencode.cpython-311.pyc
deleted file mode 100644
index 93bd7db..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/__pycache__/testurlencode.cpython-311.pyc
+++ /dev/null
Binary files differ
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testjavascriptobfuscator.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testjavascriptobfuscator.py
deleted file mode 100644
index d40db2d..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testjavascriptobfuscator.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-
-"""Tests for JavaScriptObfuscator unpacker."""
-
-import unittest
-from jsbeautifier.unpackers.javascriptobfuscator import unpack, detect, smartsplit
-
-# pylint: disable=R0904
-
-
-class TestJavascriptObfuscator(unittest.TestCase):
- """JavascriptObfuscator.com test case."""
-
- def test_smartsplit(self):
- """Test smartsplit() function."""
- split = smartsplit
-
- def equals(data, result):
- return self.assertEqual(split(data), result)
-
- equals("", [])
- equals('"a", "b"', ['"a"', '"b"'])
- equals('"aaa","bbbb"', ['"aaa"', '"bbbb"'])
- equals('"a", "b\\""', ['"a"', '"b\\""'])
-
- def test_detect(self):
- """Test detect() function."""
-
- def positive(source):
- return self.assertTrue(detect(source))
-
- def negative(source):
- return self.assertFalse(detect(source))
-
- negative("")
- negative("abcd")
- negative("var _0xaaaa")
- positive('var _0xaaaa = ["a", "b"]')
- positive('var _0xaaaa=["a", "b"]')
- positive('var _0x1234=["a","b"]')
-
- def test_unpack(self):
- """Test unpack() function."""
-
- def decodeto(ob, original):
- return self.assertEqual(unpack(ob), original)
-
- decodeto("var _0x8df3=[];var a=10;", "var a=10;")
- decodeto(
- 'var _0xb2a7=["\x74\x27\x65\x73\x74"];var i;for(i=0;i<10;++i)'
- "{alert(_0xb2a7[0]);} ;",
- "var i;for(i=0;i<10;++i){alert" '("t\'est");} ;',
- )
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testmyobfuscate.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testmyobfuscate.py
deleted file mode 100644
index d69df82..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testmyobfuscate.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-
-"""Tests for MyObfuscate unpacker."""
-
-import unittest
-import os
-from jsbeautifier.unpackers.myobfuscate import detect, unpack
-from jsbeautifier.unpackers.tests import __path__ as path
-
-INPUT = os.path.join(path[0], "test-myobfuscate-input.js")
-OUTPUT = os.path.join(path[0], "test-myobfuscate-output.js")
-
-# pylint: disable=R0904
-
-
-class TestMyObfuscate(unittest.TestCase):
- # pylint: disable=C0103
- """MyObfuscate obfuscator testcase."""
-
- @classmethod
- def setUpClass(cls):
- """Load source files (encoded and decoded version) for tests."""
- with open(INPUT, "r") as data:
- cls.input = data.read()
- with open(OUTPUT, "r") as data:
- cls.output = data.read()
-
- def test_detect(self):
- """Test detect() function."""
-
- def detected(source):
- return self.assertTrue(detect(source))
-
- detected(self.input)
-
- def test_unpack(self):
- """Test unpack() function."""
-
- def check(inp, out):
- return self.assertEqual(unpack(inp), out)
-
- check(self.input, self.output)
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testpacker.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testpacker.py
deleted file mode 100644
index 1de9934..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testpacker.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-
-"""Tests for P.A.C.K.E.R. unpacker."""
-
-import unittest
-from jsbeautifier.unpackers.packer import detect, unpack
-
-# pylint: disable=R0904
-
-
-class TestPacker(unittest.TestCase):
- """P.A.C.K.E.R. testcase."""
-
- def test_detect(self):
- """Test detect() function."""
-
- def positive(source):
- return self.assertTrue(detect(source))
-
- def negative(source):
- return self.assertFalse(detect(source))
-
- negative("")
- negative("var a = b")
- positive("eval(function(p,a,c,k,e,r")
- positive("eval ( function(p, a, c, k, e, r")
-
- def test_unpack(self):
- """Test unpack() function."""
-
- def check(inp, out):
- return detect(inp) and self.assertEqual(unpack(inp), out)
-
- check(
- "eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)"
- "){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e="
- "function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace("
- "new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}('0 2=1',"
- "62,3,'var||a'.split('|'),0,{}))",
- "var a=1",
- )
-
- check(
- "function test (){alert ('This is a test!')}; "
- "eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String))"
- "{while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function"
- "(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp("
- "'\\b'+e(c)+'\\b','g'),k[c]);return p}('0 2=\\'{Íâ–+›ï;ã†Ù¥#\\'',3,3,"
- "'var||a'.split('|'),0,{}))",
- "function test (){alert ('This is a test!')}; var a='{Íâ–+›ï;ã†Ù¥#'",
- )
-
- check(
- "eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('2 0=\"4 3!\";2 1=0.5(/b/6);a.9(\"8\").7=1;',12,12,'str|n|var|W3Schools|Visit|search|i|innerHTML|demo|getElementById|document|w3Schools'.split('|'),0,{}))",
- 'var str="Visit W3Schools!";var n=str.search(/w3Schools/i);document.getElementById("demo").innerHTML=n;',
- )
-
- check(
- "a=b;\r\nwhile(1){\ng=h;{return'\\w+'};break;eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('$(5).4(3(){$('.1').0(2);$('.6').0(d);$('.7').0(b);$('.a').0(8);$('.9').0(c)});',14,14,'html|r5e57|8080|function|ready|document|r1655|rc15b|8888|r39b0|r6ae9|3128|65309|80'.split('|'),0,{}))c=abx;",
- "a=b;\r\nwhile(1){\ng=h;{return'\\w+'};break;$(document).ready(function(){$('.r5e57').html(8080);$('.r1655').html(80);$('.rc15b').html(3128);$('.r6ae9').html(8888);$('.r39b0').html(65309)});c=abx;",
- )
-
- check(
- "eval(function(p,a,c,k,e,r){e=function(c){return c.toString(36)};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[0-9ab]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(5).a(6(){ $('.8').0(1); $('.b').0(4); $('.9').0(2); $('.7').0(3)})',[],12,'html|52136|555|65103|8088|document|function|r542c|r8ce6|rb0de|ready|rfab0'.split('|'),0,{}))",
- "$(document).ready(function(){ $('.r8ce6').html(52136); $('.rfab0').html(8088); $('.rb0de').html(555); $('.r542c').html(65103)})",
- )
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testurlencode.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testurlencode.py
deleted file mode 100644
index 10e236d..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/tests/testurlencode.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# written by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-
-"""Tests for urlencoded unpacker."""
-
-import unittest
-
-from jsbeautifier.unpackers.urlencode import detect, unpack
-
-# pylint: disable=R0904
-
-
-class TestUrlencode(unittest.TestCase):
- """urlencode test case."""
-
- def test_detect(self):
- """Test detect() function."""
-
- def encoded(source):
- return self.assertTrue(detect(source))
-
- def unencoded(source):
- return self.assertFalse(detect(source))
-
- unencoded("")
- unencoded("var a = b")
- encoded("var%20a+=+b")
- encoded("var%20a=b")
- encoded("var%20%21%22")
-
- def test_unpack(self):
- """Test unpack function."""
-
- def equals(source, result):
- return self.assertEqual(unpack(source), result)
-
- equals("", "")
- equals("abcd", "abcd")
- equals("var a = b", "var a = b")
- equals("var%20a=b", "var a=b")
- equals("var%20a+=+b", "var a = b")
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py
deleted file mode 100644
index d0d492a..0000000
--- a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Trivial bookmarklet/escaped script detector for the javascript beautifier
-# written by Einar Lielmanis <einar@beautifier.io>
-# rewritten in Python by Stefano Sanfilippo <a.little.coder@gmail.com>
-#
-# Will always return valid javascript: if `detect()` is false, `code` is
-# returned, unmodified.
-#
-# usage:
-#
-# some_string = urlencode.unpack(some_string)
-#
-
-"""Bookmarklet/escaped script unpacker."""
-
-# Python 2 retrocompatibility
-# pylint: disable=F0401
-# pylint: disable=E0611
-try:
- from urllib import unquote_plus
-except ImportError:
- from urllib.parse import unquote_plus
-
-PRIORITY = 0
-
-
-def detect(code):
- """Detects if a scriptlet is urlencoded."""
- # the fact that script doesn't contain any space, but has %20 instead
- # should be sufficient check for now.
- return " " not in code and ("%20" in code or code.count("%") > 3)
-
-
-def unpack(code):
- """URL decode `code` source string."""
- return unquote_plus(code) if detect(code) else code