Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /home/ift/52_procpy/dataninja/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : //home/ift/52_procpy/dataninja/procobj.py

#  -*- coding: utf-8 -*-

import os
import re
import sys
import time
import math
import json


#*********************************************************************

class Procobj (object):

    def __init__ (self):
        pass

#*********************************************************************

    def load (self,filename):
    
        self.text = open(filename).read()
        self.generate_data()  
        self.check_data()         

#*********************************************************************

    def generate_data (self):
    
        '''
        Computes data structure
        '''
    
        exec(self.text)
        self.data = {}       #  all variables of all functions will be stored here
        self.vars = set()    #  set of all variables at all
        obj = PROC()

        for fkt in PROC.__dict__:
            try:
                obj.__dict__  = {}
                PROC.__dict__[fkt](obj)
                self.data[fkt] = obj.__dict__.copy()
            except:
                continue
            self.vars = self.vars | set( self.data[fkt].keys() )
        
        self.vars = list(self.vars)
        self.vars.sort()
        
#*********************************************************************

    def check_data (self):

        self.targets = ''
        for fkt in self.data:    #  Normalize

            if not 'BLOCK' in self.data[fkt]:
                self.data[fkt]['BLOCK'] = [ fkt, 'DEFAULT', 0, 0, 0, 0]
            else:
                if type(self.data[fkt]['BLOCK']) == type(''):
                    self.data[fkt]['BLOCK'] = [self.data[fkt]['BLOCK'],"DEFAULT"]
                try:
                    self.data[fkt]['BLOCK'][1]
                except:
                    self.data[fkt]['BLOCK'].append('DEFAULT')
                try:
                    self.data[fkt]['BLOCK'][5]
                except:
                    self.data[fkt]['BLOCK'] = self.data[fkt]['BLOCK'][0:2] + [0,0,0,0]
                
            if 'JUMP' in self.data[fkt]:
                if type(self.data[fkt]['JUMP']) == type(''):
                    if self.data[fkt]['JUMP'] == '':
                        self.data[fkt]['JUMP'] = {}
                    else:
                        self.data[fkt]['JUMP'] = { self.data[fkt]['JUMP'] : [0] }
                if type(self.data[fkt]['JUMP']) == type({}):
                    for i in self.data[fkt]['JUMP']:
                        if not type(self.data[fkt]['JUMP'][i]) == type([]):
                            self.data[fkt]['JUMP'][i] = [ self.data[fkt]['JUMP'][i] ]

#*********************************************************************

    def new_data (self):

        blockmaxx = { '__init__' : 0 }   #  maximal width  of blocks
        blockmaxy = { '__init__' : 0 }   #  maximal height of blocks

        anzahl_func  = 0
        self.funcs   = {}
        
        for fkt in self.data:   #  check all functions but __init__
            if fkt == '__init__':
                continue
            self.funcs[fkt] = anzahl_func
            if 'TIME' in self.data[fkt] and 'EFFORT' in self.data[fkt]:
                blockmaxx[fkt] = 0
                blockmaxy[fkt] = 0
                if type(self.data[fkt]['TIME']) == type(()):
                    for i in self.data[fkt]['TIME']:
                        blockmaxx[fkt]  = blockmaxx[fkt] + float(i)
                        relative_effort = float(self.data[fkt]['EFFORT'])/float(i)
                        blockmaxy[fkt]  = max(blockmaxy[fkt],relative_effort)
                else:
                    i = float(self.data[fkt]['TIME'])
                    blockmaxx[fkt]  = blockmaxx[fkt] + float(i)
                    relative_effort = float(self.data[fkt]['EFFORT'])/float(i)
                    blockmaxy[fkt]  = max(blockmaxy[fkt],relative_effort)
                blockmaxx['__init__'] = max(blockmaxx['__init__'],blockmaxx[fkt])
                blockmaxy['__init__'] = max(blockmaxy['__init__'],blockmaxx[fkt])
            anzahl_func = anzahl_func + 1
                    
        maxx = (anzahl_func) * blockmaxx['__init__']  #  Computation of the
        maxy = (anzahl_func) * blockmaxy['__init__']  #  dimension of the process

        radiusx = 2.7 * (maxx - blockmaxx['__init__'])/2
        radiusy = 1.0 * (maxy - blockmaxy['__init__'])/2
        
        zaehler      = 0
        mittelpunktx = {}
        mittelpunkty = {}

        for fkt in self.data: # computation of mittelpunkt, width and height of each block

            if 'TIME' in self.data[fkt] and 'EFFORT' in self.data[fkt]:
                pass
            else:
                blockmaxx[fkt] = blockmaxx['__init__']
                blockmaxy[fkt] = blockmaxy['__init__']
                
            mittelpunktx[fkt] = maxx/2 + math.sin(math.pi*(1.0+2.0*float(zaehler)/float(anzahl_func))) * radiusx
            mittelpunkty[fkt] = maxy/2 + math.cos(math.pi*(1.0+2.0*float(zaehler)/float(anzahl_func))) * radiusy
            
            try:
                bbxmax = max(bbxmax,mittelpunktx[fkt]+blockmaxx[fkt]/2)
            except:
                bbxmax = mittelpunktx[fkt]+blockmaxx[fkt]/2
            try:
                bbxmin = min(bbxmin,mittelpunktx[fkt]-blockmaxx[fkt]/2)
            except:
                bbxmin = mittelpunktx[fkt]-blockmaxx[fkt]/2
            try:
                bbymax = max(bbymax,mittelpunkty[fkt]+blockmaxy[fkt]/2)
            except:
                bbymax = mittelpunkty[fkt]+blockmaxy[fkt]/2
            try:
                bbymin = min(bbymin,mittelpunkty[fkt]-blockmaxy[fkt]/2)
            except:
                bbymin = mittelpunkty[fkt]-blockmaxy[fkt]/2
                            
            self.data[fkt]['BLOCK'] = self.data[fkt]['BLOCK'][0:2] + [mittelpunktx[fkt],mittelpunkty[fkt],
                                                                      blockmaxx[fkt],blockmaxy[fkt]]
            zaehler = zaehler + 1

        self.data['__init__']['BLOCK'] = [blockmaxx['__init__'],blockmaxy['__init__'],
                                            (bbxmax+bbxmin)/2,(bbymax+bbymin)/2,bbxmax-bbxmin,bbymax-bbymin]
        
#*********************************************************************

    def x (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][2] )
    def y (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][3] )
    def w (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][4] )
    def h (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][5] )
    
    def x0 (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][2] - self.data[fkt]['BLOCK'][4]/2 )
    def x1 (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][2] + self.data[fkt]['BLOCK'][4]/2 )
    def y0 (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][3] - self.data[fkt]['BLOCK'][5]/2 )
    def y1 (self,fkt='__init__'):
        return( self.data[fkt]['BLOCK'][3] + self.data[fkt]['BLOCK'][5]/2 )

#*********************************************************************

    def prg (self,fkt):

        prgcode = ""
        for i in self.data[fkt]:
            if re.search(r"^(BLOCK|JUMP|ARROW|EXEC|TIME|EFFORT)$",i):
                continue
            prgcode = prgcode + i + ": " + str(self.data[fkt][i]) + "\n"

        return(prgcode)

#*********************************************************************



#if __name__ == '__main__':
#
#    if sys.argv[1] == "1":
#        pass


bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net