55 lines
2.9 KiB
Python
55 lines
2.9 KiB
Python
import random
|
|
import string
|
|
from utils.name_gen import NameGenerator
|
|
|
|
class JunkGenerator:
|
|
def __init__(self, name_generator: NameGenerator):
|
|
self.name_generator = name_generator
|
|
|
|
def add_junk(self) -> str:
|
|
"""
|
|
Generates random multi-line junk code, used to pad the final output.
|
|
"""
|
|
var1 = self.name_generator.generate_name()
|
|
var2 = self.name_generator.generate_name()
|
|
|
|
example_strings = ["HelloWorld", "CryptoMagic", "XxX_Obf_42", "DataStorm", "RandomStr", "TestString"]
|
|
s1 = random.choice(example_strings)
|
|
s2 = random.choice(example_strings)
|
|
|
|
multi_line_junks = [
|
|
f"{var1} = chr({random.randint(65, 90)}) + chr({random.randint(65, 90)})",
|
|
f"{var1} = sum([{random.randint(1,10)} for _ in range({random.randint(1,5)})])",
|
|
f"{var1} = len(bytes([{random.randint(65,90)}, {random.randint(65,90)}, {random.randint(65,90)}]))",
|
|
f"if chr({random.randint(65,90)}).isupper(): {var1} = {random.randint(0, 999)}",
|
|
f"{var1} = bytes([{random.randint(65,90)}] * {random.randint(1,3)})",
|
|
f"{var1} = ord(chr({random.randint(65,90)})) - {random.randint(1,10)}",
|
|
|
|
f"{var1} = '{s1}'.lower()\n{var2} = '{s2}'.upper()",
|
|
f"{var1} = [chr(random.randint(65,90)) for _ in range({random.randint(2,5)})]\n{var2} = ''.join({var1})",
|
|
f"{var1} = {random.randint(1,10)} ** {random.randint(1,3)}\n{var2} = {var1} % {random.randint(1,10)}",
|
|
f"{var1} = [{random.randint(1,5)} for _ in range({random.randint(3,5)})]\nif len({var1}) > {random.randint(1,4)}: {var2} = sum({var1})",
|
|
f"{var1} = {{ {random.randint(1,10)} : '{s1}' }}\n{var2} = {var1}.get({random.randint(1,10)}, None)",
|
|
f"{var1} = set(range({random.randint(2,5)}))\n{var2} = set(range({random.randint(2,5)}))\n{var1}.intersection({var2})"
|
|
]
|
|
return random.choice(multi_line_junks)
|
|
|
|
def generate_junk(self) -> str:
|
|
"""
|
|
Generates a single line of junk code.
|
|
"""
|
|
var_name = self.name_generator.generate_name()
|
|
junk_code = [
|
|
f"{var_name} = {random.randint(0, 100)}",
|
|
f"{var_name} = '{''.join(random.choices(string.ascii_letters, k=10))}'",
|
|
f"{var_name} = {random.randint(0, 100)} + {random.randint(0, 100)}",
|
|
f"{var_name} = {random.randint(0, 100)} * {random.randint(0, 100)}",
|
|
f"{var_name} = {random.randint(0, 100)} - {random.randint(0, 100)}",
|
|
f"{var_name} = {random.randint(0, 100)} / {random.randint(1, 100)}",
|
|
f"{var_name} = '{''.join(random.choices(string.ascii_letters + string.digits, k=15))}'",
|
|
f"{var_name} = {random.randint(0, 100)} % {random.randint(1, 100)}",
|
|
f"{var_name} = {random.randint(0, 100)} ** {random.randint(0, 5)}",
|
|
f"{var_name} = {random.randint(0, 100)} // {random.randint(1, 100)}"
|
|
]
|
|
return random.choice(junk_code)
|