Skip to content

Instantly share code, notes, and snippets.

@lastforkbender
Created December 30, 2023 02:37
Show Gist options
  • Select an option

  • Save lastforkbender/f0df4d5e90f5aca3b600f993d4d6ee1d to your computer and use it in GitHub Desktop.

Select an option

Save lastforkbender/f0df4d5e90f5aca3b600f993d4d6ee1d to your computer and use it in GitHub Desktop.
Multi-proc of env variables obfuscation gzip stored
# |𖢑|____________________________________________________________________________||[𖡷]||.
# email: 5deg.blk.blt.cecil(@)gmail
# github: https://github.com/lastforkbender/staqtapp
# contact: https://pastebin.com/eumqiBAx
import os
import gzip
import mmap
import marshal
from collections import deque
from contextlib import closing
from multiprocessing import Process, Manager
#______________________________________________________________________________________
#______________________________________________________________________________________
#______________________________________________________________________________________
#______________________________________________________________________________________
class SordSlotsEnv:
__slots__ = ('key', 'deque', 'deque_limit')
def __init__(self, key, deque_limit):
self.key = key
self.deque = deque.Deque(maxlen=deque_limit)
self.deque_limit = deque_limit
def __len__(self):
return len(self.deque)
def __iter__(self):
return iter(self.deque)
def append(self, item):
self.deque.append(item)
if len(self.deque) == self.deque_limit:
self.flush()
def flush(self):
self.key = marshal.loads(gzip.decompress(os.urandom(16)))
data = self.key + self.deque
self.deque.clear()
return data
def restore(self, data):
self.key = data[:16]
self.deque = deque.Deque(data[16:], maxlen=self.deque_limit)
#______________________________________________________________________________________
#______________________________________________________________________________________
#______________________________________________________________________________________
#______________________________________________________________________________________
def update_mmap_obj(mmap_obj, env_vars):
length = len(env_vars)
mmap_obj[:length] = marshal.dumps(env_vars)
#______________________________________________________________________________________
def read_mmap_obj(mmap_obj):
length = os.path.getsize(mmap_obj.name)
env_vars = marshal.loads(mmap_obj[:length])
return env_vars
#______________________________________________________________________________________
def process_func(shared_env_vars, key, deque_limit):
env_vars = SordSlotsEnv(key, deque_limit)
env_vars.append("__DQP_VAR=SWEDE_UXI, @qp(STORE, PTTRN): @qp(STORE, TTL):")
shared_env_vars.update(env_vars.flush())
if __name__ == "__main__":
key = os.urandom(16)
deque_limit = 10
length = 10000
#______________________________________________________________________________________
with closing(mmap.mmap(-1, length, mmap.MAP_SHARED, mmap.PROT_WRITE)) as mmap_obj:
env_vars = SordSlotsEnv(key, deque_limit)
env_vars.append("__DQP_VAR=SWEDE_UXI, @qp(STORE, PTTRN): @qp(STORE, TTL):")
update_mmap_obj(mmap_obj, env_vars.flush())
#______________________________________________________________________________________
with Manager() as manager:
shared_env_vars = manager.dict()
p = Process(target=process_func, args=(shared_env_vars, key, deque_limit))
p.start()
p.join()
#print("Updated Data:", shared_env_vars)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment