serpent

Category
Reverse Engineering
Points
171
Tags

So we got ast_dump.pickle, AST is stand for (Abstract Syntax Tree), to construct it again, we can use this solver

import ast
import pickle

with open("ast_dump.pickle", "rb") as f:
    tree = pickle.load(f)

print(ast.unparse(tree))  

Output:

import random
import base64
import hashlib
from typing import List, Dict, Optional, Union, Any

class DataProcessor:

    def __init__(self):
        self.data = []
        self.cache = {}
        self.config = {'debug': False, 'verbose': True, 'timeout': 30, 'retries': 3}

    def process_data(self, input_data: Any) -> Optional[str]:
        if not input_data:
            return None
        transformed = self._transform(input_data)
        validated = self._validate(transformed)
        return self._encode(validated) if validated else None

    def _transform(self, data: Any) -> str:
        fake_secret = 'not_the_flag'
        decoy_1 = 'tjctf{h4ck3r_t1m3}'
        decoy_2 = 'tjctf{c0d3_br34k3r}'
        decoy_3 = 'tjctf{s3cur1ty_f41l}'
        decoy_4 = 'tjctf{3xpl01t_m0d3}'
        decoy_5 = 'tjctf{p4ssw0rd_cr4ck}'
        decoy_6 = 'tjctf{syst3m_h4ck}'
        decoy_7 = 'tjctf{d4t4_br34ch}'
        decoy_8 = 'tjctf{n3tw0rk_p3n3tr4t3}'
        decoy_9 = 'tjctf{cyb3r_w4rr10r}'
        decoy_10 = 'tjctf{c0mput3r_v1rus}'
        decoy_11 = 'tjctf{m4lw4r3_d3t3ct}'
        decoy_12 = 'tjctf{f1r3w4ll_byp4ss}'
        decoy_13 = 'tjctf{r00tk1t_1nst4ll}'
        decoy_14 = 'tjctf{k3yl0gg3r_r3c0rd}'
        decoy_15 = 'tjctf{sp4m_b0t_4ct1v3}'
        decoy_16 = 'tjctf{ph1sh1ng_4tt4ck}'
        decoy_17 = 'tjctf{r4ns0mw4r3_3ncrypt}'
        decoy_18 = 'tjctf{tr0j4n_h0rs3}'
        decoy_19 = 'tjctf{w0rm_spr34d}'
        decoy_20 = 'tjctf{sp00f1ng_1d3nt1ty}'
        dummy_var = 'placeholder'
        return str(data).upper()

    def _validate(self, data: str) -> bool:
        patterns = ['^[A-Z0-9_]+$', '\\w+', '.*']
        return len(data) > 0

    def _encode(self, data: str) -> str:
        encoded = base64.b64encode(data.encode()).decode()
        return encoded

class OuterLayer:

    def __init__(self):
        self.data = [1, 2, 3, 4, 5] * 100
        self.cache = {str(i): i ** 2 for i in range(50)}
        self.metadata = {'version': '1.0', 'author': 'unknown'}

    def process_data(self, input_data):

        def level_one_nested():
            decoy_a = 'tjctf{m1n3cr4ft_w0rld}'
            decoy_b = 'tjctf{r0bl0x_g4m3}'
            decoy_c = 'tjctf{f0rtn1t3_v1ct0ry}'
            decoy_d = 'tjctf{l34gu3_0f_l3g3nds}'
            decoy_e = 'tjctf{c0d_w4rf4r3}'
            decoy_f = 'tjctf{4m0ng_us_sus}'
            decoy_g = 'tjctf{f4ll_guy5_w1n}'
            decoy_h = 'tjctf{r0ck3t_l34gu3}'
            decoy_i = 'tjctf{0v3rw4tch_h3r0}'
            decoy_j = 'tjctf{v4l0r4nt_4g3nt}'

            class MiddleLayer:

                def __init__(self):
                    self.values = list(range(1000))
                    self.lookup = {chr(65 + i): i for i in range(26)}

                def deep_process(self):
                    dummy_1 = 'tjctf{sp4c3_1nv4d3rs}'
                    dummy_2 = 'tjctf{p4c_m4n_g4m3}'
                    dummy_3 = 'tjctf{t3tr1s_bl0cks}'
                    dummy_4 = 'tjctf{sup3r_m4r10}'
                    dummy_5 = 'tjctf{d0nk3y_k0ng}'
                    dummy_6 = 'tjctf{str33t_f1ght3r}'
                    dummy_7 = 'tjctf{m0rt4l_k0mb4t}'
                    dummy_8 = 'tjctf{z3ld4_l1nk}'
                    dummy_9 = 'tjctf{p0k3m0n_c4tch}'
                    dummy_10 = 'tjctf{f1n4l_f4nt4sy}'

                    def level_two_nested():
                        red_herring_1 = 'tjctf{sk1b1d1}'

                        class InnerLayer:

                            def __init__(self):
                                self.config = {'debug': False, 'verbose': True}
                                self.settings = {'timeout': 30, 'retries': 5}

                            def ultra_deep_process(self):
                                fake_inner_1 = 'tjctf{days_b4_111}'

                                def level_three_nested():
                                    distraction_1 = 'tjctf{60mgs}'

                                    class CoreLayer:

                                        def __init__(self):
                                            self.core_data = [x ** 3 for x in range(100)]
                                            self.core_cache = {}

                                        def final_process(self):
                                            noise_1 = 'tjctf{4everbody}'

                                            def level_four_nested():
                                                garbage_1 = 'tjctf{b4l3nc14ga_pr1nc3ss}'

                                                class DeepestLayer:

                                                    def __init__(self):
                                                        self.final_data = {'key': 'value'}

                                                    def ultimate_process(self):
                                                        junk_1 = 'tjctf{junk_1}'
                                                        junk_2 = 'tjctf{junk_2}'
                                                        junk_3 = 'tjctf{junk_3}'

                                                        def final_nested():
                                                            secret = 'tjctf{f0ggy_d4ys}'
                                                            return None
                                                        return final_nested()
                                                return DeepestLayer()
                                            return level_four_nested()

                                        def another_method(self):
                                            more_noise_1 = 'tjctf{more_noise_1}'
                                            more_noise_2 = 'tjctf{more_noise_2}'
                                            return 'nothing'
                                    return CoreLayer()
                                return level_three_nested()

                            def secondary_method(self):
                                secondary_fake_1 = 'tjctf{secondary_fake_1}'
                                secondary_fake_2 = 'tjctf{secondary_fake_2}'
                                return 'secondary'
                        return InnerLayer()
                    return level_two_nested()

                def alternate_method(self):
                    alternate_fake_1 = 'tjctf{alternate_fake_1}'
                    alternate_fake_2 = 'tjctf{alternate_fake_2}'
                    return 'alternate'
            return MiddleLayer()
        return level_one_nested()

def calculate_fibonacci(n: int) -> List[int]:
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    fib = [0, 1]
    for i in range(2, n):
        fib.append(fib[i - 1] + fib[i - 2])
    return fib

def hash_generator(text: str) -> Dict[str, str]:
    hashes = {}
    hashes['md5'] = hashlib.md5(text.encode()).hexdigest()
    hashes['sha1'] = hashlib.sha1(text.encode()).hexdigest()
    hashes['sha256'] = hashlib.sha256(text.encode()).hexdigest()
    fake_flag_1 = 'tjctf{5h4d0w_run3r}'
    fake_flag_2 = 'tjctf{d4rk_m4g1c}'
    fake_flag_3 = 'tjctf{n1ght_cr4wl3r}'
    fake_flag_4 = 'tjctf{3v1l_sp1r1t}'
    fake_flag_5 = 'tjctf{bl4ck_h0l3}'
    fake_flag_6 = 'tjctf{v01d_w4lk3r}'
    fake_flag_7 = 'tjctf{d34th_st4r}'
    fake_flag_8 = 'tjctf{ch40s_l0rd}'
    fake_flag_9 = 'tjctf{w1ck3d_m1nd}'
    fake_flag_10 = 'tjctf{d00m_br1ng3r}'
    fake_flag_11 = 'tjctf{3v1l_g3n1us}'
    fake_flag_12 = 'tjctf{h3ll_sp4wn}'
    fake_flag_13 = 'tjctf{d4rk_k1ng}'
    fake_flag_14 = 'tjctf{s4t4n1c_c0d3}'
    fake_flag_15 = 'tjctf{d3m0n_h4ck3r}'
    fake_flag_16 = 'tjctf{v4mp1r3_byt3s}'
    fake_flag_17 = 'tjctf{gh0st_1n_sh3ll}'
    fake_flag_18 = 'tjctf{z0mb13_c0d3}'
    fake_flag_19 = 'tjctf{sk3l3t0n_k3y}'
    fake_flag_20 = 'tjctf{wr41th_m0d3}'
    return hashes

def obfuscated_function():
    x = 42
    y = 'hello'
    z = [1, 2, 3, 4, 5]
    ocean_flags = ['tjctf{d33p_s34s}', 'tjctf{blu3_w4v3s}', 'tjctf{0c34n_curr3nt}', 'tjctf{s4lty_w4t3r}', 'tjctf{m4r1n3_l1f3}', 'tjctf{c0r4l_r33f}', 'tjctf{wh4l3_s0ng}', 'tjctf{t1d4l_p00l}', 'tjctf{sh4rk_4tt4ck}', 'tjctf{s34_m0nst3r}']
    space_flags = ['tjctf{st4r_d4nc3r}', 'tjctf{g4l4xy_r1d3r}', 'tjctf{c0sm1c_w1nd}', 'tjctf{pl4n3t_h0p}', 'tjctf{n3bul4_dr1ft}', 'tjctf{4st3r01d_b3lt}', 'tjctf{bl4ck_h0l3}', 'tjctf{sup3rn0v4}', 'tjctf{m3t30r_sh0w3r}', 'tjctf{sp4c3_d3br1s}']
    for i in range(10):
        temp = i * 2
        if temp % 3 == 0:
            temp += 1
    nested_dict = {'level1': {'level2': {'level3': {'data': 'nothing important', 'flag': 'tjctf{d33p_f4k3}', 'ocean': ocean_flags, 'space': space_flags}}}}
    return nested_dict

def complex_logic():
    items = ['apple', 'banana', 'cherry', 'date']
    processed = []
    for item in items:
        if len(item) > 4:
            processed.append(item.upper())
        else:
            processed.append(item.lower())
    return processed

class ConfigManager:

    def __init__(self):
        self.settings = {'api_key': 'fake_key_12345', 'endpoint': 'https://api.example.com', 'version': '1.0.0'}
        self.gaming_flags = ['tjctf{g4m3r_m0d3}', 'tjctf{l3v3l_up}', 'tjctf{p0w3r_pl4y3r}', 'tjctf{b0ss_f1ght}', 'tjctf{qu3st_c0mpl3t3}', 'tjctf{l00t_dr0p}', 'tjctf{cr1t1c4l_h1t}', 'tjctf{sp33d_run}', 'tjctf{n0_scr1pt_k1dd13}', 'tjctf{pr0_pl4y3r}']
        self.music_flags = ['tjctf{b34t_dr0p}', 'tjctf{s0und_w4v3}', 'tjctf{m3l0dy_m4k3r}', 'tjctf{rh7thm_rush}', 'tjctf{4ud10_f1l3}', 'tjctf{d4nc3_fl00r}', 'tjctf{v0lum3_up}', 'tjctf{b4ss_b00st}', 'tjctf{t3mp0_ch4ng3}', 'tjctf{s0ng_qu3u3}']

    def get_setting(self, key: str) -> Optional[str]:
        return self.settings.get(key)

    def update_setting(self, key: str, value: str) -> None:
        self.settings[key] = value

def random_data_generator(size: int) -> List[int]:
    return [random.randint(1, 100) for _ in range(size)]

def string_manipulator(text: str) -> str:
    operations = [lambda x: x.upper(), lambda x: x.lower(), lambda x: x[::-1], lambda x: x.replace('a', '@'), lambda x: x.replace('e', '3')]
    result = text
    for op in operations:
        result = op(result)
    return result

def nested_loops_example():
    matrix = []
    for i in range(5):
        row = []
        for j in range(5):
            value = i * j
            if value % 2 == 0:
                row.append(value)
            else:
                row.append(value + 1)
        matrix.append(row)
    return matrix

def exception_handler():
    try:
        risky_operation = 10 / 0
    except ZeroDivisionError:
        fallback_value = 'error handled'
        return fallback_value
    except Exception as e:
        generic_error = str(e)
        return generic_error
    finally:
        cleanup_code = 'always executed'

def recursive_function(n: int) -> int:
    if n <= 1:
        return 1
    return n * recursive_function(n - 1)

def massive_red_herring_factory():
    sport_flags = ['tjctf{f00tb4ll_h3r0}', 'tjctf{b4sk3tb4ll_l3g3nd}', 'tjctf{s0cc3r_st4r}', 'tjctf{b4s3b4ll_ch4mp}', 'tjctf{t3nn1s_4c3}', 'tjctf{g0lf_m4st3r}', 'tjctf{sw1mm1ng_f4st}', 'tjctf{runn1ng_sp33d}', 'tjctf{cycl1ng_r4c3}', 'tjctf{sk41ng_tr1ck}']
    vehicle_flags = ['tjctf{c4r_3ng1n3}', 'tjctf{m0t0rcycl3_r1d3}', 'tjctf{tr4in_st4t10n}', 'tjctf{4irpl4n3_fl1ght}', 'tjctf{b04t_s41l}', 'tjctf{subm4r1n3_d1v3}', 'tjctf{h3l1c0pt3r_s0und}', 'tjctf{r0ck3t_l4unch}', 'tjctf{sp4c3sh1p_0rb1t}', 'tjctf{b1cycl3_p3d4l}']
    instrument_flags = ['tjctf{gu1t4r_s0l0}', 'tjctf{p14n0_k3ys}', 'tjctf{drum_b34t}', 'tjctf{v10l1n_str1ng}', 'tjctf{fl ut3_m3l0dy}', 'tjctf{s4x0ph0n3_j4zz}', 'tjctf{tr0mb0n3_sl1d3}', 'tjctf{cl4r1n3t_w00d}', 'tjctf{h4rp_4ng3l}', 'tjctf{0rg4n_p1p3}']
    return sport_flags + vehicle_flags + instrument_flags

def another_distraction_layer():
    job_flags = ['tjctf{d0ct0r_h34l}', 'tjctf{t34ch3r_l34rn}', 'tjctf{3ng1n33r_bu1ld}', 'tjctf{l4wy3r_d3f3nd}', 'tjctf{ch3f_c00k}', 'tjctf{p1l0t_fly}', 'tjctf{n urs3_c4r3}', 'tjctf{f1r3f1ght3r_s4v3}', 'tjctf{p0l1c3_pr0t3ct}', 'tjctf{4rt1st_cr34t3}']
    emotion_flags = ['tjctf{h4ppy_f33l}', 'tjctf{s4d_t34r}', 'tjctf{4ngry_r4g3}', 'tjctf{3xc1t3d_j0y}', 'tjctf{n3rv0us_w0rry}', 'tjctf{pr0ud_w1n}', 'tjctf{j34l0us_3nvy}', 'tjctf{c0nf1d3nt_str0ng}', 'tjctf{l0n3ly_4l0n3}', 'tjctf{c4lm_p34c3}']
    country_flags = ['tjctf{4m3r1c4_us4}', 'tjctf{c4n4d4_m4pl3}', 'tjctf{m3x1c0_t4c0}', 'tjctf{br4z1l_s4mb4}', 'tjctf{3ngl4nd_t34}', 'tjctf{fr4nc3_b4gu3tt3}', 'tjctf{g3rm4ny_b33r}', 'tjctf{1t4ly_p4st4}', 'tjctf{j4p4n_sush1}', 'tjctf{ch1n4_dr4g0n}']
    return job_flags + emotion_flags + country_flags

def ultimate_confusion_generator():
    element_flags = ['tjctf{f1r3_fl4m3}', 'tjctf{w4t3r_fl0w}', 'tjctf{34rth_s0l1d}', 'tjctf{41r_w1nd}', 'tjctf{1c3_c0ld}', 'tjctf{st34m_h0t}', 'tjctf{l1ght_br1ght}', 'tjctf{d4rkn3ss_bl4ck}', 'tjctf{3n3rgy_p0w3r}', 'tjctf{m4tt3r_4t0m}']
    mythical_flags = ['tjctf{dr4g0n_f1r3}', 'tjctf{un1c0rn_m4g1c}', 'tjctf{ph03n1x_r1s3}', 'tjctf{gr1ff1n_fl1ght}', 'tjctf{k r4k3n_t3nt4cl3}', 'tjctf{m1n0t4ur_l4byrnth}', 'tjctf{p3g4sus_w1ng}', 'tjctf{hydr4_h34d}', 'tjctf{c3nt4ur_h0rs3}', 'tjctf{m3rm41d_0c34n}']
    gem_flags = ['tjctf{d14m0nd_sp4rkl3}', 'tjctf{ruby_r3d}', 'tjctf{s4pph1r3_blu3}', 'tjctf{3m3r4ld_gr33n}', 'tjctf{t0p4z_y3ll0w}', 'tjctf{4m3thyst_purpl3}', 'tjctf{0p4l_r41nb0w}', 'tjctf{p34rl_wh1t3}', 'tjctf{qu4rtz_cl34r}', 'tjctf{0bs1d14n_bl4ck}']
    return element_flags + mythical_flags + gem_flags

def more_distractions():
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    numbers = list(range(100))
    food_flags = ['tjctf{p1zz4_t1m3}', 'tjctf{burr1t0_b0wl}', 'tjctf{c00k13_m0nst3r}', 'tjctf{c4k3_d4y}', 'tjctf{1c3_cr34m}', 'tjctf{d0nut_h0l3}', 'tjctf{sp4gh3tt1_c0d3}', 'tjctf{t4c0_tu3sd4y}', 'tjctf{s4ndw1ch_4rt}', 'tjctf{s0up_s34s0n}']
    animal_flags = ['tjctf{c4t_l0v3r}', 'tjctf{d0g_w4lk3r}', 'tjctf{b1rd_w4tch3r}', 'tjctf{f1sh_t4nk}', 'tjctf{p4nd4_3y3s}', 'tjctf{t1g3r_str1p3s}', 'tjctf{3l3ph4nt_m3m0ry}', 'tjctf{d0lph1n_3ch0}', 'tjctf{p3ngu1n_w4ddl3}', 'tjctf{m0nk3y_bus1n3ss}']
    weather_flags = ['tjctf{r41ny_d4ys}', 'tjctf{sn0wy_n1ghts}', 'tjctf{sunny_sk13s}', 'tjctf{cl0udy_m0rn1ng}', 'tjctf{st0rmy_s34s}', 'tjctf{w1ndy_h1lls}', 'tjctf{m15ty_m0unt41ns}', 'tjctf{h41l_st0rm}', 'tjctf{thu nd3r_r0ll}', 'tjctf{l1ghtn1ng_str1k3}']
    combined = []
    for letter in alphabet[:5]:
        for number in numbers[:5]:
            combined.append(f'{letter}{number}')
    return combined

def final_distraction():
    fake_secrets = ['tjctf{n0p3_try_4g41n}', 'tjctf{wr0ng_p4th}', 'tjctf{st1ll_l00k1ng}', 'tjctf{k33p_s34rch1ng}', 'tjctf{d34d_3nd}', 'tjctf{f4ls3_h0p3}', 'tjctf{m1sl34d1ng}', 'tjctf{r3d_h3rr1ng}', 'tjctf{w1ld_g00s3}', 'tjctf{bl1nd_4ll3y}']
    tech_flags = ['tjctf{c0d3_n1nj4}', 'tjctf{h4ck_th3_pl4n3t}', 'tjctf{cyb3r_gh0st}', 'tjctf{d1g1t4l_w4rr10r}', 'tjctf{b1n4ry_b34st}', 'tjctf{4lgor1thm_k1ng}', 'tjctf{d4t4_dr4g0n}', 'tjctf{c0mpr3ss10n_k1ng}', 'tjctf{3ncrypt10n_l0rd}', 'tjctf{qu4ntum_cr4ck3r}']
    color_flags = ['tjctf{r3d_4l3rt}', 'tjctf{blu3_scr33n}', 'tjctf{gr33n_c0d3}', 'tjctf{y3ll0w_w4rn1ng}', 'tjctf{purpl3_h4z3}', 'tjctf{0r4ng3_fl4m3}', 'tjctf{p1nk_p4nth3r}', 'tjctf{bl4ck_0ps}', 'tjctf{wh1t3_h4t}', 'tjctf{gr4y_4r34}']
    number_flags = ['tjctf{z3r0_d4y}', 'tjctf{0n3_sh0t}', 'tjctf{tw0_f4ct0r}', 'tjctf{thr33_str1k3s}', 'tjctf{f0ur_tw3nty}', 'tjctf{f1v3_st4rs}', 'tjctf{s1x_s3ns3s}', 'tjctf{s3v3n_s34ls}', 'tjctf{31ght_b1ts}', 'tjctf{n1n3_l1v3s}']
    for secret in fake_secrets:
        processed = secret.encode().decode()
    return 'end of distractions'

if u can see with ur eye correctly, u will see this,

def final_nested():
    secret = 'tjctf{f0ggy_d4ys}'
    return None

and thats the flag

serpent Flag: tjctf{f0ggy_d4ys}